X-Git-Url: https://code.wpia.club/?p=gigi.git;a=blobdiff_plain;f=tests%2Forg%2Fcacert%2Fgigi%2FTestUserGroupMembership.java;h=ea92218b2ecdc4f25273bfa9a39c3567270cdcde;hp=fa670721d2315862eb20608047e68f23eb120a17;hb=d0470c5987aaecbc444c7100319df69b6f740680;hpb=6de1708def257130eca7f9e29ee41be8a28562ef diff --git a/tests/org/cacert/gigi/TestUserGroupMembership.java b/tests/org/cacert/gigi/TestUserGroupMembership.java index fa670721..ea92218b 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.sql.PreparedStatement; -import java.sql.ResultSet; +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.getByString("ttp-assurer"); private final Group supporter = Group.getByString("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); - ResultSet 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); - ResultSet 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 ResultSet fetchGroupRowsFor(User u) throws SQLException { - PreparedStatement ps = DatabaseConnection.getInstance().prepare("SELECT * FROM user_groups WHERE user=?"); - ps.setInt(1, u.getId()); - ResultSet 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)); + } }