diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/group/GroupDAO.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/group/GroupDAO.java
index a1586385a6e96c6fae08a8f1637f78d00312b18c..6d9a5381f2a1e46ba09099603c7726971d5023fb 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/group/GroupDAO.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/group/GroupDAO.java
@@ -30,11 +30,13 @@ public class GroupDAO {
     public void persist(Group group) {
         connect.connect();
         String mysqlRequestGroup = "INSERT INTO groups (`projectId`,`chatRoomId`) values (?,?)";
+        // TODO: refactor insert or delete to get the full object back from database to get group or just use UUID instead of autoincrement
         connect.issueInsertOrDeleteStatement(mysqlRequestGroup, group.getProjectId(), group.getChatRoomId());
 
         for (User groupMember : group.getMembers()) {
             String mysqlRequest2 = "INSERT INTO groupuser (`userEmail`, `groupId`) values (?,?)";
             connect.issueInsertOrDeleteStatement(mysqlRequest2, groupMember.getEmail(), group.getProjectId());
+            // TODO: fix -> getProjectId is not correct. it need to be the groupId
         }
         connect.close();
 
@@ -42,8 +44,8 @@ public class GroupDAO {
 
     public void update(Group group) {
         connect.connect();
-        String mysqlRequest = "UPDATE groups SET projectId=?,chatRoomid=?";
-        connect.issueUpdateStatement(mysqlRequest, group.getProjectId(), group.getChatRoomId());
+        String mysqlRequest = "UPDATE groups SET projectId = ?, chatRoomId = ? where id = ?";
+        connect.issueUpdateStatement(mysqlRequest, group.getProjectId(), group.getChatRoomId(), group.getId());
         connect.close();
         // TODO: implement update of groupuser if needed later (if member list need to be updated)
     }
@@ -80,9 +82,6 @@ public class GroupDAO {
         ArrayList<Group> groups = new ArrayList<>();
         groupHashMap.forEach((key, group) -> groups.add(group));
         connect.close();
-        if (groups.isEmpty()) {
-            return null;
-        }
         return groups;
     }
 
@@ -95,7 +94,7 @@ public class GroupDAO {
             User user = ResultSetUtil.getUserFromResultSet(vereinfachtesResultSet);
             String chatRoomId = vereinfachtesResultSet.getString("chatRoomId");
             ArrayList<User> userList = new ArrayList<>(Collections.singletonList(user));
-            Group group = new Group(userList, projectId, chatRoomId);
+            Group group = new Group(id, userList, projectId, chatRoomId);
             existingGroups.put(id, group);
         }
     }
diff --git a/gemeinsamforschen/src/test/java/unipotsdam/gf/core/database/InMemoryMySqlConnect.java b/gemeinsamforschen/src/test/java/unipotsdam/gf/core/database/InMemoryMySqlConnect.java
index 9fb25b2321be9db193925fa36ac7eecf708cdb8a..d9f49c3e5fb92c3361f76d48a7aa7b3e1be9b410 100644
--- a/gemeinsamforschen/src/test/java/unipotsdam/gf/core/database/InMemoryMySqlConnect.java
+++ b/gemeinsamforschen/src/test/java/unipotsdam/gf/core/database/InMemoryMySqlConnect.java
@@ -19,7 +19,8 @@ public class InMemoryMySqlConnect extends MysqlConnect {
 
     private Connection getDatabaseConnection() throws ManagedProcessException, SQLException {
         DBConfigurationBuilder config = DBConfigurationBuilder.newBuilder();
-        config.setPort(0);
+        // set port for testing statically
+        config.setPort(3307);
         DB db = DB.newEmbeddedDB(config.build());
 
         db.start();
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
index 4c1ea15576b02a1f4cbb8c6dc4b4e632fcde3313..340eb2c502655b331fb6faa9f455c976cd6620db 100644
--- a/gemeinsamforschen/src/test/java/unipotsdam/gf/core/management/group/GroupDAOTest.java
+++ b/gemeinsamforschen/src/test/java/unipotsdam/gf/core/management/group/GroupDAOTest.java
@@ -1,6 +1,5 @@
 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;
@@ -10,8 +9,12 @@ import unipotsdam.gf.core.management.user.User;
 import unipotsdam.gf.core.management.user.UserDAO;
 
 import java.util.Arrays;
+import java.util.List;
 
+import static org.hamcrest.Matchers.equalTo;
+import static org.hamcrest.Matchers.hasSize;
 import static org.hamcrest.Matchers.is;
+import static org.junit.Assert.assertThat;
 
 public class GroupDAOTest {
 
@@ -38,9 +41,42 @@ public class GroupDAOTest {
         group = new Group(Arrays.asList(userStudent, userDocent), "1", "1");
     }
 
+    @Test
+    public void testExist() {
+        inMemoryMySqlConnect.connect();
+        String mysqlRequestGroup = "INSERT INTO groups (`projectId`,`chatRoomId`) values (?,?)";
+        inMemoryMySqlConnect.issueInsertOrDeleteStatement(mysqlRequestGroup, group.getProjectId(), group.getChatRoomId());
+
+        for (User groupMember : group.getMembers()) {
+            String mysqlRequest2 = "INSERT INTO groupuser (`userEmail`, `groupId`) values (?,?)";
+            inMemoryMySqlConnect.issueInsertOrDeleteStatement(mysqlRequest2, groupMember.getEmail(), group.getProjectId());
+        }
+
+        assertThat(groupDAO.exists(group), is(true));
+        inMemoryMySqlConnect.tearDown();
+    }
+
     @Test
     public void testPersist() {
         groupDAO.persist(group);
-        Assert.assertThat(groupDAO.exists(group), is(true));
+        assertThat(groupDAO.exists(group), is(true));
+    }
+
+    @Test
+    public void testUpdate() {
+        groupDAO.persist(group);
+        assertThat(groupDAO.exists(group), is(true));
+        Group groupWithId = groupDAO.getGroupsByProjectId(group.getProjectId()).get(0);
+        groupWithId.setChatRoomId("neu");
+        groupDAO.update(groupWithId);
+        assertThat(groupDAO.exists(groupWithId), is(true));
+    }
+
+    @Test
+    public void testGetGroupsByProjectId() {
+        groupDAO.persist(group);
+        List<Group> groups = groupDAO.getGroupsByProjectId(group.getProjectId());
+        assertThat(groups, hasSize(1));
+        assertThat(groups.get(0), equalTo(group));
     }
 }