diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/group/Group.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/group/Group.java index fe513b534dbe095c6f069ed1a4200fe584b4e534..c259b3f10ded3e164ac5085ae818f48f36cacb04 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/group/Group.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/group/Group.java @@ -5,6 +5,7 @@ import unipotsdam.gf.core.management.user.User; import java.util.ArrayList; import java.util.List; import java.util.Objects; +import java.util.stream.Collectors; public class Group { @@ -37,21 +38,6 @@ public class Group { this.chatRoomId = chatRoomId; } - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - Group group = (Group) o; - return Objects.equals(members, group.members) && - Objects.equals(projectId, group.projectId) && - Objects.equals(chatRoomId, group.chatRoomId); - } - - @Override - public int hashCode() { - return Objects.hash(members, projectId, chatRoomId); - } - public List<User> getMembers() { return members; } @@ -83,4 +69,23 @@ public class Group { public int getId() { return id; } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Group group = (Group) o; + List<User> newMemberList = members.stream() + .filter(member -> group.members.contains(member)) + .collect(Collectors.toList()); + return Objects.equals(members.size(), newMemberList.size()) && + Objects.equals(members.size(), group.members.size()) && + Objects.equals(projectId, group.projectId) && + Objects.equals(chatRoomId, group.chatRoomId); + } + + @Override + public int hashCode() { + return Objects.hash(members, projectId, chatRoomId); + } } diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/User.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/User.java index 812cbe6c04522a18b5f469bbbf7fe1cc14e1a90f..39606a396ffde7b205dd8b52ed773ef2273c1bf0 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/User.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/User.java @@ -2,6 +2,8 @@ package unipotsdam.gf.core.management.user; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import java.util.Objects; + /** * Created by dehne on 31.05.2018. */ @@ -111,4 +113,17 @@ public class User { ", isStudent=" + isStudent + '}'; } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + User user = (User) o; + return Objects.equals(name, user.name) && + Objects.equals(password, user.password) && + Objects.equals(email, user.email) && + Objects.equals(rocketChatAuthToken, user.rocketChatAuthToken) && + Objects.equals(rocketChatId, user.rocketChatId) && + Objects.equals(isStudent, user.isStudent); + } } diff --git a/gemeinsamforschen/src/test/java/unipotsdam/gf/core/management/group/GroupDAOTest.java b/gemeinsamforschen/src/test/java/unipotsdam/gf/core/management/group/GroupDAOTest.java new file mode 100644 index 0000000000000000000000000000000000000000..4c1ea15576b02a1f4cbb8c6dc4b4e632fcde3313 --- /dev/null +++ b/gemeinsamforschen/src/test/java/unipotsdam/gf/core/management/group/GroupDAOTest.java @@ -0,0 +1,46 @@ +package unipotsdam.gf.core.management.group; + +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import uk.co.jemos.podam.api.PodamFactory; +import uk.co.jemos.podam.api.PodamFactoryImpl; +import unipotsdam.gf.core.database.InMemoryMySqlConnect; +import unipotsdam.gf.core.management.user.User; +import unipotsdam.gf.core.management.user.UserDAO; + +import java.util.Arrays; + +import static org.hamcrest.Matchers.is; + +public class GroupDAOTest { + + private InMemoryMySqlConnect inMemoryMySqlConnect; + private GroupDAO groupDAO; + private UserDAO userDAO; + private Group group; + + private PodamFactory factory = new PodamFactoryImpl(); + + @Before + public void setUp() { + inMemoryMySqlConnect = new InMemoryMySqlConnect(); + groupDAO = new GroupDAO(inMemoryMySqlConnect); + userDAO = new UserDAO(inMemoryMySqlConnect); + + User userStudent = new User("Student", "password", "testStudent@mail.com", "1", + "1", "1", true); + User userDocent = new User("Docent", "password", "testDocent@mail.com", + "1", "1", "1", false); + userDAO.persist(userStudent, null); + userDAO.persist(userDocent, null); + + group = new Group(Arrays.asList(userStudent, userDocent), "1", "1"); + } + + @Test + public void testPersist() { + groupDAO.persist(group); + Assert.assertThat(groupDAO.exists(group), is(true)); + } +} diff --git a/gemeinsamforschen/src/test/java/unipotsdam/gf/core/management/project/ProjectDAOTest.java b/gemeinsamforschen/src/test/java/unipotsdam/gf/core/management/project/ProjectDAOTest.java index 17c2aaa4c82936d0b765a7b3eab09c2c341ff530..7f1c57fd97e892e8c9fb7b00330efc67c6746298 100644 --- a/gemeinsamforschen/src/test/java/unipotsdam/gf/core/management/project/ProjectDAOTest.java +++ b/gemeinsamforschen/src/test/java/unipotsdam/gf/core/management/project/ProjectDAOTest.java @@ -3,23 +3,62 @@ package unipotsdam.gf.core.management.project; import org.junit.Before; import org.junit.Test; import unipotsdam.gf.core.database.InMemoryMySqlConnect; +import unipotsdam.gf.core.database.mysql.VereinfachtesResultSet; + +import static org.hamcrest.Matchers.is; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertThat; public class ProjectDAOTest { private InMemoryMySqlConnect inMemoryMySqlConnect; + private ProjectDAO projectDAO; + private Project project; @Before public void setUp() { inMemoryMySqlConnect = new InMemoryMySqlConnect(); + projectDAO = new ProjectDAO(inMemoryMySqlConnect); + project = new Project("Gemeinsam Forschen", "1235", true, "me", + "keins"); } - /** - * Test creating a user in the DB - */ @Test public void testPersist() { - ProjectDAO projectDAO = new ProjectDAO(inMemoryMySqlConnect); - projectDAO.persist(new Project("Gemeinsam Forschen", "1235", true, "me", "keins")); + projectDAO.persist(project); + inMemoryMySqlConnect.connect(); + String mysqlRequest = "SELECT * FROM projects where id = ? and adminPassword = ?"; + VereinfachtesResultSet vereinfachtesResultSet = + inMemoryMySqlConnect.issueSelectStatement(mysqlRequest, project.getId(), project.getAdminPassword()); + boolean result = vereinfachtesResultSet.next(); + assertThat(result, is(true)); + } + + @Test + public void testExists() { + projectDAO.persist(project); + assertThat(projectDAO.exists(project), is(true)); + } + + @Test + public void testDelete() { + projectDAO.persist(project); + assertThat(projectDAO.exists(project), is(true)); + + projectDAO.delete(project); + assertThat(projectDAO.exists(project), is(false)); + } + + @Test + public void testGetProjectById() { + projectDAO.persist(project); + Project projectActual = projectDAO.getProjectById(project.getId()); + assertEquals(project.getAdminPassword(), projectActual.getAdminPassword()); + assertEquals(project.getAuthor(), projectActual.getAuthor()); + assertEquals(project.getId(), projectActual.getId()); + assertEquals(project.getPassword(), projectActual.getPassword()); + assertEquals(project.getPhase(), projectActual.getPhase()); + assertEquals(project.isActive(), projectActual.isActive()); } } diff --git a/gemeinsamforschen/src/test/java/unipotsdam/gf/core/management/user/UserDAOTest.java b/gemeinsamforschen/src/test/java/unipotsdam/gf/core/management/user/UserDAOTest.java index 6ba930a9ff78431111e4c122a1f325b931d31974..be817dfdec142fc0cf008da588e1f51d49e74afb 100644 --- a/gemeinsamforschen/src/test/java/unipotsdam/gf/core/management/user/UserDAOTest.java +++ b/gemeinsamforschen/src/test/java/unipotsdam/gf/core/management/user/UserDAOTest.java @@ -20,12 +20,12 @@ public class UserDAOTest { private InMemoryMySqlConnect inMemoryMySqlConnect; @Before - public void setUp() throws Exception { + public void setUp() { inMemoryMySqlConnect = new InMemoryMySqlConnect(); } @After - public void tearDown() throws Exception { + public void tearDown() { inMemoryMySqlConnect.tearDown(); }