fixed data and tests

This commit is contained in:
anhefti 2020-03-17 11:28:38 +01:00
parent 64e1b0d03d
commit 0b3919b831
4 changed files with 1283 additions and 1265 deletions

View file

@ -512,7 +512,7 @@ public class UserDAOImpl implements UserDAO {
return; return;
} }
// check same username already exists // check same email already exists
final Long otherUsersWithSameName = this.userRecordMapper final Long otherUsersWithSameName = this.userRecordMapper
.countByExample() .countByExample()
.where(UserRecordDynamicSqlSupport.email, isEqualTo(userAccount.getEmail())) .where(UserRecordDynamicSqlSupport.email, isEqualTo(userAccount.getEmail()))

View file

@ -23,8 +23,6 @@ import java.util.Map;
import java.util.function.Function; import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import ch.ethz.seb.sebserver.gbl.model.institution.LmsSetupTestResult;
import ch.ethz.seb.sebserver.gui.service.remote.webservice.api.lmssetup.TestLmsSetup;
import org.apache.commons.codec.Charsets; import org.apache.commons.codec.Charsets;
import org.apache.commons.io.IOUtils; import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.BooleanUtils; import org.apache.commons.lang3.BooleanUtils;
@ -37,6 +35,7 @@ import org.springframework.core.annotation.Order;
import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.ClassPathResource;
import org.springframework.test.context.jdbc.Sql; import org.springframework.test.context.jdbc.Sql;
import org.springframework.util.StreamUtils; import org.springframework.util.StreamUtils;
import org.springframework.web.servlet.DispatcherServlet;
import ch.ethz.seb.sebserver.gbl.Constants; import ch.ethz.seb.sebserver.gbl.Constants;
import ch.ethz.seb.sebserver.gbl.api.API; import ch.ethz.seb.sebserver.gbl.api.API;
@ -56,6 +55,7 @@ import ch.ethz.seb.sebserver.gbl.model.exam.QuizData;
import ch.ethz.seb.sebserver.gbl.model.institution.Institution; import ch.ethz.seb.sebserver.gbl.model.institution.Institution;
import ch.ethz.seb.sebserver.gbl.model.institution.LmsSetup; import ch.ethz.seb.sebserver.gbl.model.institution.LmsSetup;
import ch.ethz.seb.sebserver.gbl.model.institution.LmsSetup.LmsType; import ch.ethz.seb.sebserver.gbl.model.institution.LmsSetup.LmsType;
import ch.ethz.seb.sebserver.gbl.model.institution.LmsSetupTestResult;
import ch.ethz.seb.sebserver.gbl.model.sebconfig.ConfigCreationInfo; import ch.ethz.seb.sebserver.gbl.model.sebconfig.ConfigCreationInfo;
import ch.ethz.seb.sebserver.gbl.model.sebconfig.Configuration; import ch.ethz.seb.sebserver.gbl.model.sebconfig.Configuration;
import ch.ethz.seb.sebserver.gbl.model.sebconfig.ConfigurationAttribute; import ch.ethz.seb.sebserver.gbl.model.sebconfig.ConfigurationAttribute;
@ -97,6 +97,7 @@ import ch.ethz.seb.sebserver.gui.service.remote.webservice.api.lmssetup.GetLmsSe
import ch.ethz.seb.sebserver.gui.service.remote.webservice.api.lmssetup.GetLmsSetupNames; import ch.ethz.seb.sebserver.gui.service.remote.webservice.api.lmssetup.GetLmsSetupNames;
import ch.ethz.seb.sebserver.gui.service.remote.webservice.api.lmssetup.NewLmsSetup; import ch.ethz.seb.sebserver.gui.service.remote.webservice.api.lmssetup.NewLmsSetup;
import ch.ethz.seb.sebserver.gui.service.remote.webservice.api.lmssetup.SaveLmsSetup; import ch.ethz.seb.sebserver.gui.service.remote.webservice.api.lmssetup.SaveLmsSetup;
import ch.ethz.seb.sebserver.gui.service.remote.webservice.api.lmssetup.TestLmsSetup;
import ch.ethz.seb.sebserver.gui.service.remote.webservice.api.quiz.GetQuizData; import ch.ethz.seb.sebserver.gui.service.remote.webservice.api.quiz.GetQuizData;
import ch.ethz.seb.sebserver.gui.service.remote.webservice.api.quiz.GetQuizPage; import ch.ethz.seb.sebserver.gui.service.remote.webservice.api.quiz.GetQuizPage;
import ch.ethz.seb.sebserver.gui.service.remote.webservice.api.quiz.ImportAsExam; import ch.ethz.seb.sebserver.gui.service.remote.webservice.api.quiz.ImportAsExam;
@ -142,7 +143,6 @@ import ch.ethz.seb.sebserver.gui.service.remote.webservice.api.useraccount.GetUs
import ch.ethz.seb.sebserver.gui.service.remote.webservice.api.useraccount.GetUserAccountNames; import ch.ethz.seb.sebserver.gui.service.remote.webservice.api.useraccount.GetUserAccountNames;
import ch.ethz.seb.sebserver.gui.service.remote.webservice.api.useraccount.NewUserAccount; import ch.ethz.seb.sebserver.gui.service.remote.webservice.api.useraccount.NewUserAccount;
import ch.ethz.seb.sebserver.gui.service.remote.webservice.api.useraccount.SaveUserAccount; import ch.ethz.seb.sebserver.gui.service.remote.webservice.api.useraccount.SaveUserAccount;
import org.springframework.web.servlet.DispatcherServlet;
public class UseCasesIntegrationTest extends GuiIntegrationTest { public class UseCasesIntegrationTest extends GuiIntegrationTest {
@ -427,6 +427,7 @@ public class UseCasesIntegrationTest extends GuiIntegrationTest {
assertNotNull(activation); assertNotNull(activation);
assertFalse(activation.hasError()); assertFalse(activation.hasError());
// no unique email
result = restService.getBuilder(NewUserAccount.class) result = restService.getBuilder(NewUserAccount.class)
.withFormParam(Domain.USER.ATTR_INSTITUTION_ID, instId) .withFormParam(Domain.USER.ATTR_INSTITUTION_ID, instId)
.withFormParam(Domain.USER.ATTR_NAME, "examSupport2") .withFormParam(Domain.USER.ATTR_NAME, "examSupport2")
@ -440,6 +441,23 @@ public class UseCasesIntegrationTest extends GuiIntegrationTest {
.withFormParam(Domain.USER.ATTR_TIMEZONE, DateTimeZone.UTC.getID()) .withFormParam(Domain.USER.ATTR_TIMEZONE, DateTimeZone.UTC.getID())
.call(); .call();
assertNotNull(result);
assertTrue(result.hasError());
// no unique email
result = restService.getBuilder(NewUserAccount.class)
.withFormParam(Domain.USER.ATTR_INSTITUTION_ID, instId)
.withFormParam(Domain.USER.ATTR_NAME, "examSupport2")
.withFormParam(Domain.USER.ATTR_USERNAME, "examSupport2")
.withFormParam(Domain.USER.ATTR_SURNAME, "examSupport2")
.withFormParam(Domain.USER.ATTR_EMAIL, "test@test1.ch")
.withFormParam(Domain.USER_ROLE.REFERENCE_NAME, UserRole.EXAM_SUPPORTER.name())
.withFormParam(PasswordChange.ATTR_NAME_NEW_PASSWORD, "examSupport2")
.withFormParam(PasswordChange.ATTR_NAME_CONFIRM_NEW_PASSWORD, "examSupport2")
.withFormParam(Domain.USER.ATTR_LANGUAGE, Locale.ENGLISH.getLanguage())
.withFormParam(Domain.USER.ATTR_TIMEZONE, DateTimeZone.UTC.getID())
.call();
assertNotNull(result); assertNotNull(result);
assertFalse(result.hasError()); assertFalse(result.hasError());
@ -454,7 +472,7 @@ public class UseCasesIntegrationTest extends GuiIntegrationTest {
.withFormParam(Domain.USER.ATTR_NAME, "examSupport1") .withFormParam(Domain.USER.ATTR_NAME, "examSupport1")
.withFormParam(Domain.USER.ATTR_USERNAME, "examSupport1") .withFormParam(Domain.USER.ATTR_USERNAME, "examSupport1")
.withFormParam(Domain.USER.ATTR_SURNAME, "examSupport1") .withFormParam(Domain.USER.ATTR_SURNAME, "examSupport1")
.withFormParam(Domain.USER.ATTR_EMAIL, "test@test.ch") .withFormParam(Domain.USER.ATTR_EMAIL, "test@test6.ch")
.withFormParam(Domain.USER_ROLE.REFERENCE_NAME, UserRole.EXAM_SUPPORTER.name()) .withFormParam(Domain.USER_ROLE.REFERENCE_NAME, UserRole.EXAM_SUPPORTER.name())
.withFormParam(PasswordChange.ATTR_NAME_NEW_PASSWORD, "examSupport1") .withFormParam(PasswordChange.ATTR_NAME_NEW_PASSWORD, "examSupport1")
.withFormParam(PasswordChange.ATTR_NAME_CONFIRM_NEW_PASSWORD, "examSupport1") .withFormParam(PasswordChange.ATTR_NAME_CONFIRM_NEW_PASSWORD, "examSupport1")
@ -680,7 +698,7 @@ public class UseCasesIntegrationTest extends GuiIntegrationTest {
new GetQuizPage()); new GetQuizPage());
// create new LMS Setup Mockup // create new LMS Setup Mockup
Result<LmsSetup> newLMSCall = restService final Result<LmsSetup> newLMSCall = restService
.getBuilder(NewLmsSetup.class) .getBuilder(NewLmsSetup.class)
.withFormParam(Domain.LMS_SETUP.ATTR_NAME, "Test Open edx") .withFormParam(Domain.LMS_SETUP.ATTR_NAME, "Test Open edx")
.withFormParam(Domain.LMS_SETUP.ATTR_LMS_TYPE, LmsType.OPEN_EDX.name()) .withFormParam(Domain.LMS_SETUP.ATTR_LMS_TYPE, LmsType.OPEN_EDX.name())
@ -691,18 +709,18 @@ public class UseCasesIntegrationTest extends GuiIntegrationTest {
assertNotNull(newLMSCall); assertNotNull(newLMSCall);
assertFalse(newLMSCall.hasError()); assertFalse(newLMSCall.hasError());
LmsSetup lmsSetup = newLMSCall.get(); final LmsSetup lmsSetup = newLMSCall.get();
assertEquals("Test Open edx", lmsSetup.name); assertEquals("Test Open edx", lmsSetup.name);
assertFalse(lmsSetup.isActive()); assertFalse(lmsSetup.isActive());
// activate lms setup // activate lms setup
LmsSetupTestResult testResult = restService final LmsSetupTestResult testResult = restService
.getBuilder(TestLmsSetup.class) .getBuilder(TestLmsSetup.class)
.withURIVariable(API.PARAM_MODEL_ID, lmsSetup.getModelId()) .withURIVariable(API.PARAM_MODEL_ID, lmsSetup.getModelId())
.call() .call()
.getOrThrow(); .getOrThrow();
DispatcherServlet dispatcherServlet = mockMvc.getDispatcherServlet(); final DispatcherServlet dispatcherServlet = this.mockMvc.getDispatcherServlet();
assertNotNull(testResult); assertNotNull(testResult);
assertFalse(testResult.isOk()); assertFalse(testResult.isOk());
@ -1772,7 +1790,7 @@ public class UseCasesIntegrationTest extends GuiIntegrationTest {
assertEquals("123", newTemplValue.value); assertEquals("123", newTemplValue.value);
// reset template values // reset template values
TemplateAttribute attribute = restService final TemplateAttribute attribute = restService
.getBuilder(ResetTemplateValues.class) .getBuilder(ResetTemplateValues.class)
.withURIVariable(API.PARAM_PARENT_MODEL_ID, String.valueOf(template.id)) .withURIVariable(API.PARAM_PARENT_MODEL_ID, String.valueOf(template.id))
.withURIVariable(API.PARAM_MODEL_ID, templateAttr.getModelId()) .withURIVariable(API.PARAM_MODEL_ID, templateAttr.getModelId())

View file

@ -66,7 +66,7 @@ public class UserAPITest extends AdministrationAPIIntegrationTester {
+ "\"name\":\"SEBAdmin\"," + "\"name\":\"SEBAdmin\","
+ "\"surname\":\"\"," + "\"surname\":\"\","
+ "\"username\":\"admin\"," + "\"username\":\"admin\","
+ "\"email\":\"admin@nomail.nomail\"," + "\"email\":\"admin1@nomail.nomail\","
+ "\"active\":true," + "\"active\":true,"
+ "\"language\":\"en\"," + "\"language\":\"en\","
+ "\"timezone\":\"UTC\"," + "\"timezone\":\"UTC\","
@ -86,7 +86,7 @@ public class UserAPITest extends AdministrationAPIIntegrationTester {
+ "\"name\":\"Institutional1 Admin\"," + "\"name\":\"Institutional1 Admin\","
+ "\"surname\":\"\"," + "\"surname\":\"\","
+ "\"username\":\"inst1Admin\"," + "\"username\":\"inst1Admin\","
+ "\"email\":\"admin@nomail.nomail\"," + "\"email\":\"admin2@nomail.nomail\","
+ "\"active\":true," + "\"active\":true,"
+ "\"language\":\"en\"," + "\"language\":\"en\","
+ "\"timezone\":\"UTC\"," + "\"timezone\":\"UTC\","
@ -111,7 +111,7 @@ public class UserAPITest extends AdministrationAPIIntegrationTester {
+ "\"name\":\"Institutional1 Admin\"," + "\"name\":\"Institutional1 Admin\","
+ "\"surname\":\"\"," + "\"surname\":\"\","
+ "\"username\":\"inst1Admin\"," + "\"username\":\"inst1Admin\","
+ "\"email\":\"admin@nomail.nomail\"," + "\"email\":\"admin2@nomail.nomail\","
+ "\"active\":true," + "\"active\":true,"
+ "\"language\":\"en\"," + "\"language\":\"en\","
+ "\"timezone\":\"UTC\"," + "\"timezone\":\"UTC\","
@ -582,7 +582,7 @@ public class UserAPITest extends AdministrationAPIIntegrationTester {
assertNotNull(user); assertNotNull(user);
assertEquals("User", user.name); assertEquals("User", user.name);
assertEquals("user1", user.username); assertEquals("user1", user.username);
assertEquals("user@nomail.nomail", user.email); assertEquals("user2@nomail.nomail", user.email);
assertEquals("[EXAM_SUPPORTER]", String.valueOf(user.roles)); assertEquals("[EXAM_SUPPORTER]", String.valueOf(user.roles));
// change userName, email and roles // change userName, email and roles

View file

@ -5,13 +5,13 @@ INSERT INTO institution VALUES
; ;
INSERT INTO user VALUES INSERT INTO user VALUES
(1, 1, 'user1', '2019-01-01', 'SEBAdmin', '', 'admin', '$2a$08$c2GKYEYoUVXH1Yb8GXVXVu66ltPvbZgLMcVSXRH.LgZNF/YeaYB8m', 'admin@nomail.nomail', 'en', 'UTC', 1), (1, 1, 'user1', '2019-01-01', 'SEBAdmin', '', 'admin', '$2a$08$c2GKYEYoUVXH1Yb8GXVXVu66ltPvbZgLMcVSXRH.LgZNF/YeaYB8m', 'admin1@nomail.nomail', 'en', 'UTC', 1),
(2, 1, 'user2', '2019-01-01', 'Institutional1 Admin', '', 'inst1Admin', '$2a$08$c2GKYEYoUVXH1Yb8GXVXVu66ltPvbZgLMcVSXRH.LgZNF/YeaYB8m', 'admin@nomail.nomail', 'en', 'UTC', 1), (2, 1, 'user2', '2019-01-01', 'Institutional1 Admin', '', 'inst1Admin', '$2a$08$c2GKYEYoUVXH1Yb8GXVXVu66ltPvbZgLMcVSXRH.LgZNF/YeaYB8m', 'admin2@nomail.nomail', 'en', 'UTC', 1),
(5, 1, 'user5', '2019-01-01', 'Exam Supporter', '', 'examSupporter', '', 'admin@nomail.nomail', 'en', 'UTC', 1), (5, 1, 'user5', '2019-01-01', 'Exam Supporter', '', 'examSupporter', '', 'admin3@nomail.nomail', 'en', 'UTC', 1),
(3, 2, 'user3', '2019-01-01', 'Institutional2 Admin', '', 'inst2Admin', '$2a$08$c2GKYEYoUVXH1Yb8GXVXVu66ltPvbZgLMcVSXRH.LgZNF/YeaYB8m', 'admin@nomail.nomail', 'en', 'UTC', 1), (3, 2, 'user3', '2019-01-01', 'Institutional2 Admin', '', 'inst2Admin', '$2a$08$c2GKYEYoUVXH1Yb8GXVXVu66ltPvbZgLMcVSXRH.LgZNF/YeaYB8m', 'admin4@nomail.nomail', 'en', 'UTC', 1),
(4, 2, 'user4', '2019-01-01', 'ExamAdmin1', '', 'examAdmin1', '$2a$08$c2GKYEYoUVXH1Yb8GXVXVu66ltPvbZgLMcVSXRH.LgZNF/YeaYB8m', 'admin@nomail.nomail', 'en', 'UTC', 1), (4, 2, 'user4', '2019-01-01', 'ExamAdmin1', '', 'examAdmin1', '$2a$08$c2GKYEYoUVXH1Yb8GXVXVu66ltPvbZgLMcVSXRH.LgZNF/YeaYB8m', 'admin5@nomail.nomail', 'en', 'UTC', 1),
(6, 2, 'user6', '2019-01-01', 'Deactivated', '', 'deactivatedUser', '$2a$08$YICtiLuceLMeY4EE3TyMGuBNt6SXmAE9HZKilzS9RP00nn4OhexBm', 'user@nomail.nomail', 'en', 'UTC', 0), (6, 2, 'user6', '2019-01-01', 'Deactivated', '', 'deactivatedUser', '$2a$08$YICtiLuceLMeY4EE3TyMGuBNt6SXmAE9HZKilzS9RP00nn4OhexBm', 'user1@nomail.nomail', 'en', 'UTC', 0),
(7, 2, 'user7', '2019-01-01', 'User', '', 'user1', '$2a$08$YICtiLuceLMeY4EE3TyMGuBNt6SXmAE9HZKilzS9RP00nn4OhexBm', 'user@nomail.nomail', 'en', 'UTC', 1) (7, 2, 'user7', '2019-01-01', 'User', '', 'user1', '$2a$08$YICtiLuceLMeY4EE3TyMGuBNt6SXmAE9HZKilzS9RP00nn4OhexBm', 'user2@nomail.nomail', 'en', 'UTC', 1)
; ;
INSERT INTO user_role VALUES INSERT INTO user_role VALUES