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