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

#40 feat: implement last tests for groupDAO; fix bugs; implement update for group

parent 7fb26428
No related branches found
No related tags found
No related merge requests found
...@@ -30,11 +30,13 @@ public class GroupDAO { ...@@ -30,11 +30,13 @@ public class GroupDAO {
public void persist(Group group) { public void persist(Group group) {
connect.connect(); connect.connect();
String mysqlRequestGroup = "INSERT INTO groups (`projectId`,`chatRoomId`) values (?,?)"; 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()); connect.issueInsertOrDeleteStatement(mysqlRequestGroup, group.getProjectId(), group.getChatRoomId());
for (User groupMember : group.getMembers()) { for (User groupMember : group.getMembers()) {
String mysqlRequest2 = "INSERT INTO groupuser (`userEmail`, `groupId`) values (?,?)"; String mysqlRequest2 = "INSERT INTO groupuser (`userEmail`, `groupId`) values (?,?)";
connect.issueInsertOrDeleteStatement(mysqlRequest2, groupMember.getEmail(), group.getProjectId()); connect.issueInsertOrDeleteStatement(mysqlRequest2, groupMember.getEmail(), group.getProjectId());
// TODO: fix -> getProjectId is not correct. it need to be the groupId
} }
connect.close(); connect.close();
...@@ -42,8 +44,8 @@ public class GroupDAO { ...@@ -42,8 +44,8 @@ public class GroupDAO {
public void update(Group group) { public void update(Group group) {
connect.connect(); connect.connect();
String mysqlRequest = "UPDATE groups SET projectId=?,chatRoomid=?"; String mysqlRequest = "UPDATE groups SET projectId = ?, chatRoomId = ? where id = ?";
connect.issueUpdateStatement(mysqlRequest, group.getProjectId(), group.getChatRoomId()); connect.issueUpdateStatement(mysqlRequest, group.getProjectId(), group.getChatRoomId(), group.getId());
connect.close(); connect.close();
// TODO: implement update of groupuser if needed later (if member list need to be updated) // TODO: implement update of groupuser if needed later (if member list need to be updated)
} }
...@@ -80,9 +82,6 @@ public class GroupDAO { ...@@ -80,9 +82,6 @@ public class GroupDAO {
ArrayList<Group> groups = new ArrayList<>(); ArrayList<Group> groups = new ArrayList<>();
groupHashMap.forEach((key, group) -> groups.add(group)); groupHashMap.forEach((key, group) -> groups.add(group));
connect.close(); connect.close();
if (groups.isEmpty()) {
return null;
}
return groups; return groups;
} }
...@@ -95,7 +94,7 @@ public class GroupDAO { ...@@ -95,7 +94,7 @@ public class GroupDAO {
User user = ResultSetUtil.getUserFromResultSet(vereinfachtesResultSet); User user = ResultSetUtil.getUserFromResultSet(vereinfachtesResultSet);
String chatRoomId = vereinfachtesResultSet.getString("chatRoomId"); String chatRoomId = vereinfachtesResultSet.getString("chatRoomId");
ArrayList<User> userList = new ArrayList<>(Collections.singletonList(user)); 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); existingGroups.put(id, group);
} }
} }
......
...@@ -19,7 +19,8 @@ public class InMemoryMySqlConnect extends MysqlConnect { ...@@ -19,7 +19,8 @@ public class InMemoryMySqlConnect extends MysqlConnect {
private Connection getDatabaseConnection() throws ManagedProcessException, SQLException { private Connection getDatabaseConnection() throws ManagedProcessException, SQLException {
DBConfigurationBuilder config = DBConfigurationBuilder.newBuilder(); DBConfigurationBuilder config = DBConfigurationBuilder.newBuilder();
config.setPort(0); // set port for testing statically
config.setPort(3307);
DB db = DB.newEmbeddedDB(config.build()); DB db = DB.newEmbeddedDB(config.build());
db.start(); db.start();
......
package unipotsdam.gf.core.management.group; package unipotsdam.gf.core.management.group;
import org.junit.Assert;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
import uk.co.jemos.podam.api.PodamFactory; import uk.co.jemos.podam.api.PodamFactory;
...@@ -10,8 +9,12 @@ import unipotsdam.gf.core.management.user.User; ...@@ -10,8 +9,12 @@ import unipotsdam.gf.core.management.user.User;
import unipotsdam.gf.core.management.user.UserDAO; import unipotsdam.gf.core.management.user.UserDAO;
import java.util.Arrays; 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.hamcrest.Matchers.is;
import static org.junit.Assert.assertThat;
public class GroupDAOTest { public class GroupDAOTest {
...@@ -38,9 +41,42 @@ public class GroupDAOTest { ...@@ -38,9 +41,42 @@ public class GroupDAOTest {
group = new Group(Arrays.asList(userStudent, userDocent), "1", "1"); 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 @Test
public void testPersist() { public void testPersist() {
groupDAO.persist(group); 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));
} }
} }
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