package unit; import models.User; import models.helpers.UserConnectionHelper; import org.junit.After; import org.junit.Before; import org.junit.Test; import play.test.Fixtures; import play.test.UnitTest; /** * Tests creating and removing connection requests between Users using the UserConnectionHelper. * * Connection requests are modelled as a many-to-many relationship with User * but are unidirectional and so this is constraint is tested for. * * @see User * @see UserConnectionHelper * @author Alex Jarvis axj7@aber.ac.uk */ public class UserConnectionRequestTest extends UnitTest { User user1; User user2; @Before public void setUp() { Fixtures.deleteDatabase(); Fixtures.loadModels("test-data.yml"); user1 = User.find("byEmail", "bob@gmail.com").first(); user2 = User.find("byEmail", "bob2@gmail.com").first(); } @Test public void testCreateUserConnectionRequest() { assertTrue(UserConnectionHelper.createUserConnectionRequest(user1, user2)); assertEquals(user2, user1.userConnectionRequestsTo.get(0)); assertEquals(user1, user2.userConnectionRequestsFrom.get(0)); } @Test public void testCreateUserConnectionRequestTwice() { assertTrue(UserConnectionHelper.createUserConnectionRequest(user1, user2)); assertFalse(UserConnectionHelper.createUserConnectionRequest(user1, user2)); } @Test public void testRemoveUserConnectionRequest() { assertTrue(UserConnectionHelper.createUserConnectionRequest(user1, user2)); assertEquals(1, user1.userConnectionRequestsTo.size()); assertEquals(1, user2.userConnectionRequestsFrom.size()); assertTrue(UserConnectionHelper.removeUserConnectionRequest(user1, user2)); assertEquals(0, user1.userConnectionRequestsTo.size()); assertEquals(0, user2.userConnectionRequestsFrom.size()); } @Test public void testRemoveUserConnectionRequestTwice() { assertTrue(UserConnectionHelper.createUserConnectionRequest(user1, user2)); assertEquals(1, user1.userConnectionRequestsTo.size()); assertEquals(1, user2.userConnectionRequestsFrom.size()); assertTrue(UserConnectionHelper.removeUserConnectionRequest(user1, user2)); assertEquals(0, user1.userConnectionRequestsTo.size()); assertEquals(0, user2.userConnectionRequestsFrom.size()); assertFalse(UserConnectionHelper.removeUserConnectionRequest(user1, user2)); assertEquals(0, user1.userConnectionRequestsTo.size()); assertEquals(0, user2.userConnectionRequestsFrom.size()); } @Test public void testCreateBiDirectionalUserConnectionRequest() { assertTrue(UserConnectionHelper.createUserConnectionRequest(user1, user2)); assertFalse(UserConnectionHelper.createUserConnectionRequest(user2, user1)); } @Test public void testCreateUserConnectionRequestForConnectedUsers() { assertTrue(UserConnectionHelper.createUserConnection(user1, user2)); assertFalse(UserConnectionHelper.createUserConnectionRequest(user1, user2)); } }