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 connections between Users using the UserConnectionHelper.
*
* @see User
* @see UserConnectionHelper
* @author Alex Jarvis axj7@aber.ac.uk
*/
public class UserConnectionTest 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();
UserConnectionHelper.createUserConnection(user1, user2);
}
@Test
public void testUserConnectionsSize() {
assertEquals(1, user1.userConnectionsTo.size());
}
@Test
public void testTraverseUserConnectionGraph() {
// Test traversing to other user equals the other user
assertTrue(user1.userConnectionsTo.get(0).equals(user2));
assertTrue(user2.userConnectionsFrom.get(0).equals(user1));
}
@Test
public void testDeleteUserConnectionSize() {
int sizeBefore = user1.userConnectionsTo.size();
UserConnectionHelper.removeUserConnection(user1, user2);
int sizeAfter = user1.userConnectionsTo.size();
assertTrue(sizeAfter < sizeBefore);
}
@Test
public void testIsUsersConnected() {
assertTrue(UserConnectionHelper.isUsersConnected(user1, user2));
assertFalse(UserConnectionHelper.isUsersConnected(user1, new User()));
}
}