X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=tests%2Forg%2Fcacert%2Fgigi%2FTestUserGroupMembership.java;h=bd1fd4f79d943075666944064f943827ec7ee67b;hb=6d1b746247f6e1eab7d1da17112beb9cf5abb089;hp=3808df5d891cc6f0d696bfeac944b473dea7cc22;hpb=03d27b5bdaea6253e674cdf2779465873b657900;p=gigi.git diff --git a/tests/org/cacert/gigi/TestUserGroupMembership.java b/tests/org/cacert/gigi/TestUserGroupMembership.java index 3808df5d..bd1fd4f7 100644 --- a/tests/org/cacert/gigi/TestUserGroupMembership.java +++ b/tests/org/cacert/gigi/TestUserGroupMembership.java @@ -3,31 +3,31 @@ package org.cacert.gigi; import static org.hamcrest.CoreMatchers.*; import static org.junit.Assert.*; +import java.io.IOException; import java.sql.SQLException; import java.util.Arrays; import java.util.Collections; import java.util.HashSet; -import org.cacert.gigi.database.DatabaseConnection; import org.cacert.gigi.database.GigiPreparedStatement; import org.cacert.gigi.database.GigiResultSet; import org.cacert.gigi.dbObjects.Group; import org.cacert.gigi.dbObjects.ObjectCache; import org.cacert.gigi.dbObjects.User; -import org.cacert.gigi.testUtils.ManagedTest; +import org.cacert.gigi.testUtils.BusinessTest; import org.junit.Test; -public class TestUserGroupMembership extends ManagedTest { +public class TestUserGroupMembership extends BusinessTest { - private final Group ttpGroup = Group.getByString("ttp-assurer"); + private final Group ttpGroup = Group.TTP_ASSURER; - private final Group supporter = Group.getByString("supporter"); + private final Group supporter = Group.SUPPORTER; @Test - public void testAddObject() throws GigiApiException, SQLException { + public void testAddObject() throws GigiApiException, SQLException, IOException { User u = User.getById(createVerifiedUser("fname", "lname", createUniqueName() + "@example.org", TEST_PASSWORD)); - User granter = User.getById(createVerifiedUser("grFname", "lname", createUniqueName() + "@example.org", TEST_PASSWORD)); + User granter = getSupporter(); assertBehavesEmpty(u); u.grantGroup(granter, ttpGroup); @@ -39,24 +39,27 @@ public class TestUserGroupMembership extends ManagedTest { assertThat(u2, is(not(sameInstance(u)))); assertBehavesTtpGroup(u2); - GigiResultSet rs = fetchGroupRowsFor(u); + try (GigiPreparedStatement ps = new GigiPreparedStatement("SELECT * FROM `user_groups` WHERE `user`=?")) { + ps.setInt(1, u.getId()); + GigiResultSet rs = ps.executeQuery(); - assertTrue(rs.next()); - assertEquals(0, rs.getInt("revokedby")); - assertEquals(granter.getId(), rs.getInt("grantedby")); - assertEquals(ttpGroup.getDatabaseName(), rs.getString("permission")); + assertTrue(rs.next()); + assertEquals(0, rs.getInt("revokedby")); + assertEquals(granter.getId(), rs.getInt("grantedby")); + assertEquals(ttpGroup.getDatabaseName(), rs.getString("permission")); - assertNull(rs.getDate("deleted")); - assertNotNull(rs.getDate("granted")); + assertNull(rs.getDate("deleted")); + assertNotNull(rs.getDate("granted")); - assertFalse(rs.next()); + assertFalse(rs.next()); + } } @Test - public void testRemoveObject() throws GigiApiException, SQLException { + public void testRemoveObject() throws GigiApiException, SQLException, IOException { User u = User.getById(createVerifiedUser("fname", "lname", createUniqueName() + "@example.org", TEST_PASSWORD)); - User granter = User.getById(createVerifiedUser("grFname", "lname", createUniqueName() + "@example.org", TEST_PASSWORD)); + User granter = getSupporter(); assertBehavesEmpty(u); u.grantGroup(granter, ttpGroup); @@ -69,23 +72,19 @@ public class TestUserGroupMembership extends ManagedTest { assertThat(u2, is(not(sameInstance(u)))); assertBehavesEmpty(u); - GigiResultSet rs = fetchGroupRowsFor(u); - assertTrue(rs.next()); - assertEquals(granter.getId(), rs.getInt("revokedby")); - assertEquals(granter.getId(), rs.getInt("grantedby")); - assertEquals(ttpGroup.getDatabaseName(), rs.getString("permission")); + try (GigiPreparedStatement ps = new GigiPreparedStatement("SELECT * FROM `user_groups` WHERE `user`=?")) { + ps.setInt(1, u.getId()); + GigiResultSet rs = ps.executeQuery(); + assertTrue(rs.next()); + assertEquals(granter.getId(), rs.getInt("revokedby")); + assertEquals(granter.getId(), rs.getInt("grantedby")); + assertEquals(ttpGroup.getDatabaseName(), rs.getString("permission")); - assertNotNull(rs.getDate("deleted")); - assertNotNull(rs.getDate("granted")); + assertNotNull(rs.getDate("deleted")); + assertNotNull(rs.getDate("granted")); - assertFalse(rs.next()); - } - - private GigiResultSet fetchGroupRowsFor(User u) throws SQLException { - GigiPreparedStatement ps = DatabaseConnection.getInstance().prepare("SELECT * FROM `user_groups` WHERE `user`=?"); - ps.setInt(1, u.getId()); - GigiResultSet rs = ps.executeQuery(); - return rs; + assertFalse(rs.next()); + } } private void assertBehavesEmpty(User u) { @@ -101,19 +100,20 @@ public class TestUserGroupMembership extends ManagedTest { } @Test - public void testListGroup() { - Group g = Group.getByString("supporter"); + public void testListGroup() throws GigiApiException, IOException { + Group g = Group.SUPPORTER; + int start = g.getMembers(0, 10).length; User ux = User.getById(createVerifiedUser("fn", "ln", createUniqueName() + "@example.org", TEST_PASSWORD)); User ux2 = User.getById(createVerifiedUser("fn", "ln", createUniqueName() + "@example.org", TEST_PASSWORD)); - assertEquals(0, g.getMembers(0, 10).length); - ux.grantGroup(ux, g); - assertEquals(1, g.getMembers(0, 10).length); + assertEquals(0, g.getMembers(0, 10).length + start); + ux.grantGroup(getSupporter(), g); // creates a supporter + assertEquals(2, g.getMembers(0, 10).length + start); ux2.grantGroup(ux, g); - assertEquals(2, g.getMembers(0, 10).length); + assertEquals(3, g.getMembers(0, 10).length + start); ux2.revokeGroup(ux, g); - assertEquals(1, g.getMembers(0, 10).length); + assertEquals(2, g.getMembers(0, 10).length + start); ux.revokeGroup(ux, g); - assertEquals(0, g.getMembers(0, 10).length); + assertEquals(1, g.getMembers(0, 10).length + start); }