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();
     }