diff --git a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/services/CredentialsAlertService.java b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/services/CredentialsAlertService.java index b02d5dc683f679b5f0339ea56aa8161f0ab5475a..6927b4f6e27892df7ef7c75d223f7ab636b2c3ff 100644 --- a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/services/CredentialsAlertService.java +++ b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/services/CredentialsAlertService.java @@ -97,6 +97,12 @@ public class CredentialsAlertService { alertCredentialExpiration(userCredential, alert, credentialType, credentialId, expiredOn); } + /** + * Method generates "expired" alert for credentials + * + * @param userCredential + */ + public void alertCredentialExpired(DBCredential userCredential) { DBUser user = userCredential.getUser(); LOG.info("Alert access token [{}:{}] for user [{}] expired on [{}]", @@ -132,8 +138,6 @@ public class CredentialsAlertService { AlertTypeEnum alertType = AlertTypeEnum.CREDENTIAL_EXPIRED; DBAlert alert = createAlert(user.getUsername(), mailSubject, mailTo, alertLevel, alertType); alertCredentialExpiration(userCredential, alert, credentialType, credentialId, expiredOn); - - } public void alertCredentialVerificationFailed(DBCredential credential) { diff --git a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/services/ui/UIUserService.java b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/services/ui/UIUserService.java index ca150e70e21c2553422d7cc32f57ebf0f4210ef0..aab158ef1a5da057c0824b2c17c00cc4f1532ae4 100644 --- a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/services/ui/UIUserService.java +++ b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/services/ui/UIUserService.java @@ -192,7 +192,7 @@ public class UIUserService extends UIServiceBase<DBUser, UserRO> { } Optional<DBCredential> dbCredential = credentialDao.findUsernamePasswordCredentialForUserIdAndUI(authorizedUserId); DBCredential dbAuthorizedCredentials = dbCredential.orElseThrow(() -> - new SMPRuntimeException(ErrorCode.INVALID_REQUEST, "UserId", "Can not find user id!")); + new SMPRuntimeException(ErrorCode.INVALID_REQUEST, "UserId", "Can not find user id")); DBUser authorizedUser = dbAuthorizedCredentials.getUser(); @@ -202,7 +202,7 @@ public class UIUserService extends UIServiceBase<DBUser, UserRO> { } boolean adminUpdate = userToUpdateId != null - && authorizedUserId != userToUpdateId; + && !Objects.equals(authorizedUserId, userToUpdateId); // check if authorized user has the permission to change other user credentials if (adminUpdate && authorizedUser.getApplicationRole() != ApplicationRoleType.SYSTEM_ADMIN) { diff --git a/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/config/SmlIntegrationConfiguration.java b/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/config/SmlIntegrationConfiguration.java index 4edf6b06680819bc8a8c76747fda4d56dc012b1b..054c48018579106b19be4bef7a12155077395371 100644 --- a/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/config/SmlIntegrationConfiguration.java +++ b/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/config/SmlIntegrationConfiguration.java @@ -76,6 +76,7 @@ public class SmlIntegrationConfiguration { @Bean("MockIManageParticipantIdentifierWS") @Scope(SCOPE_PROTOTYPE) + @Primary public IManageParticipantIdentifierWS smpParticipantClient() throws UnauthorizedFault, NotFoundFault, InternalErrorFault, BadRequestFault { diff --git a/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/data/dao/utils/SMPSchemaGeneratorTest.java b/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/data/dao/utils/SMPSchemaGeneratorTest.java index 8c6a30153bda900a4a5cc19b9946139b534f3e8a..9e772a48a3fc4e9db79521b9d911eac621162611 100644 --- a/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/data/dao/utils/SMPSchemaGeneratorTest.java +++ b/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/data/dao/utils/SMPSchemaGeneratorTest.java @@ -11,18 +11,20 @@ import org.junit.runner.RunWith; import java.io.File; import java.io.IOException; +import java.util.Arrays; import java.util.Collections; import java.util.List; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; -@Ignore + @RunWith(JUnitParamsRunner.class) public class SMPSchemaGeneratorTest { private static final String DIALECT_ORACLE="org.hibernate.dialect.Oracle10gDialect"; private static final String DIALECT_MYSQL_INNO5="org.hibernate.dialect.MySQL5InnoDBDialect"; - private static final String ENTITY_PACKAGE= "eu.europa.ec.edelivery.smp.data.model"; + + protected static String ENTITY_PACKAGES= "eu.europa.ec.edelivery.smp.data.model,eu.europa.ec.edelivery.smp.data.model.user,eu.europa.ec.edelivery.smp.data.model.doc,eu.europa.ec.edelivery.smp.data.model.ext"; private static final Object[] dialectTestCases() { @@ -48,7 +50,7 @@ public class SMPSchemaGeneratorTest { String folder = "target"; String dialect = DIALECT_ORACLE; String version = "4.1.0-SNAPSHOT"; - List<String> lstPackages = Collections.singletonList(ENTITY_PACKAGE); + List<String> lstPackages = Arrays.asList(ENTITY_PACKAGES.split(",")); File f = new File("target/oracle10g.ddl"); File fDrop = new File("target/oracle10g-drop.ddl"); f.delete(); // delete if exists @@ -124,8 +126,8 @@ public class SMPSchemaGeneratorTest { public void getAllEntityClasses() throws ClassNotFoundException { // given when - List<Class> result = testInstance.getAllEntityClasses(ENTITY_PACKAGE); + List<Class> result = testInstance.getAllEntityClasses("eu.europa.ec.edelivery.smp.data.model"); - assertEquals(18, result.size()); + assertEquals(10, result.size()); } } diff --git a/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/services/AbstractServiceIntegrationTest.java b/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/services/AbstractServiceIntegrationTest.java index ad0fe1c6eefbce314e3ad06a94e19e3bd908329d..595a631a6138a1f14f796b2f278f275e9acf5a66 100644 --- a/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/services/AbstractServiceIntegrationTest.java +++ b/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/services/AbstractServiceIntegrationTest.java @@ -3,14 +3,14 @@ package eu.europa.ec.edelivery.smp.services; import eu.europa.ec.edelivery.smp.config.ConversionTestConfig; import eu.europa.ec.edelivery.smp.config.ServicesBeansConfiguration; +import eu.europa.ec.edelivery.smp.config.enums.SMPPropertyEnum; import eu.europa.ec.edelivery.smp.conversion.IdentifierService; import eu.europa.ec.edelivery.smp.cron.CronTriggerConfig; import eu.europa.ec.edelivery.smp.data.dao.*; -import eu.europa.ec.edelivery.smp.data.model.*; +import eu.europa.ec.edelivery.smp.data.model.DBDomain; import eu.europa.ec.edelivery.smp.data.model.doc.DBResource; import eu.europa.ec.edelivery.smp.data.model.doc.DBSubresource; import eu.europa.ec.edelivery.smp.data.model.user.DBUser; -import eu.europa.ec.edelivery.smp.config.enums.SMPPropertyEnum; import eu.europa.ec.edelivery.smp.services.mail.MailService; import eu.europa.ec.edelivery.smp.services.spi.SmpXmlSignatureService; import eu.europa.ec.edelivery.smp.services.ui.UIKeystoreService; @@ -41,9 +41,9 @@ import static eu.europa.ec.edelivery.smp.testutil.TestConstants.*; */ @RunWith(SpringJUnit4ClassRunner.class) -@ContextConfiguration(classes = {IdentifierService.class,SmlConnector.class, SmpXmlSignatureService.class, MailService.class, +@ContextConfiguration(classes = {IdentifierService.class, SmlConnector.class, SmpXmlSignatureService.class, MailService.class, DomainService.class, - ResourceDao.class, SubresourceDao.class, DomainDao.class, UserDao.class,DBAssertion.class, ConfigurationDao.class, AlertDao.class, + ResourceDao.class, SubresourceDao.class, DomainDao.class, UserDao.class, DBAssertion.class, ConfigurationDao.class, AlertDao.class, UITruststoreService.class, UIKeystoreService.class, ConversionTestConfig.class, SMLIntegrationService.class, CRLVerifierService.class, ConfigurationService.class, @@ -53,11 +53,11 @@ import static eu.europa.ec.edelivery.smp.testutil.TestConstants.*; @Sql(scripts = {"classpath:cleanup-database.sql", "classpath:basic_conf_data-h2.sql" }, executionPhase = Sql.ExecutionPhase.BEFORE_TEST_METHOD) -public abstract class AbstractServiceIntegrationTest { +public abstract class AbstractServiceIntegrationTest extends AbstractBaseDao { - protected Path resourceDirectory = Paths.get("src", "test", "resources", "keystores"); - protected Path targetDirectory = Paths.get("target","keystores"); + protected Path resourceDirectory = Paths.get("src", "test", "resources", "keystores"); + protected Path targetDirectory = Paths.get("target", "keystores"); @Autowired protected ResourceDao serviceGroupDao; @@ -74,6 +74,9 @@ public abstract class AbstractServiceIntegrationTest { @Autowired protected UserDao userDao; + @Autowired + protected CredentialDao credentialDao; + @Autowired protected AlertDao alertDao; @@ -89,22 +92,23 @@ public abstract class AbstractServiceIntegrationTest { * Domain: TEST_DOMAIN_CODE_1 * Users: USERNAME_1, USER_CERT_2 * ServiceGroup1: TEST_SG_ID_1, TEST_SG_SCHEMA_1 - * - Domain: TEST_DOMAIN_CODE_1 - * - Owners: USERNAME_1, USER_CERT_2 - * - Metadata: - * - TEST_DOC_ID_1, TEST_DOC_SCHEMA_1 - * - * + * - Domain: TEST_DOMAIN_CODE_1 + * - Owners: USERNAME_1, USER_CERT_2 + * - Metadata: + * - TEST_DOC_ID_1, TEST_DOC_SCHEMA_1 + * <p> + * <p> * ServiceGroup2: TEST_SG_ID_2, TEST_SG_SCHEMA_2 - * - Domain: TEST_DOMAIN_CODE_1 - * - Owners: USERNAME_1 - * - Metadata: / + * - Domain: TEST_DOMAIN_CODE_1 + * - Owners: USERNAME_1 + * - Metadata: / */ public void prepareDatabaseForSingleDomainEnv() { prepareDatabaseForSingleDomainEnv(true); } + public void prepareDatabaseForSingleDomainEnv(boolean domainSMLRegister) { - DBDomain testDomain01 =TestDBUtils.createDBDomain(TestConstants.TEST_DOMAIN_CODE_1); + DBDomain testDomain01 = TestDBUtils.createDBDomain(TestConstants.TEST_DOMAIN_CODE_1); testDomain01.setSmlRegistered(domainSMLRegister); domainDao.persistFlushDetach(testDomain01); @@ -118,7 +122,9 @@ public abstract class AbstractServiceIntegrationTest { DBResource sg1d1 = TestDBUtils.createDBResource(TEST_SG_ID_1, TEST_SG_SCHEMA_1); DBSubresource sg1md1 = TestDBUtils.createDBSubresource(TEST_SG_ID_1, TEST_SG_SCHEMA_1, TEST_DOC_ID_1, TEST_DOC_SCHEMA_1); + /* + sg1d1.addDomain(testDomain01); sg1d1.getResourceDomains().get(0).addServiceMetadata(sg1md1); sg1d1.getMembers().add(new DBResourceMember(sg1d1, u1)); @@ -147,21 +153,20 @@ public abstract class AbstractServiceIntegrationTest { * Domain: TEST_DOMAIN_CODE_1,TEST_DOMAIN_CODE_2 * Users: USERNAME_1, USER_CERT_2 * ServiceGroup1: TEST_SG_ID_1, TEST_SG_SCHEMA_1 - * - Domain: TEST_DOMAIN_CODE_1 - * - Owners: USERNAME_1, USER_CERT_2 - * - Metadata: TEST_DOC_ID_1, TEST_DOC_SCHEMA_1 - * - * + * - Domain: TEST_DOMAIN_CODE_1 + * - Owners: USERNAME_1, USER_CERT_2 + * - Metadata: TEST_DOC_ID_1, TEST_DOC_SCHEMA_1 + * <p> + * <p> * ServiceGroup2: TEST_SG_ID_1, TEST_SG_SCHEMA_2 - * - Owners: USERNAME_1 - * - Domain: TEST_DOMAIN_CODE_1 - * - Metadata: / - * + * - Owners: USERNAME_1 + * - Domain: TEST_DOMAIN_CODE_1 + * - Metadata: / + * <p> * ServiceGroup3: TEST_SG_ID_3, TEST_SG_SCHEMA_3 - * - Owners: USERNAME_1 - * - Domain: TEST_DOMAIN_CODE_2 - * - Metadata: / - * + * - Owners: USERNAME_1 + * - Domain: TEST_DOMAIN_CODE_2 + * - Metadata: / */ public void prepareDatabaseForMultipeDomainEnv() { @@ -172,13 +177,13 @@ public abstract class AbstractServiceIntegrationTest { DBUser u1 = userDao.findUserByUsername(USERNAME_1).get(); DBResource sg2d2 = TestDBUtils.createDBResource(TEST_SG_ID_3, TEST_SG_SCHEMA_1); - // sg2d2.getUsers().add(u1); + // sg2d2.getUsers().add(u1); serviceGroupDao.update(sg2d2); } - public void setDatabaseProperty(SMPPropertyEnum prop, String value){ - configurationDao.setPropertyToDatabase(prop,value,"Test property"); + public void setDatabaseProperty(SMPPropertyEnum prop, String value) { + configurationDao.setPropertyToDatabase(prop, value, "Test property"); configurationDao.reloadPropertiesFromDatabase(); } @@ -186,27 +191,26 @@ public abstract class AbstractServiceIntegrationTest { * Domain: TEST_DOMAIN_CODE_1,TEST_DOMAIN_CODE_2 * Users: USERNAME_1, USER_CERT_2 * ServiceGroup1: TEST_SG_ID_1, TEST_SG_SCHEMA_1 - * - Owners: USERNAME_1, USER_CERT_2 - * - Domain: TEST_DOMAIN_CODE_1 - * - Metadata: - * - TEST_DOC_ID_1, TEST_DOC_SCHEMA_1 - * - TEST_DOC_ID_2, TEST_DOC_SCHEMA_2 - * - * + * - Owners: USERNAME_1, USER_CERT_2 + * - Domain: TEST_DOMAIN_CODE_1 + * - Metadata: + * - TEST_DOC_ID_1, TEST_DOC_SCHEMA_1 + * - TEST_DOC_ID_2, TEST_DOC_SCHEMA_2 + * <p> + * <p> * ServiceGroup2: TEST_SG_ID_1, TEST_SG_SCHEMA_2 - * - Domain: TEST_DOMAIN_CODE_1 - * - Owners: USERNAME_1 - * - Metadata: / - * + * - Domain: TEST_DOMAIN_CODE_1 + * - Owners: USERNAME_1 + * - Metadata: / + * <p> * ServiceGroup3: TEST_SG_ID_3, TEST_SG_SCHEMA_3 - * - Owners: USERNAME_1 - * - Domain: TEST_DOMAIN_CODE_2 - * - Metadata: - * - TEST_DOC_ID_1, TEST_DOC_SCHEMA_1 - * - Domain: TEST_DOMAIN_CODE_2 - * - Metadata: - * - TEST_DOC_ID_2, TEST_DOC_SCHEMA_2 - * + * - Owners: USERNAME_1 + * - Domain: TEST_DOMAIN_CODE_2 + * - Metadata: + * - TEST_DOC_ID_1, TEST_DOC_SCHEMA_1 + * - Domain: TEST_DOMAIN_CODE_2 + * - Metadata: + * - TEST_DOC_ID_2, TEST_DOC_SCHEMA_2 */ public void prepareDatabaseForMultipeDomainWithMetadataEnv() { diff --git a/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/services/AlertServiceTest.java b/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/services/AlertServiceTest.java index 1a56789e2acf8817da08b50b6073639987b15b29..93530708ec640bcdf7ee8ecfdf9cea89166a42d4 100644 --- a/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/services/AlertServiceTest.java +++ b/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/services/AlertServiceTest.java @@ -4,18 +4,33 @@ import eu.europa.ec.edelivery.smp.cron.SMPDynamicCronTrigger; import eu.europa.ec.edelivery.smp.data.dao.AlertDao; import eu.europa.ec.edelivery.smp.data.dao.CredentialDao; import eu.europa.ec.edelivery.smp.data.dao.UserDao; +import eu.europa.ec.edelivery.smp.data.enums.CredentialType; import eu.europa.ec.edelivery.smp.data.model.DBAlert; +import eu.europa.ec.edelivery.smp.data.model.user.DBCredential; +import eu.europa.ec.edelivery.smp.data.model.user.DBUser; import eu.europa.ec.edelivery.smp.data.ui.enums.AlertLevelEnum; import eu.europa.ec.edelivery.smp.data.ui.enums.AlertStatusEnum; import eu.europa.ec.edelivery.smp.data.ui.enums.AlertTypeEnum; +import eu.europa.ec.edelivery.smp.services.mail.MailModel; import eu.europa.ec.edelivery.smp.services.mail.MailService; +import eu.europa.ec.edelivery.smp.services.mail.prop.CredentialSuspendedProperties; +import eu.europa.ec.edelivery.smp.services.mail.prop.CredentialVerificationFailedProperties; +import eu.europa.ec.edelivery.smp.services.mail.prop.CredentialsExpirationProperties; +import eu.europa.ec.edelivery.smp.testutil.TestDBUtils; import org.junit.Ignore; import org.junit.Test; +import org.mockito.ArgumentCaptor; import org.mockito.Mockito; +import java.time.OffsetDateTime; +import java.util.Arrays; +import java.util.List; +import java.util.Properties; +import java.util.stream.Collectors; + import static org.junit.Assert.*; +import static org.mockito.Mockito.*; -@Ignore public class AlertServiceTest { AlertDao alertDao = Mockito.mock(AlertDao.class); @@ -49,7 +64,7 @@ public class AlertServiceTest { assertNotNull(alert.getReportingTime()); } -/* + @Test public void testSubmitAlertMailNoMail() { @@ -64,10 +79,11 @@ public class AlertServiceTest { public void alertBeforeUsernamePasswordExpire() { // given DBUser user = TestDBUtils.createDBUser("alertBeforeUsernamePasswordExpire"); + DBCredential credential = TestDBUtils.createDBCredentialForUser(user, null, OffsetDateTime.now().plusDays(1), null); String mailSubject = "mail subject"; String mailFrom = "mail.from@test.eu"; AlertLevelEnum alertLevel = AlertLevelEnum.MEDIUM; - user.setPasswordExpireOn(OffsetDateTime.now().plusDays(1)); + doReturn(mailSubject).when(configurationService).getAlertBeforeExpirePasswordMailSubject(); doReturn(alertLevel).when(configurationService).getAlertBeforeExpirePasswordLevel(); doReturn(mailFrom).when(configurationService).getAlertEmailFrom(); @@ -76,7 +92,7 @@ public class AlertServiceTest { List<String> expectedTemplateProperties = Arrays.asList(CredentialsExpirationProperties.values()).stream() .map(CredentialsExpirationProperties::name).collect(Collectors.toList()); // when - testInstance.alertBeforeUsernamePasswordExpire(user); + testInstance.alertBeforeCredentialExpire(credential); // then assertAlertSend(alertType, user.getEmailAddress(), mailFrom, mailSubject, expectedTemplateProperties); @@ -93,7 +109,9 @@ public class AlertServiceTest { String mailSubject = "mail subject"; String mailFrom = "mail.from@test.eu"; AlertLevelEnum alertLevel = AlertLevelEnum.MEDIUM; - user.setPasswordExpireOn(OffsetDateTime.now().plusDays(1)); + DBCredential credential = TestDBUtils.createDBCredentialForUser(user, null, OffsetDateTime.now().plusDays(-1), null); + + doReturn(mailSubject).when(configurationService).getAlertExpiredPasswordMailSubject(); doReturn(alertLevel).when(configurationService).getAlertExpiredPasswordLevel(); doReturn(mailFrom).when(configurationService).getAlertEmailFrom(); @@ -101,7 +119,7 @@ public class AlertServiceTest { List<String> expectedTemplateProperties = Arrays.asList(CredentialsExpirationProperties.values()).stream() .map(CredentialsExpirationProperties::name).collect(Collectors.toList()); // when - testInstance.alertUsernamePasswordExpired(user); + testInstance.alertCredentialExpired(credential); // then assertAlertSend(alertType, user.getEmailAddress(), mailFrom, mailSubject, expectedTemplateProperties); @@ -115,10 +133,11 @@ public class AlertServiceTest { public void alertBeforeAccessTokenExpire() { // given DBUser user = TestDBUtils.createDBUser("alertBeforeAccessTokenExpire"); + DBCredential credential = TestDBUtils.createDBCredentialForUserAccessToken(user, null, OffsetDateTime.now().plusDays(1), null); + String mailSubject = "mail subject"; String mailFrom = "mail.from@test.eu"; AlertLevelEnum alertLevel = AlertLevelEnum.MEDIUM; - user.setAccessTokenExpireOn(OffsetDateTime.now().plusDays(1)); doReturn(mailSubject).when(configurationService).getAlertBeforeExpireAccessTokenMailSubject(); doReturn(alertLevel).when(configurationService).getAlertBeforeExpireAccessTokenLevel(); doReturn(mailFrom).when(configurationService).getAlertEmailFrom(); @@ -127,7 +146,7 @@ public class AlertServiceTest { List<String> expectedTemplateProperties = Arrays.asList(CredentialsExpirationProperties.values()).stream() .map(CredentialsExpirationProperties::name).collect(Collectors.toList()); // when - testInstance.alertBeforeAccessTokenExpire(user); + testInstance.alertBeforeCredentialExpire(credential); // then assertAlertSend(alertType, user.getEmailAddress(), mailFrom, mailSubject, expectedTemplateProperties); @@ -137,14 +156,15 @@ public class AlertServiceTest { verify(configurationService, times(1)).getAlertEmailFrom(); } + @Test public void alertAccessTokenExpired() { // given DBUser user = TestDBUtils.createDBUser("alertAccessTokenExpired"); + DBCredential credential = TestDBUtils.createDBCredentialForUserAccessToken(user, null, OffsetDateTime.now().plusDays(-1), null); String mailSubject = "mail subject"; String mailFrom = "mail.from@test.eu"; AlertLevelEnum alertLevel = AlertLevelEnum.MEDIUM; - user.setAccessTokenExpireOn(OffsetDateTime.now().plusDays(1)); doReturn(mailSubject).when(configurationService).getAlertExpiredAccessTokenMailSubject(); doReturn(alertLevel).when(configurationService).getAlertExpiredAccessTokenLevel(); doReturn(mailFrom).when(configurationService).getAlertEmailFrom(); @@ -152,7 +172,7 @@ public class AlertServiceTest { List<String> expectedTemplateProperties = Arrays.asList(CredentialsExpirationProperties.values()).stream() .map(CredentialsExpirationProperties::name).collect(Collectors.toList()); // when - testInstance.alertAccessTokenExpired(user); + testInstance.alertCredentialExpired(credential); // then assertAlertSend(alertType, user.getEmailAddress(), mailFrom, mailSubject, expectedTemplateProperties); @@ -166,6 +186,7 @@ public class AlertServiceTest { public void alertBeforeCertificateExpire() { // given DBUser user = TestDBUtils.createDBUser("user", "alertBeforeCertificateExpire"); + DBCredential credential = TestDBUtils.createDBCredentialForUserCertificate(user, null, OffsetDateTime.now().plusDays(1), null); String mailSubject = "mail subject"; String mailFrom = "mail.from@test.eu"; AlertLevelEnum alertLevel = AlertLevelEnum.MEDIUM; @@ -176,7 +197,7 @@ public class AlertServiceTest { List<String> expectedTemplateProperties = Arrays.asList(CredentialsExpirationProperties.values()).stream() .map(CredentialsExpirationProperties::name).collect(Collectors.toList()); // when - testInstance.alertBeforeCertificateExpire(user); + testInstance.alertBeforeCredentialExpire(credential); // then assertAlertSend(alertType, user.getEmailAddress(), mailFrom, mailSubject, expectedTemplateProperties); @@ -190,6 +211,7 @@ public class AlertServiceTest { public void alertCertificateExpired() { // given DBUser user = TestDBUtils.createDBUser("user", "alertCertificateExpired"); + DBCredential credential = TestDBUtils.createDBCredentialForUserCertificate(user, null, OffsetDateTime.now().plusDays(1), null); String mailSubject = "mail subject"; String mailFrom = "mail.from@test.eu"; AlertLevelEnum alertLevel = AlertLevelEnum.MEDIUM; @@ -201,7 +223,7 @@ public class AlertServiceTest { .map(CredentialsExpirationProperties::name).collect(Collectors.toList()); // when - testInstance.alertCertificateExpired(user); + testInstance.alertCredentialExpired(credential); // then assertAlertSend(alertType, user.getEmailAddress(), mailFrom, mailSubject, expectedTemplateProperties); @@ -244,10 +266,13 @@ public class AlertServiceTest { @Test public void alertUsernameCredentialVerificationFailed() { DBUser user = TestDBUtils.createDBUser("user"); + DBCredential credential = TestDBUtils.createDBCredentialForUser(user, null, OffsetDateTime.now().plusDays(1), null); + credential.setSequentialLoginFailureCount(5); + credential.setLastFailedLoginAttempt(OffsetDateTime.now()); + String mailSubject = "mail subject"; String mailFrom = "mail.from@test.eu"; - user.setSequentialLoginFailureCount(5); - user.setLastFailedLoginAttempt(OffsetDateTime.now()); + AlertLevelEnum alertLevel = AlertLevelEnum.MEDIUM; doReturn(true).when(configurationService).getAlertUserLoginFailureEnabled(); @@ -260,7 +285,7 @@ public class AlertServiceTest { .map(CredentialVerificationFailedProperties::name).collect(Collectors.toList()); // when - testInstance.alertCredentialVerificationFailed(user, CredentialTypeEnum.USERNAME_PASSWORD); + testInstance.alertCredentialVerificationFailed(credential); // then assertAlertSend(alertType, user.getEmailAddress(), mailFrom, mailSubject, expectedTemplateProperties); @@ -274,10 +299,12 @@ public class AlertServiceTest { @Test public void alertTokenCredentialVerificationFailed() { DBUser user = TestDBUtils.createDBUser("user", "alertCertificateExpired"); + DBCredential credential = TestDBUtils.createDBCredentialForUserAccessToken(user, null, OffsetDateTime.now().plusDays(1), null); + credential.setSequentialLoginFailureCount(5); + credential.setLastFailedLoginAttempt(OffsetDateTime.now()); String mailSubject = "mail subject"; String mailFrom = "mail.from@test.eu"; - user.setSequentialTokenLoginFailureCount(5); - user.setLastTokenFailedLoginAttempt(OffsetDateTime.now()); + AlertLevelEnum alertLevel = AlertLevelEnum.MEDIUM; doReturn(true).when(configurationService).getAlertUserLoginFailureEnabled(); @@ -290,7 +317,7 @@ public class AlertServiceTest { .map(CredentialVerificationFailedProperties::name).collect(Collectors.toList()); // when - testInstance.alertCredentialVerificationFailed(user, CredentialTypeEnum.ACCESS_TOKEN); + testInstance.alertCredentialVerificationFailed(credential); // then assertAlertSend(alertType, user.getEmailAddress(), mailFrom, mailSubject, expectedTemplateProperties); @@ -303,11 +330,13 @@ public class AlertServiceTest { @Test public void alertUsernameCredentialsSuspended() { - DBUser user = TestDBUtils.createDBUser("user", "alertCertificateExpired"); + DBUser user = TestDBUtils.createDBUser("user", "alertUsernameCredentialsSuspended"); + DBCredential credential = TestDBUtils.createDBCredentialForUser(user, null, OffsetDateTime.now().plusDays(1), null); + credential.setSequentialLoginFailureCount(5); + credential.setLastFailedLoginAttempt(OffsetDateTime.now()); String mailSubject = "mail subject"; String mailFrom = "mail.from@test.eu"; - user.setSequentialLoginFailureCount(5); - user.setLastFailedLoginAttempt(OffsetDateTime.now()); + AlertLevelEnum alertLevel = AlertLevelEnum.MEDIUM; doReturn(true).when(configurationService).getAlertUserSuspendedEnabled(); @@ -320,7 +349,7 @@ public class AlertServiceTest { .map(CredentialSuspendedProperties::name).collect(Collectors.toList()); // when - testInstance.alertCredentialsSuspended(user, CredentialTypeEnum.USERNAME_PASSWORD); + testInstance.alertCredentialsSuspended(credential); // then assertAlertSend(alertType, user.getEmailAddress(), mailFrom, mailSubject, expectedTemplateProperties); @@ -334,10 +363,13 @@ public class AlertServiceTest { @Test public void alertTokenCredentialsSuspended() { DBUser user = TestDBUtils.createDBUser("user", "alertCertificateExpired"); + DBCredential credential = TestDBUtils.createDBCredentialForUserAccessToken(user, null, OffsetDateTime.now().plusDays(1), null); + credential.setSequentialLoginFailureCount(5); + credential.setLastFailedLoginAttempt(OffsetDateTime.now()); + String mailSubject = "mail subject"; String mailFrom = "mail.from@test.eu"; - user.setSequentialTokenLoginFailureCount(5); - user.setLastTokenFailedLoginAttempt(OffsetDateTime.now()); + AlertLevelEnum alertLevel = AlertLevelEnum.MEDIUM; doReturn(true).when(configurationService).getAlertUserSuspendedEnabled(); @@ -350,7 +382,7 @@ public class AlertServiceTest { .map(CredentialSuspendedProperties::name).collect(Collectors.toList()); // when - testInstance.alertCredentialsSuspended(user, CredentialTypeEnum.ACCESS_TOKEN); + testInstance.alertCredentialsSuspended(credential); // then assertAlertSend(alertType, user.getEmailAddress(), mailFrom, mailSubject, expectedTemplateProperties); @@ -361,7 +393,6 @@ public class AlertServiceTest { verify(configurationService, times(1)).getAlertEmailFrom(); } - public void assertAlertSend(AlertTypeEnum alertType, String mailTo, String mailFrom, String mailSubject, List<String> templateProperties) { @@ -394,5 +425,5 @@ public class AlertServiceTest { assertEquals(templateProperties.size(), model.getModel().size()); } - */ + } diff --git a/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/services/CRLVerifierServiceTest.java b/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/services/CRLVerifierServiceTest.java index aa42fcc9c3f028627ed7d2083f80f1df82618461..c4df3e45dc75fcd86ee48e04d3df99187c3f63e7 100644 --- a/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/services/CRLVerifierServiceTest.java +++ b/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/services/CRLVerifierServiceTest.java @@ -18,7 +18,6 @@ import static org.junit.Assert.assertNull; import static org.junit.Assert.assertThrows; -@Ignore public class CRLVerifierServiceTest extends AbstractServiceIntegrationTest { @Rule @@ -41,7 +40,7 @@ public class CRLVerifierServiceTest extends AbstractServiceIntegrationTest { crlVerifierServiceInstance = Mockito.spy(crlVerifierServiceInstance); configurationService = Mockito.spy(configurationService); ReflectionTestUtils.setField(crlVerifierServiceInstance, "configurationService", configurationService); - // force veifiction + // force verification Mockito.doReturn(true).when(configurationService).forceCRLValidation(); } diff --git a/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/services/CredentialServiceTest.java b/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/services/CredentialServiceTest.java new file mode 100644 index 0000000000000000000000000000000000000000..84f63355877067baaccbc2bce475dd7e3e2d8145 --- /dev/null +++ b/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/services/CredentialServiceTest.java @@ -0,0 +1,59 @@ +package eu.europa.ec.edelivery.smp.services; + +import org.junit.Test; + +import static org.junit.Assert.*; + +public class CredentialServiceTest { + + + + + @Test + public void authenticateByUsernamePassword() { + } + + @Test + public void authenticateByAuthenticationToken() { + } + + @Test + public void isNotValidCredential() { + } + + @Test + public void authenticateByCertificateToken() { + } + + @Test + public void validateCertificatePolicyMatchLegacy() { + } + + @Test + public void delayResponse() { + } + + @Test + public void loginAttemptFailedAndThrowError() { + } + + @Test + public void validateIfCredentialIsSuspended() { + } + + @Test + public void getLoginMaxAttempts() { + } + + @Test + public void getLoginSuspensionTimeInSeconds() { + } + + @Test + public void getAlertBeforeUserSuspendedAlertMoment() { + } + + @Test + public void getLoginFailDelayInMilliSeconds() { + } +} diff --git a/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/services/DomainServiceSMLTest.java b/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/services/DomainServiceSMLTest.java index 0eef2d42c4eed93c2c42d3a116100a09d1349834..9943f3786af7d9f892040ec76e3145d3849cce2c 100644 --- a/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/services/DomainServiceSMLTest.java +++ b/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/services/DomainServiceSMLTest.java @@ -56,7 +56,6 @@ import static org.mockito.Mockito.verify; * @author Joze Rihtarsic * @since 4.1 */ -@Ignore @RunWith(SpringRunner.class) @ContextConfiguration(classes = {SmlIntegrationConfiguration.class, SmlConnector.class, DomainService.class}) @@ -186,7 +185,7 @@ public class DomainServiceSMLTest extends AbstractServiceIntegrationTest { verify(integrationMock.getParticipantManagmentClientMocks().get(2)).create(any()); Mockito.verifyNoMoreInteractions(integrationMock.getParticipantManagmentClientMocks().toArray()); - */ + } @Test diff --git a/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/services/SMLIntegrationServiceNoSMLIntegrationTest.java b/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/services/SMLIntegrationServiceNoSMLIntegrationTest.java index d4dca15eab5b2f87fa51143d84a50daa1561229a..c0b2d4eb6afb88cd81eb13a58c50a2929c76e24a 100644 --- a/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/services/SMLIntegrationServiceNoSMLIntegrationTest.java +++ b/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/services/SMLIntegrationServiceNoSMLIntegrationTest.java @@ -82,8 +82,10 @@ public class SMLIntegrationServiceNoSMLIntegrationTest extends AbstractServiceIn expectedException.expect(SMPRuntimeException.class); expectedException.expectMessage("Configuration error: SML integration is not enabled!"); + DBDomain testDomain01 = domainDao.getDomainByCode(TEST_DOMAIN_CODE_1).get(); + domainDao.gety // when - testInstance.registerParticipant(TEST_SG_ID_1, TEST_SG_SCHEMA_1, TEST_DOMAIN_CODE_1); + testInstance.registerParticipant(TEST_SG_ID_1, TEST_SG_SCHEMA_1, testDomain01); } */ diff --git a/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/services/SMLIntegrationServiceTest.java b/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/services/SMLIntegrationServiceTest.java index 68019288b68685ab4be002f7ee6ddefb2a495441..b43eb6be525ca3aa6a2280d3608c8b4ebce8253c 100644 --- a/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/services/SMLIntegrationServiceTest.java +++ b/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/services/SMLIntegrationServiceTest.java @@ -49,7 +49,6 @@ import static org.mockito.Mockito.verify; * @author Joze Rihtarsic * @since 4.1 */ -@Ignore @RunWith(SpringRunner.class) @ContextConfiguration(classes = {SmlIntegrationConfiguration.class, SMLIntegrationService.class}) diff --git a/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/services/ServiceMetadataSignerMultipleDomainsIntegrationTest.java b/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/services/ServiceMetadataSignerMultipleDomainsIntegrationTest.java deleted file mode 100644 index 989ecd7afe5782e25ebd8419eac81b53d56517ad..0000000000000000000000000000000000000000 --- a/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/services/ServiceMetadataSignerMultipleDomainsIntegrationTest.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright 2018 European Commission | CEF eDelivery - * - * Licensed under the EUPL, Version 1.2 or - as soon they will be approved by the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * - * You may obtain a copy of the Licence attached in file: LICENCE-EUPL-v1.2.pdf - * - * Unless required by applicable law or agreed to in writing, software distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and limitations under the Licence. - */ - -package eu.europa.ec.edelivery.smp.services; - -import eu.europa.ec.edelivery.smp.services.spi.SmpXmlSignatureService; -import eu.europa.ec.edelivery.smp.services.ui.UIKeystoreService; -import eu.europa.ec.edelivery.smp.testutil.SignatureUtil; -import org.junit.Before; -import org.junit.Ignore; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Mockito; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.junit4.SpringRunner; -import org.springframework.test.util.ReflectionTestUtils; -import org.w3c.dom.Document; -import org.w3c.dom.Element; - -import java.io.File; -import java.nio.file.Path; -import java.nio.file.Paths; - -import static org.junit.Assert.assertEquals; -import static org.apache.xml.security.signature.XMLSignature.ALGO_ID_SIGNATURE_RSA_SHA256; -import static javax.xml.crypto.dsig.DigestMethod.SHA256; - -/** - * Created by gutowpa on 24/01/2018. - */ -@Ignore -@RunWith(SpringRunner.class) -@ContextConfiguration(classes = {SmpXmlSignatureService.class}) -public class ServiceMetadataSignerMultipleDomainsIntegrationTest extends AbstractServiceIntegrationTest { - - Path resourceDirectory = Paths.get("src", "test", "resources", "keystores"); - - ConfigurationService configurationService = Mockito.mock(ConfigurationService.class); - - @Autowired - UIKeystoreService uiKeystoreService; - - @Autowired - private SmpXmlSignatureService signer; - - - @Before - public void setup(){ - configurationService = Mockito.spy(configurationService); - ReflectionTestUtils.setField(uiKeystoreService,"configurationService",configurationService); - ReflectionTestUtils.setField(signer,"uiKeystoreService",uiKeystoreService); - - // set keystore properties - File keystoreFile = new File(resourceDirectory.toFile(), "smp-keystore_multiple_domains.jks"); - Mockito.doReturn( keystoreFile).when(configurationService).getKeystoreFile(); - Mockito.doReturn( resourceDirectory.toFile()).when(configurationService).getSecurityFolder(); - Mockito.doReturn("test123").when(configurationService).getKeystoreCredentialToken(); - uiKeystoreService.refreshData(); - } - -} diff --git a/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/services/mail/MailServiceTest.java b/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/services/mail/MailServiceTest.java index 64e2fada17c79c56444f7ca308668286d9f606c4..3e63f9be2973bfcde58c77c61d294fd82106317f 100644 --- a/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/services/mail/MailServiceTest.java +++ b/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/services/mail/MailServiceTest.java @@ -14,7 +14,6 @@ import org.springframework.test.context.ContextConfiguration; import javax.mail.internet.MimeMessage; -@Ignore @ContextConfiguration(classes = {MockAlertBeans.class, MailService.class}) public class MailServiceTest extends AbstractServiceIntegrationTest { diff --git a/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/services/ui/UIKeystoreServiceTest.java b/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/services/ui/UIKeystoreServiceTest.java index b8d715bef0c1a6b4da03a96f509ff48f1ce3c49b..7b5467d91a59b712049e533447a34eebcca19e4e 100644 --- a/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/services/ui/UIKeystoreServiceTest.java +++ b/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/services/ui/UIKeystoreServiceTest.java @@ -18,6 +18,7 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.util.ReflectionTestUtils; import javax.net.ssl.KeyManager; +import javax.security.auth.x500.X500Principal; import java.io.File; import java.io.FileInputStream; import java.io.IOException; @@ -29,9 +30,6 @@ import java.util.List; import static org.junit.Assert.*; -; - -@Ignore @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = {UIKeystoreService.class, ConversionTestConfig.class, ConfigurationService.class}) @@ -39,6 +37,9 @@ public class UIKeystoreServiceTest extends AbstractServiceIntegrationTest { public static final String S_ALIAS = "single_domain_key"; + + public static final X500Principal CERT_SUBJECT_X500PRINCIPAL = new X500Principal("CN=SMP Mock Services, OU=DIGIT, O=European Commision, C=BE"); + @Rule public ExpectedException expectedEx = ExpectedException.none(); @@ -88,7 +89,7 @@ public class UIKeystoreServiceTest extends AbstractServiceIntegrationTest { X509Certificate certificate = testInstance.getCert(S_ALIAS); // then assertNotNull(certificate); - assertEquals("C=BE,O=European Commision,OU=DIGIT,CN=SMP Mock Services", certificate.getSubjectDN().getName()); + assertEquals(CERT_SUBJECT_X500PRINCIPAL, certificate.getSubjectX500Principal()); } @Test @@ -108,7 +109,8 @@ public class UIKeystoreServiceTest extends AbstractServiceIntegrationTest { X509Certificate certificate = testInstance.getCert(null); // then assertNotNull(certificate); - assertEquals("C=BE,O=European Commision,OU=DIGIT,CN=SMP Mock Services", certificate.getSubjectDN().getName()); + + assertEquals(CERT_SUBJECT_X500PRINCIPAL, certificate.getSubjectX500Principal()); } @Test @@ -130,7 +132,7 @@ public class UIKeystoreServiceTest extends AbstractServiceIntegrationTest { X509Certificate certificate = testInstance.getCert(S_ALIAS); // then assertNotNull(certificate); - assertEquals("C=BE,O=European Commision,OU=DIGIT,CN=SMP Mock Services", certificate.getSubjectDN().getName()); + assertEquals(CERT_SUBJECT_X500PRINCIPAL, certificate.getSubjectX500Principal()); } @Test diff --git a/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/services/ui/UIServiceGroupSearchServiceTest.java b/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/services/ui/UIServiceGroupSearchServiceTest.java index c1a1eb5d44f12624e0dc89c90a3da89d1913ee62..96ec27e89c67dd93f01aa80e1f67d35a12548283 100644 --- a/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/services/ui/UIServiceGroupSearchServiceTest.java +++ b/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/services/ui/UIServiceGroupSearchServiceTest.java @@ -17,8 +17,8 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; -@Ignore @ContextConfiguration(classes = {UIServiceGroupSearchService.class, UIServiceMetadataService.class}) +@Ignore public class UIServiceGroupSearchServiceTest extends AbstractServiceIntegrationTest { @Autowired diff --git a/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/services/ui/UITruststoreServiceIntegrationTest.java b/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/services/ui/UITruststoreServiceIntegrationTest.java index a8c02daf03fcd0e82df8a65a9c0fddbcc3cfb2e7..aff77d50b918b23e217e4899ea84708d2451e26f 100644 --- a/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/services/ui/UITruststoreServiceIntegrationTest.java +++ b/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/services/ui/UITruststoreServiceIntegrationTest.java @@ -35,7 +35,6 @@ import java.util.*; import static org.hamcrest.CoreMatchers.containsString; import static org.junit.Assert.*; -@Ignore @RunWith(SpringJUnit4ClassRunner.class) public class UITruststoreServiceIntegrationTest extends AbstractServiceIntegrationTest { @@ -300,10 +299,9 @@ public class UITruststoreServiceIntegrationTest extends AbstractServiceIntegrati OffsetDateTime.now().plusDays(1), Collections.emptyList()); // when - CertificateNotYetValidException result = assertThrows(CertificateNotYetValidException.class, () -> + assertThrows(CertificateNotYetValidException.class, () -> testInstance.checkFullCertificateValidity(certificate)); - //then - MatcherAssert.assertThat(result.getMessage(), CoreMatchers.containsString("certificate not valid till")); + } @Test @@ -318,10 +316,9 @@ public class UITruststoreServiceIntegrationTest extends AbstractServiceIntegrati Collections.emptyList()); // when - CertificateExpiredException result = assertThrows(CertificateExpiredException.class, () -> + assertThrows(CertificateExpiredException.class, () -> testInstance.checkFullCertificateValidity(certificate)); - //then - MatcherAssert.assertThat(result.getMessage(), CoreMatchers.containsString("certificate expired")); + } @Test @@ -454,7 +451,7 @@ public class UITruststoreServiceIntegrationTest extends AbstractServiceIntegrati String alias = testInstance.createAliasFromCert(certificate, null); // then - assertEquals("SMP Test", alias); + assertEquals("smp test", alias); } @@ -467,7 +464,7 @@ public class UITruststoreServiceIntegrationTest extends AbstractServiceIntegrati String alias = testInstance.createAliasFromCert(certificate, null); // then - assertEquals("SMP Test", alias); + assertEquals("smp test", alias); } @Test diff --git a/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/services/ui/UIUserServiceIntegrationTest.java b/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/services/ui/UIUserServiceIntegrationTest.java index 0a8f42fbd8465ad8d33dad5b439f6eee285eef8e..5a39d8a76c697a14cfc1d8b7d4078d7f380dc545 100644 --- a/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/services/ui/UIUserServiceIntegrationTest.java +++ b/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/services/ui/UIUserServiceIntegrationTest.java @@ -3,13 +3,32 @@ package eu.europa.ec.edelivery.smp.services.ui; import eu.europa.ec.edelivery.smp.config.ConversionTestConfig; import eu.europa.ec.edelivery.smp.data.dao.ResourceDao; +import eu.europa.ec.edelivery.smp.data.enums.ApplicationRoleType; +import eu.europa.ec.edelivery.smp.data.model.user.DBCredential; +import eu.europa.ec.edelivery.smp.data.model.user.DBUser; +import eu.europa.ec.edelivery.smp.data.ui.ServiceResult; +import eu.europa.ec.edelivery.smp.data.ui.UserRO; +import eu.europa.ec.edelivery.smp.data.ui.enums.EntityROStatus; +import eu.europa.ec.edelivery.smp.exceptions.SMPRuntimeException; import eu.europa.ec.edelivery.smp.services.AbstractServiceIntegrationTest; +import eu.europa.ec.edelivery.smp.testutil.TestDBUtils; +import org.hamcrest.CoreMatchers; +import org.hamcrest.MatcherAssert; +import org.junit.Assert; import org.junit.Ignore; import org.junit.Rule; +import org.junit.Test; import org.junit.rules.ExpectedException; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.authentication.BadCredentialsException; +import org.springframework.security.crypto.bcrypt.BCrypt; import org.springframework.test.context.ContextConfiguration; +import java.util.Optional; +import java.util.UUID; + +import static org.junit.Assert.*; + /** * Purpose of class is to test ServiceGroupService base methods @@ -18,7 +37,6 @@ import org.springframework.test.context.ContextConfiguration; * @since 4.1 */ @ContextConfiguration(classes = {UIUserService.class, ConversionTestConfig.class}) -@Ignore public class UIUserServiceIntegrationTest extends AbstractServiceIntegrationTest { @Rule public ExpectedException expectedExeption = ExpectedException.none(); @@ -26,12 +44,10 @@ public class UIUserServiceIntegrationTest extends AbstractServiceIntegrationTest protected UIUserService testInstance; @Autowired protected ResourceDao serviceGroupDao; -/* protected void insertDataObjects(int size) { for (int i = 0; i < size; i++) { DBUser d = TestDBUtils.createDBUserByUsername("user" + i); - d.setPassword(BCrypt.hashpw(d.getPassword(), BCrypt.gensalt())); userDao.persistFlushDetach(d); } } @@ -73,171 +89,35 @@ public class UIUserServiceIntegrationTest extends AbstractServiceIntegrationTest assertNotNull(res.getServiceEntities().get(0).getUserId()); assertNotNull(res.getServiceEntities().get(0).getUsername()); assertNotNull(res.getServiceEntities().get(0).getEmailAddress()); - assertNull(res.getServiceEntities().get(0).getPassword()); // Service list must not return passwords assertNotNull(res.getServiceEntities().get(0).getRole()); } @Test - public void testAddUserWithoutCertificate() { + public void testAddUser() { // given insertDataObjects(15); long iCnt = userDao.getDataListCount(null); UserRO user = new UserRO(); - user.setPassword(UUID.randomUUID().toString()); user.setUsername(UUID.randomUUID().toString()); user.setEmailAddress(UUID.randomUUID().toString()); - user.setRole("ROLE"); + user.setRole(ApplicationRoleType.USER); user.setStatus(EntityROStatus.NEW.getStatusNumber()); - - //when - testInstance.updateUserList(Collections.singletonList(user), null); + testInstance.adminCreateUserData(user); // then long iCntNew = userDao.getDataListCount(null); assertEquals(iCnt + 1, iCntNew); Optional<DBUser> oUsr = userDao.findUserByUsername(user.getUsername()); assertTrue(oUsr.isPresent()); - assertTrue(BCrypt.checkpw(user.getPassword(), oUsr.get().getPassword())); // password must be encrypted assertEquals(user.getUsername(), oUsr.get().getUsername()); - assertEquals(user.getRole(), oUsr.get().getRole()); + assertEquals(user.getRole(), oUsr.get().getApplicationRole()); assertEquals(user.getEmailAddress(), oUsr.get().getEmailAddress()); - assertNull(oUsr.get().getCertificate()); } - @Test - public void testAddUserWithCertificate() { - // given - insertDataObjects(15); - long iCnt = userDao.getDataListCount(null); - - Calendar calTo = Calendar.getInstance(); - calTo.add(Calendar.YEAR, 1); - Date now = Calendar.getInstance().getTime(); - Date future = calTo.getTime(); - - UserRO user = new UserRO(); - user.setPassword(UUID.randomUUID().toString()); - user.setUsername(UUID.randomUUID().toString()); - user.setEmailAddress(UUID.randomUUID().toString()); - user.setRole("ROLE"); - CertificateRO cert = new CertificateRO(); - cert.setSubject(UUID.randomUUID().toString()); - cert.setIssuer(UUID.randomUUID().toString()); - cert.setSerialNumber(UUID.randomUUID().toString()); - cert.setCertificateId(UUID.randomUUID().toString()); - cert.setValidFrom(now); - cert.setValidTo(future); - user.setCertificate(cert); - - user.setStatus(EntityROStatus.NEW.getStatusNumber()); - - //when - testInstance.updateUserList(Collections.singletonList(user), null); - - // then - long iCntNew = userDao.getDataListCount(null); - assertEquals(iCnt + 1, iCntNew); - Optional<DBUser> oUsr = userDao.findUserByUsername(user.getUsername()); - assertTrue(oUsr.isPresent()); - assertTrue(BCrypt.checkpw(user.getPassword(), oUsr.get().getPassword())); // password must be encrypted - assertEquals(user.getUsername(), oUsr.get().getUsername()); - assertEquals(user.getRole(), oUsr.get().getRole()); - assertEquals(user.getEmailAddress(), oUsr.get().getEmailAddress()); - assertNotNull(oUsr.get().getCertificate()); - assertEquals(cert.getCertificateId(), cert.getCertificateId()); - assertEquals(cert.getSubject(), cert.getSubject()); - assertEquals(cert.getIssuer(), cert.getIssuer()); - assertEquals(cert.getSerialNumber(), cert.getSerialNumber()); - assertEquals(now, cert.getValidFrom()); - assertEquals(future, cert.getValidTo()); - } - - @Test - public void testAddUserWithOnlyCertificate() { - // given - insertDataObjects(15); - long iCnt = userDao.getDataListCount(null); - - Calendar calTo = Calendar.getInstance(); - calTo.add(Calendar.YEAR, 1); - Date now = Calendar.getInstance().getTime(); - Date future = calTo.getTime(); - - UserRO user = new UserRO(); - - user.setRole("ROLE"); - CertificateRO cert = new CertificateRO(); - cert.setSubject(UUID.randomUUID().toString()); - cert.setIssuer(UUID.randomUUID().toString()); - cert.setSerialNumber(UUID.randomUUID().toString()); - cert.setCertificateId(UUID.randomUUID().toString()); - cert.setValidFrom(now); - cert.setValidTo(future); - user.setCertificate(cert); - - user.setStatus(EntityROStatus.NEW.getStatusNumber()); - - //when - testInstance.updateUserList(Collections.singletonList(user), null); - - // then - long iCntNew = userDao.getDataListCount(null); - assertEquals(iCnt + 1, iCntNew); - Optional<DBUser> oUsr = userDao.findUserByIdentifier(user.getCertificate().getCertificateId()); - assertTrue(oUsr.isPresent()); - assertEquals(user.getRole(), oUsr.get().getRole()); - assertEquals(user.getEmailAddress(), oUsr.get().getEmailAddress()); - assertNotNull(oUsr.get().getCertificate()); - assertEquals(cert.getCertificateId(), cert.getCertificateId()); - assertEquals(cert.getSubject(), cert.getSubject()); - assertEquals(cert.getIssuer(), cert.getIssuer()); - assertEquals(cert.getSerialNumber(), cert.getSerialNumber()); - assertEquals(now, cert.getValidFrom()); - assertEquals(future, cert.getValidTo()); - } - - - @Test - public void testUserRemoveCertificate() { - // given - OffsetDateTime now = OffsetDateTime.now().truncatedTo(ChronoUnit.MINUTES); - OffsetDateTime future = now.plusYears(1); - - DBUser user = new DBUser(); - user.setPassword(UUID.randomUUID().toString()); - user.setUsername(UUID.randomUUID().toString()); - user.setEmailAddress(UUID.randomUUID().toString()); - user.setRole("ROLE"); - DBCertificate cert = new DBCertificate(); - cert.setSubject(UUID.randomUUID().toString()); - cert.setIssuer(UUID.randomUUID().toString()); - cert.setSerialNumber(UUID.randomUUID().toString()); - cert.setCertificateId(UUID.randomUUID().toString()); - cert.setValidFrom(now); - cert.setValidTo(future); - user.setCertificate(cert); - userDao.persistFlushDetach(user); - ServiceResult<UserRO> urTest = testInstance.getTableList(-1, -1, null, null, null); - assertEquals(1, urTest.getServiceEntities().size()); - UserRO userRO = urTest.getServiceEntities().get(0); - assertNotNull(userRO.getCertificate()); - - //when - userRO.setCertificate(null); - userRO.setStatus(EntityROStatus.UPDATED.getStatusNumber()); - - testInstance.updateUserList(Collections.singletonList(userRO), null); - - // then - ServiceResult<UserRO> res = testInstance.getTableList(-1, -1, null, null, null); - assertEquals(1, urTest.getServiceEntities().size()); - UserRO userResRO = urTest.getServiceEntities().get(0); - assertNull(userResRO.getCertificate()); - } @Test public void testDeleteUser() { @@ -247,42 +127,17 @@ public class UIUserServiceIntegrationTest extends AbstractServiceIntegrationTest assertEquals(15, urTest.getServiceEntities().size()); UserRO user = urTest.getServiceEntities().get(0); - user.setStatus(EntityROStatus.REMOVE.getStatusNumber()); + Optional<DBUser> rmUsr = userDao.findUserByUsername(user.getUsername()); //when - testInstance.updateUserList(Collections.singletonList(user), null); + testInstance.adminDeleteUserData(rmUsr.get().getId()); // then long iCntNew = userDao.getDataListCount(null); - Optional<DBUser> rmUsr = userDao.findUserByUsername(user.getUsername()); + Optional<DBUser> rmUsr2 = userDao.findUserByUsername(user.getUsername()); assertEquals(urTest.getServiceEntities().size() - 1, iCntNew); - assertFalse(rmUsr.isPresent()); - } - - @Test - @Transactional - public void testGenerateAccessTokenForUser() { - String userPassword = UUID.randomUUID().toString(); - DBUser user = new DBUser(); - user.setPassword(BCrypt.hashpw(userPassword, BCrypt.gensalt())); - user.setUsername(UUID.randomUUID().toString()); - user.setEmailAddress(UUID.randomUUID().toString()); - user.setRole("ROLE"); - userDao.persistFlushDetach(user); - - - AccessTokenRO token = testInstance.generateAccessTokenForUser(user.getId(), user.getId(), userPassword); - - Optional<DBUser> optResult = userDao.findUserByAuthenticationToken(token.getIdentifier()); - assertTrue(optResult.isPresent()); - assertNotNull(token); - DBUser result = optResult.get(); - assertEquals(user.getUsername(), result.getUsername()); - assertEquals(result.getAccessTokenIdentifier(), token.getIdentifier()); - assertTrue(BCrypt.checkpw(token.getValue(), result.getAccessToken())); - assertNotNull(result.getAccessTokenExpireOn()); - assertNotNull(result.getAccessTokenGeneratedOn()); + assertFalse(rmUsr2.isPresent()); } @Test @@ -314,152 +169,60 @@ public class UIUserServiceIntegrationTest extends AbstractServiceIntegrationTest @Test public void testUpdateUserPasswordUserNotAuthorized() { - String userPassword = UUID.randomUUID().toString(); - DBUser user = new DBUser(); - user.setPassword(BCrypt.hashpw(userPassword, BCrypt.gensalt())); - user.setUsername(UUID.randomUUID().toString()); - user.setEmailAddress(UUID.randomUUID().toString()); - user.setRole("ROLE"); + + + DBUser user = TestDBUtils.createDBUserByUsername(UUID.randomUUID().toString()); + DBCredential credential = TestDBUtils.createDBCredentialForUser(user, null, null, null); + credential.setValue(BCrypt.hashpw("userPassword", BCrypt.gensalt())); userDao.persistFlushDetach(user); + credentialDao.persistFlushDetach(credential); + long authorizedUserId = user.getId(); - long userToUpdateId = 1L; String authorizedPassword = "oldPass"; String newPassword = "TTTTtttt1111$$$$$"; BadCredentialsException result = assertThrows(BadCredentialsException.class, - () -> testInstance.updateUserPassword(authorizedUserId, userToUpdateId, authorizedPassword, newPassword)); + () -> testInstance.updateUserPassword(authorizedUserId, authorizedUserId, authorizedPassword, newPassword)); - MatcherAssert.assertThat(result.getMessage(), CoreMatchers.containsString("Password change failed; Invalid current password!")); + MatcherAssert.assertThat(result.getMessage(), CoreMatchers.containsString("Password change failed; Invalid authorization password!")); } @Test public void testUpdateUserPasswordOK() { - String userPassword = UUID.randomUUID().toString(); - DBUser user = new DBUser(); - user.setPassword(BCrypt.hashpw(userPassword, BCrypt.gensalt())); - user.setUsername(UUID.randomUUID().toString()); - user.setEmailAddress(UUID.randomUUID().toString()); - user.setRole("ROLE"); + DBUser user = TestDBUtils.createDBUserByUsername(UUID.randomUUID().toString()); + DBCredential credential = TestDBUtils.createDBCredentialForUser(user, null, null, null); + credential.setValue(BCrypt.hashpw("userPassword", BCrypt.gensalt())); userDao.persistFlushDetach(user); + credentialDao.persistFlushDetach(credential); long authorizedUserId = user.getId(); long userToUpdateId = user.getId(); - String authorizedPassword = userPassword; + String authorizedPassword = "userPassword"; String newPassword = "TTTTtttt1111$$$$$"; testInstance.updateUserPassword(authorizedUserId, userToUpdateId, authorizedPassword, newPassword); } @Test - public void testUpdateUserdataOK() { - String userPassword = UUID.randomUUID().toString(); - DBUser user = new DBUser(); - user.setPassword(BCrypt.hashpw(userPassword, BCrypt.gensalt())); - user.setUsername(UUID.randomUUID().toString()); - user.setEmailAddress(UUID.randomUUID().toString()); - user.setRole("ROLE"); + public void testAdminUpdateUserdataOK() { + DBUser user = TestDBUtils.createDBUserByUsername(UUID.randomUUID().toString()); userDao.persistFlushDetach(user); UserRO userRO = new UserRO(); userRO.setEmailAddress(UUID.randomUUID().toString()); - userRO.setUsername(UUID.randomUUID().toString()); - userRO.setAccessTokenId(UUID.randomUUID().toString()); - userRO.setRole(UUID.randomUUID().toString()); + userRO.setFullName(UUID.randomUUID().toString()); + userRO.setRole(ApplicationRoleType.SYSTEM_ADMIN); - testInstance.updateUserdata(user.getId(), userRO); + testInstance.adminUpdateUserData(user.getId(), userRO); DBUser changedUser = userDao.findUser(user.getId()).get(); // fields must not change - assertEquals(user.getUsername(), changedUser.getUsername()); - assertEquals(user.getAccessToken(), changedUser.getAccessToken()); - assertEquals(user.getRole(), changedUser.getRole()); + assertEquals(userRO.getRole(), changedUser.getApplicationRole()); + assertEquals(userRO.getEmailAddress(), changedUser.getEmailAddress()); + assertEquals(userRO.getFullName(), changedUser.getFullName()); // changed assertEquals(userRO.getEmailAddress(), changedUser.getEmailAddress()); } - @Test - public void testUpdateUserdataCertificateOK() throws Exception { - String certSubject = "CN=" + UUID.randomUUID().toString() + ",O=eDelivery,C=EU"; - String userPassword = UUID.randomUUID().toString(); - DBUser user = new DBUser(); - user.setPassword(BCrypt.hashpw(userPassword, BCrypt.gensalt())); - user.setUsername(UUID.randomUUID().toString()); - user.setEmailAddress(UUID.randomUUID().toString()); - user.setRole("ROLE"); - userDao.persistFlushDetach(user); - - CertificateRO certificateRO = TestROUtils.createCertificateRO(certSubject, BigInteger.TEN); - UserRO userRO = new UserRO(); - userRO.setCertificate(certificateRO); - - testInstance.updateUserdata(user.getId(), userRO); - - - DBUser changedUser = userDao.findUser(user.getId()).get(); - // fields must not change - assertNotNull(changedUser.getCertificate()); - assertNotNull(changedUser.getCertificate().getPemEncoding()); - assertNotNull(certificateRO.getCertificateId(), changedUser.getCertificate().getCertificateId()); - assertNotNull(certificateRO.getSubject(), changedUser.getCertificate().getSubject()); - assertNotNull(certificateRO.getIssuer(), changedUser.getCertificate().getIssuer()); - assertNotNull(certificateRO.getSerialNumber(), changedUser.getCertificate().getSerialNumber()); - } - - - @Test - public void testUpdateUserdataCertificateWithExistingCertificateOK() throws Exception { - String certSubject = "CN=" + UUID.randomUUID().toString() + ",O=eDelivery,C=EU"; - DBUser user = TestDBUtils.createDBUserByCertificate(TestConstants.USER_CERT_2); - userDao.persistFlushDetach(user); - - CertificateRO certificateRO = TestROUtils.createCertificateRO(certSubject, BigInteger.TEN); - UserRO userRO = new UserRO(); - userRO.setCertificate(certificateRO); - - testInstance.updateUserdata(user.getId(), userRO); - - - DBUser changedUser = userDao.findUser(user.getId()).get(); - // fields must not change - assertNotNull(changedUser.getCertificate()); - assertNotNull(changedUser.getCertificate().getPemEncoding()); - assertNotNull(certificateRO.getCertificateId(), changedUser.getCertificate().getCertificateId()); - assertNotNull(certificateRO.getSubject(), changedUser.getCertificate().getSubject()); - assertNotNull(certificateRO.getIssuer(), changedUser.getCertificate().getIssuer()); - assertNotNull(certificateRO.getSerialNumber(), changedUser.getCertificate().getSerialNumber()); - } - - @Test - public void testValidateDeleteRequest() throws Exception { - String username1 = "test-user-delete-01"; - String username2 = "test-user-delete-02"; - - DBUser user1 = TestDBUtils.createDBUser(username1); - DBUser user2 = TestDBUtils.createDBUser(username2); - userDao.persistFlushDetach(user1); - userDao.persistFlushDetach(user2); - - DBDomain d = new DBDomain(); - d.setDomainCode(TEST_DOMAIN_CODE_1); - d.setSmlSubdomain(TEST_SML_SUBDOMAIN_CODE_1); - domainDao.persistFlushDetach(d); - - DBResource sg = TestDBUtils.createDBServiceGroup(TEST_SG_ID_1, TEST_SG_SCHEMA_1); - sg.getMembers().add(new DBResourceMember(sg, user2)); - sg.addDomain(d); - - serviceGroupDao.persistFlushDetach(sg); - DeleteEntityValidation validation = new DeleteEntityValidation(); - validation.getListIds().add(user1.getId()+""); - validation.getListIds().add(user2.getId()+""); - - DeleteEntityValidation result = testInstance.validateDeleteRequest(validation); - - assertEquals(1, result.getListDeleteNotPermitedIds().size()); - assertEquals(user2.getId()+"", result.getListDeleteNotPermitedIds().get(0)); - assertEquals(2, result.getListIds().size()); - } - - */ } diff --git a/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/sml/SmlConnectorParticipantTest.java b/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/sml/SmlConnectorParticipantTest.java index 7651f376b434d7eaa8ed95ef77f131f6fcc9d2e3..3fdbcef560e8a9660809b370147b50d89a863816 100644 --- a/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/sml/SmlConnectorParticipantTest.java +++ b/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/sml/SmlConnectorParticipantTest.java @@ -21,11 +21,10 @@ import eu.europa.ec.edelivery.smp.config.SmlIntegrationConfiguration; import eu.europa.ec.edelivery.smp.exceptions.SMPRuntimeException; import eu.europa.ec.edelivery.smp.services.AbstractServiceIntegrationTest; import eu.europa.ec.edelivery.smp.services.ConfigurationService; +import org.hamcrest.CoreMatchers; +import org.hamcrest.MatcherAssert; import org.junit.Before; -import org.junit.Ignore; -import org.junit.Rule; import org.junit.Test; -import org.junit.rules.ExpectedException; import org.junit.runner.RunWith; import org.mockito.Mockito; import org.springframework.beans.factory.annotation.Autowired; @@ -42,13 +41,10 @@ import static org.mockito.Mockito.verify; * Created by JRC * since 4.1. */ -@Ignore @RunWith(SpringRunner.class) @ContextConfiguration(classes = {SmlConnector.class, SmlIntegrationConfiguration.class}) public class SmlConnectorParticipantTest extends AbstractServiceIntegrationTest { - @Rule - public ExpectedException expectedException = ExpectedException.none(); @Autowired protected ConfigurationService configurationService; @@ -67,7 +63,7 @@ public class SmlConnectorParticipantTest extends AbstractServiceIntegrationTest configurationService = Mockito.spy(configurationService); - ReflectionTestUtils.setField(testInstance,"configurationService",configurationService); + ReflectionTestUtils.setField(testInstance, "configurationService", configurationService); Mockito.doReturn(true).when(configurationService).isSMLIntegrationEnabled(); DEFAULT_DOMAIN.setSmlRegistered(true); mockSml.reset(); @@ -100,22 +96,21 @@ public class SmlConnectorParticipantTest extends AbstractServiceIntegrationTest } @Test - public void testRegisterInDnsUnknownException() throws UnauthorizedFault, NotFoundFault, InternalErrorFault, BadRequestFault { + public void testRegisterInDnsUnknownException() { //when String message = "something unexpected"; Exception ex = new Exception(message); mockSml.setThrowException(ex); - expectedException.expectMessage(message); - expectedException.expect(SMPRuntimeException.class); - testInstance.registerInDns(PARTICIPANT_ID, DEFAULT_DOMAIN, null); + SMPRuntimeException result = assertThrows(SMPRuntimeException.class, () -> testInstance.registerInDns(PARTICIPANT_ID, DEFAULT_DOMAIN, null)); + MatcherAssert.assertThat(result.getMessage(), CoreMatchers.containsString(message)); } @Test public void testRegisterInDnsNewClientIsAlwaysCreated() throws UnauthorizedFault, NotFoundFault, InternalErrorFault, BadRequestFault { //when - testInstance.registerInDns(PARTICIPANT_ID, DEFAULT_DOMAIN , null ); - testInstance.registerInDns(PARTICIPANT_ID, DEFAULT_DOMAIN , null); + testInstance.registerInDns(PARTICIPANT_ID, DEFAULT_DOMAIN, null); + testInstance.registerInDns(PARTICIPANT_ID, DEFAULT_DOMAIN, null); //then assertEquals(2, mockSml.getParticipantManagmentClientMocks().size()); @@ -154,10 +149,10 @@ public class SmlConnectorParticipantTest extends AbstractServiceIntegrationTest //when BadRequestFault ex = new BadRequestFault(ERROR_UNEXPECTED_MESSAGE); mockSml.setThrowException(ex); - expectedException.expectMessage(ERROR_UNEXPECTED_MESSAGE); - expectedException.expect(SMPRuntimeException.class); - testInstance.unregisterFromDns(PARTICIPANT_ID, DEFAULT_DOMAIN); + SMPRuntimeException result = assertThrows(SMPRuntimeException.class, () -> testInstance.unregisterFromDns(PARTICIPANT_ID, DEFAULT_DOMAIN)); + MatcherAssert.assertThat(result.getMessage(), CoreMatchers.containsString(ERROR_UNEXPECTED_MESSAGE)); + } @Test @@ -166,10 +161,9 @@ public class SmlConnectorParticipantTest extends AbstractServiceIntegrationTest String message = "something unexpected"; Exception ex = new Exception(message); mockSml.setThrowException(ex); - expectedException.expectMessage(message); - expectedException.expect(SMPRuntimeException.class); - testInstance.unregisterFromDns(PARTICIPANT_ID, DEFAULT_DOMAIN); + SMPRuntimeException result = assertThrows(SMPRuntimeException.class, () -> testInstance.unregisterFromDns(PARTICIPANT_ID, DEFAULT_DOMAIN)); + MatcherAssert.assertThat(result.getMessage(), CoreMatchers.containsString(message)); } @Test @@ -218,22 +212,22 @@ public class SmlConnectorParticipantTest extends AbstractServiceIntegrationTest @Test public void testProcessSMLErrorMessageBadRequestFaultFailed() { - expectedException.expectMessage(ERROR_UNEXPECTED_MESSAGE); - expectedException.expect(SMPRuntimeException.class); BadRequestFault ex = new BadRequestFault(ERROR_UNEXPECTED_MESSAGE); - testInstance.processSMLErrorMessage(ex, PARTICIPANT_ID); + SMPRuntimeException result = assertThrows(SMPRuntimeException.class, () -> testInstance.processSMLErrorMessage(ex, PARTICIPANT_ID)); + MatcherAssert.assertThat(result.getMessage(), CoreMatchers.containsString(ERROR_UNEXPECTED_MESSAGE)); } @Test public void testProcessSMLErrorMessageNoFoundFaultFailed() { - expectedException.expectMessage(ERROR_UNEXPECTED_MESSAGE); - expectedException.expect(SMPRuntimeException.class); NotFoundFault ex = new NotFoundFault(ERROR_UNEXPECTED_MESSAGE); - testInstance.processSMLErrorMessage(ex, PARTICIPANT_ID); + SMPRuntimeException result = assertThrows(SMPRuntimeException.class, () -> testInstance.processSMLErrorMessage(ex, PARTICIPANT_ID)); + MatcherAssert.assertThat(result.getMessage(), CoreMatchers.containsString(ERROR_UNEXPECTED_MESSAGE)); + + } @Test diff --git a/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/sml/SmlConnectorTestConstants.java b/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/sml/SmlConnectorTestConstants.java index 6674c0849e1851ef19be64749c24d51a71bf535e..2cc419692d77904a30c5aa7faf142277aaa0c1de 100644 --- a/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/sml/SmlConnectorTestConstants.java +++ b/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/sml/SmlConnectorTestConstants.java @@ -6,8 +6,8 @@ import eu.europa.ec.edelivery.smp.identifiers.Identifier; public class SmlConnectorTestConstants { - //protected static final Identifier PARTICIPANT_ID = new Identifier("sample:value", "sample:scheme"); - protected static final Identifier PARTICIPANT_ID = null; + + protected static final Identifier PARTICIPANT_ID = new Identifier("sample:value", "sample:scheme"); protected static final DBDomain DEFAULT_DOMAIN; static { diff --git a/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/testutil/TestDBUtils.java b/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/testutil/TestDBUtils.java index 01c91dcd81b22512421b3c9b044442d7642a57a7..7c043a5d6acaf8a07c76fa1d774856896aa14404 100644 --- a/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/testutil/TestDBUtils.java +++ b/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/testutil/TestDBUtils.java @@ -1,5 +1,6 @@ package eu.europa.ec.edelivery.smp.testutil; +import eu.europa.ec.edelivery.smp.data.enums.ApplicationRoleType; import eu.europa.ec.edelivery.smp.data.enums.CredentialTargetType; import eu.europa.ec.edelivery.smp.data.enums.CredentialType; import eu.europa.ec.edelivery.smp.data.enums.VisibilityType; @@ -265,6 +266,7 @@ public class TestDBUtils { dbuser.setUsername(userName); dbuser.setEmailAddress(userName + "@test.eu"); dbuser.setActive(true); + dbuser.setApplicationRole(ApplicationRoleType.USER); return dbuser; }