diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/config/GFDatabaseConfig.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/config/GFDatabaseConfig.java index 252905102d2472eaa125f06499bbdfe1663ea254..9d61aea469fb9aebdd44000313224d34bb8c5b1b 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/config/GFDatabaseConfig.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/config/GFDatabaseConfig.java @@ -10,4 +10,5 @@ public class GFDatabaseConfig { public static final String USER = "root"; public static final String PASS = ""; public static final String DB_NAME = "fltrail"; + public static final String TEST_DB_NAME = "fltrail_test"; } diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/communication/service/CommunicationService.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/communication/service/CommunicationService.java index 778f2456b220af7d68d8c86b916d5369f10d31e3..a82bdd7b482a2ea6a1ac0182398aa28995f99f15 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/communication/service/CommunicationService.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/communication/service/CommunicationService.java @@ -76,7 +76,8 @@ public class CommunicationService implements ICommunication { isUpdated = true; } else { return isUpdated; - } return null; + } + return null; } @@ -84,7 +85,8 @@ public class CommunicationService implements ICommunication { if (isUpdated == null) { } else { isUpdated = false; - } return null; + } + return null; } @Override @@ -122,8 +124,7 @@ public class CommunicationService implements ICommunication { HttpEntity entity = body.getEntity(); - HttpResponse<Map> response = - body.asObject(Map.class); + HttpResponse<Map> response = body.asObject(Map.class); if (isBadRequest(response)) { return Strings.EMPTY; @@ -145,6 +146,9 @@ public class CommunicationService implements ICommunication { // chatRoom name: projectId - GroupId String chatRoomName = String.join("-", group.getProjectName(), String.valueOf(group.getId())); + if (exists(chatRoomName)) { + return true; + } String chatRoomId = createChatRoom(chatRoomName, readOnly, group.getMembers()); if (chatRoomId.isEmpty()) { return false; @@ -164,10 +168,7 @@ public class CommunicationService implements ICommunication { bodyMap.put("roomId", roomId); HttpResponse<Map> response = - unirestService - .post(ROCKET_CHAT_API_LINK + "groups.delete") - .headers(headerMap) - .body(bodyMap) + unirestService.post(ROCKET_CHAT_API_LINK + "groups.delete").headers(headerMap).body(bodyMap) .asObject(Map.class); if (isBadRequest(response)) { @@ -205,11 +206,9 @@ public class CommunicationService implements ICommunication { String groupUrl = addUser ? "groups.invite" : "groups.kick"; - HttpResponse<Map> response = unirestService - .post(GFRocketChatConfig.ROCKET_CHAT_API_LINK + groupUrl) - .headers(headerMap) - .body(bodyMap) - .asObject(Map.class); + HttpResponse<Map> response = + unirestService.post(GFRocketChatConfig.ROCKET_CHAT_API_LINK + groupUrl).headers(headerMap).body(bodyMap) + .asObject(Map.class); if (isBadRequest(response)) { return false; @@ -232,11 +231,8 @@ public class CommunicationService implements ICommunication { Map<String, String> headerMap = new RocketChatHeaderMapBuilder().withRocketChatAdminAuth().build(); - HttpResponse<Map> response = - unirestService - .get(ROCKET_CHAT_API_LINK + "groups.info") - .headers(headerMap) - .queryString("roomId", roomId).asObject(Map.class); + HttpResponse<Map> response = unirestService.get(ROCKET_CHAT_API_LINK + "groups.info").headers(headerMap) + .queryString("roomId", roomId).asObject(Map.class); if (isBadRequest(response)) { return Strings.EMPTY; @@ -263,9 +259,7 @@ public class CommunicationService implements ICommunication { rocketChatAuth.put("password", user.getPassword()); HttpResponse<RocketChatLoginResponse> response = - unirestService - .post(ROCKET_CHAT_API_LINK + "login") - .body(rocketChatAuth) + unirestService.post(ROCKET_CHAT_API_LINK + "login").body(rocketChatAuth) .asObject(RocketChatLoginResponse.class); if (isBadRequest(response)) { @@ -298,9 +292,7 @@ public class CommunicationService implements ICommunication { rocketChatRegister.put("name", user.getName()); HttpResponse<RocketChatRegisterResponse> response = - unirestService - .post(ROCKET_CHAT_API_LINK + "users.register") - .body(rocketChatRegister) + unirestService.post(ROCKET_CHAT_API_LINK + "users.register").body(rocketChatRegister) .asObject(RocketChatRegisterResponse.class); if (isBadRequest(response)) { @@ -327,7 +319,6 @@ public class CommunicationService implements ICommunication { loginUser(ADMIN_USER); - User user = userDAO.getUserByEmail(userEmail); String chatRoomId = groupDAO.getGroupChatRoomId(new User(userEmail), new Project(projectName)); if (chatRoomId.isEmpty()) { return Strings.EMPTY; @@ -392,10 +383,8 @@ public class CommunicationService implements ICommunication { @Override public boolean sendMessageToUsers(Project project, EMailMessage eMailMessage) { List<User> users = userDAO.getUsersByProjectName(project.getName()); - List<User> userEmailProblemList = users - .stream() - .filter(user -> !sendSingleMessage(eMailMessage, user)) - .collect(Collectors.toList()); + List<User> userEmailProblemList = + users.stream().filter(user -> !sendSingleMessage(eMailMessage, user)).collect(Collectors.toList()); return userEmailProblemList.isEmpty(); } @@ -450,14 +439,13 @@ public class CommunicationService implements ICommunication { user.setRocketChatPersonalAccessToken(responseBody.get("token").toString()); return true; }*/ - private boolean isBadRequest(HttpResponse response) { int status = response.getStatus(); if (Response.Status.UNAUTHORIZED.getStatusCode() == status) { unsetAdminToken(); } - return status == Response.Status.BAD_REQUEST.getStatusCode() || - status == Response.Status.UNAUTHORIZED.getStatusCode(); + return status == Response.Status.BAD_REQUEST.getStatusCode() || status == Response.Status.UNAUTHORIZED + .getStatusCode(); } diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/group/GroupDAO.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/group/GroupDAO.java index 61c3613be4db48200e149c5b31f400eed8a535e7..ebe009fa95ae7578f60b494a3b9815293027ce64 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/group/GroupDAO.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/group/GroupDAO.java @@ -155,9 +155,12 @@ public class GroupDAO { public String getGroupChatRoomId(User user, Project project) { connect.connect(); - String mysqlRequest = "SELECT g.chatRoomId FROM groups g join groupuser gu on g.id=gu.groupId where g" + - ".projectName=? and gu.studentId=?"; - VereinfachtesResultSet resultSet = connect.issueSelectStatement(mysqlRequest, project.getName(), + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append("SELECT g.chatRoomId FROM groups g "); + stringBuilder.append("join groupuser gu on g.id=gu.groupId "); + stringBuilder.append("where g.projectName=? and gu.userEmail=?"); + + VereinfachtesResultSet resultSet = connect.issueSelectStatement(stringBuilder.toString(), project.getName(), user.getEmail()); if (Objects.isNull(resultSet)) { connect.close(); diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/project/Project.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/project/Project.java index c48ae3bb3f27b442cd3f68b6d0918ea88a4d2389..f8a590c389bd032f6db5b5a11ce53929b914006a 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/project/Project.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/project/Project.java @@ -22,19 +22,9 @@ public class Project { private String[] tags; public Project() { + tags = new String[0]; } - public Project(String name, String password, Boolean active, String author, String adminPassword, String[] tags) { - this.name = name; - this.password = password; - this.active = active; - this.authorEmail = author; - this.adminPassword = adminPassword; - this.timecreated = System.currentTimeMillis(); - // default starting at course creation if new - this.setPhase(Phase.CourseCreation); - this.tags = tags; - } public Project( String name, String password, Boolean active, Long timecreated, String authorEmail, @@ -49,13 +39,17 @@ public class Project { this.tags = tags; } - public Project(String projectName, String password) { + public Project(String projectName, String authorEmail) { this.name = projectName; - this.password = password; + this.authorEmail = authorEmail; + this.active = true; + this.timecreated = System.currentTimeMillis(); + tags = new String[0]; } public Project(String projectName) { this.name = projectName; + this.active = true; } diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/project/ProjectDAO.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/project/ProjectDAO.java index 5b88b2d8ffd707cf37e9d34617bafbccdb25aee8..b26ea42c94987adb6519259f2f4316fe6200f335 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/project/ProjectDAO.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/project/ProjectDAO.java @@ -43,7 +43,7 @@ public class ProjectDAO { "INSERT INTO projects (`name`, `password`, `active`, `timecreated`, `author`, " + "`adminPassword`, `phase`) values (?,?,?,?,?,?,?)"; connect.issueInsertOrDeleteStatement(mysqlRequest, project.getName(), project.getPassword(), project.isActive(), project.getTimecreated(), project.getAuthorEmail(), project.getAdminPassword(), - project.getPhase() == null ? Phase.CourseCreation : project.getPhase()); + project.getPhase() == null ? Phase.GroupFormation : project.getPhase()); connect.close(); diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/process/phases/Phase.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/process/phases/Phase.java index d15add69190159aeea245456536160ba9b71383e..7efe120e1d131a5516d5e04190b030137bf8fa37 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/process/phases/Phase.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/process/phases/Phase.java @@ -1,6 +1,6 @@ package unipotsdam.gf.process.phases; public enum Phase { - CourseCreation, GroupFormation, DossierFeedback, Execution, Assessment, + GroupFormation, DossierFeedback, Execution, Assessment, Projectfinished } diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/process/phases/PhasesImpl.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/process/phases/PhasesImpl.java index dc113e5ed0cecbc7d804da73510c714def073c1e..973fbee8f0fda35105cbe99c6604b6379248e6fd 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/process/phases/PhasesImpl.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/process/phases/PhasesImpl.java @@ -75,11 +75,6 @@ public class PhasesImpl implements IPhases { Phase changeToPhase = getNextPhase(currentPhase); Map<StudentIdentifier, ConstraintsMessages> tasks; switch (currentPhase) { - case CourseCreation: - // saving the state - - saveState(project, changeToPhase); - break; case GroupFormation: // inform users about the formed groups, optionally giving them a hint on what happens next iCommunication.sendMessageToUsers(project, Messages.GroupFormation(project)); @@ -126,8 +121,6 @@ public class PhasesImpl implements IPhases { private Phase getNextPhase(Phase phase) { switch (phase) { - case CourseCreation: - return Phase.GroupFormation; case GroupFormation: return Phase.DossierFeedback; case DossierFeedback: diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/communication/ChatWindow.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/taglibs/ChatWindow.java similarity index 83% rename from gemeinsamforschen/src/main/java/unipotsdam/gf/modules/communication/ChatWindow.java rename to gemeinsamforschen/src/main/java/unipotsdam/gf/taglibs/ChatWindow.java index baf269252db8f6998c1f44f6ec925c3ce12ddbdf..e54af9c58caea0bc7c9eefd709954b48da720b93 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/communication/ChatWindow.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/taglibs/ChatWindow.java @@ -1,4 +1,4 @@ -package unipotsdam.gf.modules.communication; +package unipotsdam.gf.taglibs; import org.glassfish.hk2.api.ServiceLocator; import org.glassfish.hk2.utilities.ServiceLocatorUtilities; @@ -7,6 +7,7 @@ import org.slf4j.LoggerFactory; import unipotsdam.gf.config.GFApplicationBinder; import unipotsdam.gf.interfaces.ICommunication; import unipotsdam.gf.modules.communication.service.CommunicationService; +import unipotsdam.gf.session.GFContexts; import javax.servlet.http.HttpServletRequest; import javax.servlet.jsp.JspWriter; @@ -27,11 +28,12 @@ public class ChatWindow extends SimpleTagSupport { PageContext pageContext = (PageContext) getJspContext(); HttpServletRequest request = (HttpServletRequest) pageContext.getRequest(); - String token = request.getParameter("token"); - String projectId = request.getParameter("projectId"); + /*String token = request.getParameter("token"); */ + String projectId = request.getParameter("projectName"); ICommunication communicationService = new CommunicationService(); - String chatRoomLink = communicationService.getChatRoomLink(token, projectId); + String chatRoomLink = communicationService.getChatRoomLink(request.getSession().getAttribute(GFContexts + .USEREMAIL).toString(), projectId); log.debug("ChatRoomLink for ChatWindow: {}", chatRoomLink); JspWriter out = getJspContext().getOut(); out.println("<iframe height=\"400px\" src=\"" + chatRoomLink + "\"/>"); diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/taglibs/Menu.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/taglibs/Menu.java index c2957b1c7d7e0ba5d00ea99eceab1889137464d1..9de604d0944b026d21e071a682a164ca028e2079 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/taglibs/Menu.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/taglibs/Menu.java @@ -96,15 +96,6 @@ public class Menu extends SimpleTagSupport { " <ul>\n"; if (phase != null) switch (phase) { - case CourseCreation: { - phaseViewString += " <li class=\"neutral icon\">Projektinitialisierung</li>\n" + - " <li class=\"icon inactive\">Entwurfsphase</li>\n" + - " <li class=\"icon inactive\">Feedbackphase</li>\n" + - " <li class=\"icon inactive\">Reflextionsphase</li>\n" + - " <li class=\"icon inactive\" >Assessment</li>\n" + - " <li class=\"icon inactive\">Noten</li>\n"; - break; - } case GroupFormation:{ phaseViewString += " <li class=\"neutral icon closed\">Projektinitialisierung</li>\n" + " <li class=\"draft icon \">Entwurfsphase</li>\n" + diff --git a/gemeinsamforschen/src/main/webapp/project/tasks-student.jsp b/gemeinsamforschen/src/main/webapp/project/tasks-student.jsp index c57e6d5960a786d493373dde547648af6b87983f..96009f17e985f63b6ae033afe5119105f72a9793 100644 --- a/gemeinsamforschen/src/main/webapp/project/tasks-student.jsp +++ b/gemeinsamforschen/src/main/webapp/project/tasks-student.jsp @@ -10,6 +10,8 @@ <%@ taglib uri="../taglibs/gemeinsamForschen.tld" prefix="headLine" %> <%@ taglib uri="../taglibs/gemeinsamForschen.tld" prefix="omniDependencies" %> <%@ taglib uri="../taglibs/gemeinsamForschen.tld" prefix="footer" %> +<%@ taglib uri="../taglibs/gemeinsamForschen.tld" prefix="chat"%> + <!DOCTYPE html> <html lang="de"> <head> @@ -51,9 +53,10 @@ <div style="clear:left"></div> </div> </div> + </script> + <chat:chatWindow orientation="right"></chat:chatWindow> - </script> </div> <footer:footer/> diff --git a/gemeinsamforschen/src/main/webapp/taglibs/gemeinsamForschen.tld b/gemeinsamforschen/src/main/webapp/taglibs/gemeinsamForschen.tld index e253dbf3fd4501432b913f8d4ab0ce52344e25b2..a855fabaed419a9e66f4073d7a3f784c76f42feb 100644 --- a/gemeinsamforschen/src/main/webapp/taglibs/gemeinsamForschen.tld +++ b/gemeinsamforschen/src/main/webapp/taglibs/gemeinsamForschen.tld @@ -55,7 +55,7 @@ <tag> <name>chatWindow</name> - <tag-class>unipotsdam.gf.modules.communication.ChatWindow</tag-class> + <tag-class>unipotsdam.gf.taglibs.ChatWindow</tag-class> <body-content>empty</body-content> <attribute> <name>orientation</name> diff --git a/gemeinsamforschen/src/test/java/unipotsdam/gf/core/database/MysqlTestConnect.java b/gemeinsamforschen/src/test/java/unipotsdam/gf/core/database/MysqlTestConnect.java index 62a10bfa5b174eefa38efa5498305712e8ea1716..50a53a86c32b03ef28abd8c502dad2dc4439cbb0 100644 --- a/gemeinsamforschen/src/test/java/unipotsdam/gf/core/database/MysqlTestConnect.java +++ b/gemeinsamforschen/src/test/java/unipotsdam/gf/core/database/MysqlTestConnect.java @@ -13,7 +13,8 @@ public class MysqlTestConnect extends MysqlConnectImpl { private static String createConnectionString() { String connString = - "jdbc:mysql://" + "localhost" + "/" + GFDatabaseConfig.DB_NAME + "?user=" + GFDatabaseConfig.USER + "&password=" + GFDatabaseConfig.PASS; + "jdbc:mysql://" + "localhost" + "/" + GFDatabaseConfig.TEST_DB_NAME + "?user=" + GFDatabaseConfig.USER + + "&password=" + GFDatabaseConfig.PASS; return String.format(connString, "fltrail_test"); } diff --git a/gemeinsamforschen/src/test/java/unipotsdam/gf/core/database/UpdateDB.java b/gemeinsamforschen/src/test/java/unipotsdam/gf/core/database/UpdateDB.java index 35189bdbd2c59b80445e895da3c3d4de7c6d1b14..17c9b042e8badd6122a1f6ac07fb8eeddcad5eeb 100644 --- a/gemeinsamforschen/src/test/java/unipotsdam/gf/core/database/UpdateDB.java +++ b/gemeinsamforschen/src/test/java/unipotsdam/gf/core/database/UpdateDB.java @@ -16,7 +16,8 @@ public class UpdateDB { private boolean stopOnError; private boolean autoCommit; - private PrintWriter logWriter = new PrintWriter(System.out); + //private PrintWriter logWriter = new PrintWriter(System.out); + private PrintWriter logWriter = null; private PrintWriter errorLogWriter = new PrintWriter(System.err); private String delimiter = DEFAULT_DELIMITER; @@ -29,10 +30,22 @@ public class UpdateDB { UpdateDB updateDB = new UpdateDB(connection, true, false); System.out.println(new java.io.File( "." ).getCanonicalPath()); + updateDB.runScript(new FileReader("src/test/resources/database/db.sql")); updateDB.runScript(new FileReader("src/test/resources/database/fltrail.sql")); updateDB.runScript(new FileReader("src/test/resources/database/testuser.sql")); } + public static void updateTestDB() throws SQLException, ManagedProcessException, IOException { + MysqlConnect mysqlConnect = new MysqlTestConnect(); + Connection connection = mysqlConnect.getConnection(); + + UpdateDB updateDB = new UpdateDB(connection, true, false); + System.out.println(new java.io.File( "." ).getCanonicalPath()); + updateDB.runScript(new FileReader("src/test/resources/database/test_db.sql")); + updateDB.runScript(new FileReader("src/test/resources/database/fltrail.sql")); + //updateDB.runScript(new FileReader("src/test/resources/database/testuser.sql")); + } + public UpdateDB(Connection connection, boolean stopOnError, boolean autoCommit) { this.connection = connection; this.stopOnError = stopOnError; diff --git a/gemeinsamforschen/src/test/java/unipotsdam/gf/interfaces/ActivityFlowTest.java b/gemeinsamforschen/src/test/java/unipotsdam/gf/interfaces/ActivityFlowTest.java index 93e94f69d61b1349896f4c5123b8936f6fb44a86..4c5768678e7deeca05f904dc0cfc7bc7d1c93dd6 100644 --- a/gemeinsamforschen/src/test/java/unipotsdam/gf/interfaces/ActivityFlowTest.java +++ b/gemeinsamforschen/src/test/java/unipotsdam/gf/interfaces/ActivityFlowTest.java @@ -119,7 +119,7 @@ public class ActivityFlowTest { formGroups(); // end first phase - phases.endPhase(Phase.CourseCreation, project); + phases.endPhase(Phase.GroupFormation, project); // upload dossiers uploadDossiers(); diff --git a/gemeinsamforschen/src/test/java/unipotsdam/gf/interfaces/PhaseTest.java b/gemeinsamforschen/src/test/java/unipotsdam/gf/interfaces/PhaseTest.java index 5928380b42700142cedd858b6e7c7c202652cf59..2f3f29b3f834f30f5a92cd20768b451abe9a2bd2 100644 --- a/gemeinsamforschen/src/test/java/unipotsdam/gf/interfaces/PhaseTest.java +++ b/gemeinsamforschen/src/test/java/unipotsdam/gf/interfaces/PhaseTest.java @@ -48,12 +48,7 @@ public class PhaseTest { management.register(user, project, null); } - @Test - public void phase1() { - Project project = new Project(); - project.setName(projectName); - phases.endPhase(Phase.CourseCreation, project); - } + @Test public void phase2() { diff --git a/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/communication/service/CommunicationServiceTest.java b/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/communication/service/CommunicationServiceTest.java index cabbe1e5b1a0ea1e4575b2f15384cc5ce8b55209..1917b7fa90341a19e61e28112c58e167f03f9318 100644 --- a/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/communication/service/CommunicationServiceTest.java +++ b/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/communication/service/CommunicationServiceTest.java @@ -1,14 +1,14 @@ package unipotsdam.gf.modules.communication.service; +import ch.vorburger.exec.ManagedProcessException; import org.glassfish.hk2.api.ServiceLocator; import org.glassfish.hk2.utilities.ServiceLocatorUtilities; -import org.junit.After; -import org.junit.Before; -import org.junit.Ignore; -import org.junit.Test; +import org.junit.*; import uk.co.jemos.podam.api.PodamFactory; import uk.co.jemos.podam.api.PodamFactoryImpl; import unipotsdam.gf.config.GFApplicationBinder; +import unipotsdam.gf.core.database.TestGFApplicationBinder; +import unipotsdam.gf.core.database.UpdateDB; import unipotsdam.gf.interfaces.ICommunication; import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier; import unipotsdam.gf.modules.communication.model.EMailMessage; @@ -24,6 +24,8 @@ import unipotsdam.gf.process.constraints.Constraints; import unipotsdam.gf.process.constraints.ConstraintsMessages; import javax.inject.Inject; +import java.io.IOException; +import java.sql.SQLException; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -60,14 +62,21 @@ public class CommunicationServiceTest { Management management; + @BeforeClass + public static void init() throws IOException, SQLException, ManagedProcessException { + UpdateDB.updateTestDB(); + } + @Before public void setUp() { - //final ServiceLocator locator = ServiceLocatorUtilities.bind(new TestGFApplicationBinder()); - final ServiceLocator locator = ServiceLocatorUtilities.bind(new GFApplicationBinder()); + final ServiceLocator locator = ServiceLocatorUtilities.bind(new TestGFApplicationBinder()); + //final ServiceLocator locator = ServiceLocatorUtilities.bind(new GFApplicationBinder()); locator.inject(this); user = new User("Vorname Nachname", "password", "email@uni.de", true); + userDAO.persist(user, null); + createdChatRooms = new ArrayList<>(); } @@ -76,6 +85,8 @@ public class CommunicationServiceTest { public void tearDown() { createdChatRooms.forEach(createdChatRoom -> iCommunication.deleteChatRoom(createdChatRoom)); createdChatRooms.clear(); + + } @Test @@ -135,10 +146,8 @@ public class CommunicationServiceTest { Group group = new Group(); group.setMembers(Collections.singletonList(ADMIN_USER)); group.setProjectName("chatWithGroup"); - group.setId(1); boolean successful = iCommunication.createChatRoom(group, false); assertTrue(successful); - createdChatRooms.add(group.getChatRoomId()); } @@ -161,9 +170,11 @@ public class CommunicationServiceTest { @Test public void getChatRoomLink() { String projectId = "Projekt"; + Project project = new Project(projectId, user.getEmail()); + projectDAO.persist(project); + Group group = new Group(); userDAO.persist(ADMIN_USER, new UserProfile()); - group.setProjectName(projectId); group.setMembers(Collections.singletonList(ADMIN_USER)); groupDAO.persist(group); diff --git a/gemeinsamforschen/src/test/resources/database/db.sql b/gemeinsamforschen/src/test/resources/database/db.sql new file mode 100644 index 0000000000000000000000000000000000000000..5077fdd31903acb5e37a871746300826b8c2abe1 --- /dev/null +++ b/gemeinsamforschen/src/test/resources/database/db.sql @@ -0,0 +1,9 @@ +SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; +SET AUTOCOMMIT = 0; +START TRANSACTION; +SET time_zone = "+00:00"; + +DROP DATABASE `fltrail`; +CREATE DATABASE IF NOT EXISTS `fltrail` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci; + +USE `fltrail`; \ No newline at end of file diff --git a/gemeinsamforschen/src/test/resources/database/fltrail.sql b/gemeinsamforschen/src/test/resources/database/fltrail.sql index 2093e8872ff57c077ac17b0a3e39fac3f0413ed2..a1d352a9667c1e8238f4df80e751d9f626e1cf5b 100644 --- a/gemeinsamforschen/src/test/resources/database/fltrail.sql +++ b/gemeinsamforschen/src/test/resources/database/fltrail.sql @@ -1,13 +1,3 @@ -SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; -SET AUTOCOMMIT = 0; -START TRANSACTION; -SET time_zone = "+00:00"; - -DROP DATABASE `fltrail`; -CREATE DATABASE IF NOT EXISTS `fltrail` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci; - -USE `fltrail`; - CREATE TABLE `annotations` ( `id` varchar(120) NOT NULL, `timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, @@ -85,12 +75,12 @@ CREATE TABLE `phasesselected` ( CREATE TABLE `projects` ( `name` varchar(100) NOT NULL, - `password` varchar(400) NOT NULL, - `active` tinyint(1) NOT NULL, - `timecreated` mediumtext NOT NULL, + `password` varchar(400) DEFAULT '', + `active` tinyint(1) NOT NULL DEFAULT true, + `timecreated` mediumtext, `author` varchar(100) NOT NULL, - `adminPassword` varchar(400) NOT NULL, - `phase` varchar(400) NOT NULL + `adminPassword` varchar(400), + `phase` varchar(400) NOT NULL DEFAULT 'GroupFormation' ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `projectuser` ( @@ -145,10 +135,10 @@ CREATE TABLE `users` ( `name` varchar(100) NOT NULL, `password` varchar(200) NOT NULL, `email` varchar(255) NOT NULL, - `rocketChatUserId` varchar(400) NOT NULL, - `rocketChatPersonalAccessToken` varchar(400) NOT NULL, - `rocketChatUsername` varchar(400) NOT NULL, - `rocketChatAuthToken` varchar(800) NOT NULL, + `rocketChatUserId` varchar(400), + `rocketChatPersonalAccessToken` varchar(400), + `rocketChatUsername` varchar(400), + `rocketChatAuthToken` varchar(800), `isStudent` tinyint(1) DEFAULT '1' ) ENGINE=InnoDB DEFAULT CHARSET=utf8; diff --git a/gemeinsamforschen/src/test/resources/database/test_db.sql b/gemeinsamforschen/src/test/resources/database/test_db.sql new file mode 100644 index 0000000000000000000000000000000000000000..5d93b29d8cf128ff167ed7a8525ce5b096070652 --- /dev/null +++ b/gemeinsamforschen/src/test/resources/database/test_db.sql @@ -0,0 +1,9 @@ +SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; +SET AUTOCOMMIT = 0; +START TRANSACTION; +SET time_zone = "+00:00"; + +DROP DATABASE `fltrail_test`; +CREATE DATABASE IF NOT EXISTS `fltrail_test` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci; + +USE `fltrail_test`; \ No newline at end of file