Skip to content
Snippets Groups Projects
Commit 7fb26428 authored by Martin Staehr's avatar Martin Staehr
Browse files

#40 feat: creating tests for DAOs

parent f0ba72aa
No related branches found
No related tags found
No related merge requests found
......@@ -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);
}
}
......@@ -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);
}
}
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));
}
}
......@@ -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());
}
}
......@@ -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();
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment