X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=tests%2Forg%2Fcacert%2Fgigi%2FTestUserGroupMembership.java;h=2213557454f53d4462ca1fe298ec9f66cba3b09d;hb=d3fae2244debf99eb93281c7302e8bd397868c49;hp=fbccba9c640b25bea4ddea720ac913c75a0fdb1f;hpb=3e123160ad59a2e1162518923965562ff947b6d1;p=gigi.git diff --git a/tests/org/cacert/gigi/TestUserGroupMembership.java b/tests/org/cacert/gigi/TestUserGroupMembership.java index fbccba9c..22135574 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-assuer"); + 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.getDBName(), 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.getDBName(), 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) { @@ -99,4 +98,30 @@ public class TestUserGroupMembership extends ManagedTest { assertTrue(u.isInGroup(ttpGroup)); assertFalse(u.isInGroup(supporter)); } + + @Test + 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 + start); + ux.grantGroup(getSupporter(), g); // creates a supporter + assertEquals(2, g.getMembers(0, 10).length + start); + ux2.grantGroup(ux, g); + assertEquals(3, g.getMembers(0, 10).length + start); + ux2.revokeGroup(ux, g); + assertEquals(2, g.getMembers(0, 10).length + start); + ux.revokeGroup(ux, g); + assertEquals(1, g.getMembers(0, 10).length + start); + + } + + @Test + public void testGroupEquals() { + assertTrue(ttpGroup.equals(ttpGroup)); + assertFalse(ttpGroup.equals(null)); + assertFalse(ttpGroup.equals("")); + assertFalse(ttpGroup.equals(supporter)); + } }