From d5347e9c2764b8b6816b266bbb912baf8bc0e840 Mon Sep 17 00:00:00 2001 From: Joze RIHTARSIC <joze.RIHTARSIC@ext.ec.europa.eu> Date: Wed, 8 Jun 2022 13:47:16 +0200 Subject: [PATCH] add unit tests --- .../AbstractServiceIntegrationTest.java | 3 + .../ui/UIAlertServiceIntegrationTest.java | 59 +++++++++++++++++++ .../ui/UIUserServiceIntegrationTest.java | 53 ++++++++++++----- .../edelivery/smp/testutil/TestDBUtils.java | 22 +++++++ .../src/test/resources/cleanup-database.sql | 2 + 5 files changed, 124 insertions(+), 15 deletions(-) create mode 100644 smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/services/ui/UIAlertServiceIntegrationTest.java 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 257fa28b1..ca5d6ebe8 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 @@ -79,6 +79,9 @@ public abstract class AbstractServiceIntegrationTest { @Autowired protected UserDao userDao; + @Autowired + protected AlertDao alertDao; + @Autowired DBAssertion dbAssertion; diff --git a/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/services/ui/UIAlertServiceIntegrationTest.java b/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/services/ui/UIAlertServiceIntegrationTest.java new file mode 100644 index 000000000..73c750fc1 --- /dev/null +++ b/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/services/ui/UIAlertServiceIntegrationTest.java @@ -0,0 +1,59 @@ +package eu.europa.ec.edelivery.smp.services.ui; + +import eu.europa.ec.edelivery.smp.data.model.DBAlert; +import eu.europa.ec.edelivery.smp.data.ui.AlertRO; +import eu.europa.ec.edelivery.smp.data.ui.ServiceResult; +import eu.europa.ec.edelivery.smp.services.AbstractServiceIntegrationTest; +import eu.europa.ec.edelivery.smp.services.AlertService; +import eu.europa.ec.edelivery.smp.testutil.TestDBUtils; +import org.junit.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.test.context.ContextConfiguration; + +import static org.junit.Assert.assertEquals; + +@ContextConfiguration(classes = UIAlertService.class) +public class UIAlertServiceIntegrationTest extends AbstractServiceIntegrationTest { + + @Autowired + protected UIAlertService testInstance; + + @Autowired + AlertService alertService; + + protected void insertDataObjects(int size) { + + String username = "username-intg-test"; + TestDBUtils.createDBAlert(username); + for (int i = 0; i < size; i++) { + DBAlert alert = TestDBUtils.createDBAlert(username); + alertDao.persistFlushDetach(alert); + } + } + + + @Test + public void getTableList() { + ServiceResult<AlertRO> before = testInstance.getTableList(-1, -1, null, null, null); + int newAddedValuesCount = 10; + insertDataObjects(newAddedValuesCount); + + ServiceResult<AlertRO> result = testInstance.getTableList(-1, -1, null, null, null); + + assertEquals(before.getCount() + newAddedValuesCount, result.getCount().intValue()); + } + + + @Test + public void convertToRo() { + DBAlert alert = TestDBUtils.createDBAlert("test"); + AlertRO alertRO = testInstance.convertToRo(alert); + + assertEquals(alert.getUsername(), alertRO.getUsername()); + assertEquals(alert.getAlertLevel(), alertRO.getAlertLevel()); + assertEquals(alert.getAlertStatus(), alertRO.getAlertStatus()); + assertEquals(alert.getAlertStatusDesc(), alertRO.getAlertStatusDesc()); + assertEquals(alert.getMailTo(), alertRO.getMailTo()); + assertEquals(alert.getProperties().size(), alertRO.getAlertDetails().size()); + } +} \ No newline at end of file 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 2c2f2bf51..88dbcfb7b 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 @@ -11,11 +11,11 @@ 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.TestConstants; import eu.europa.ec.edelivery.smp.testutil.TestDBUtils; import eu.europa.ec.edelivery.smp.testutil.TestROUtils; import org.hamcrest.CoreMatchers; import org.hamcrest.MatcherAssert; -import org.junit.Assert; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; @@ -307,8 +307,8 @@ public class UIUserServiceIntegrationTest extends AbstractServiceIntegrationTest public void testUpdateUserPasswordNotMatchReqExpression() { long authorizedUserId = 1L; long userToUpdateId = 1L; - String authorizedPassword="testPass"; - String newPassword="newPass"; + String authorizedPassword = "testPass"; + String newPassword = "newPass"; SMPRuntimeException result = assertThrows(SMPRuntimeException.class, () -> testInstance.updateUserPassword(authorizedUserId, userToUpdateId, authorizedPassword, newPassword)); @@ -321,8 +321,8 @@ public class UIUserServiceIntegrationTest extends AbstractServiceIntegrationTest long authorizedUserId = 1L; long userToUpdateId = 1L; - String authorizedPassword="oldPass"; - String newPassword="TTTTtttt1111$$$$$"; + String authorizedPassword = "oldPass"; + String newPassword = "TTTTtttt1111$$$$$"; SMPRuntimeException result = assertThrows(SMPRuntimeException.class, () -> testInstance.updateUserPassword(authorizedUserId, userToUpdateId, authorizedPassword, newPassword)); @@ -342,8 +342,8 @@ public class UIUserServiceIntegrationTest extends AbstractServiceIntegrationTest long authorizedUserId = user.getId(); long userToUpdateId = 1L; - String authorizedPassword="oldPass"; - String newPassword="TTTTtttt1111$$$$$"; + String authorizedPassword = "oldPass"; + String newPassword = "TTTTtttt1111$$$$$"; BadCredentialsException result = assertThrows(BadCredentialsException.class, () -> testInstance.updateUserPassword(authorizedUserId, userToUpdateId, authorizedPassword, newPassword)); @@ -363,8 +363,8 @@ public class UIUserServiceIntegrationTest extends AbstractServiceIntegrationTest long authorizedUserId = user.getId(); long userToUpdateId = user.getId(); - String authorizedPassword=userPassword; - String newPassword="TTTTtttt1111$$$$$"; + String authorizedPassword = userPassword; + String newPassword = "TTTTtttt1111$$$$$"; testInstance.updateUserPassword(authorizedUserId, userToUpdateId, authorizedPassword, newPassword); } @@ -398,7 +398,7 @@ public class UIUserServiceIntegrationTest extends AbstractServiceIntegrationTest @Test public void testUpdateUserdataCertificateOK() throws Exception { - String certSubject = "CN="+UUID.randomUUID().toString()+",O=eDelivery,C=EU"; + 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())); @@ -409,7 +409,8 @@ public class UIUserServiceIntegrationTest extends AbstractServiceIntegrationTest CertificateRO certificateRO = TestROUtils.createCertificateRO(certSubject, BigInteger.TEN); UserRO userRO = new UserRO(); - userRO.setCertificate(certificateRO);; + userRO.setCertificate(certificateRO); + testInstance.updateUserdata(user.getId(), userRO); @@ -417,11 +418,33 @@ public class UIUserServiceIntegrationTest extends AbstractServiceIntegrationTest // 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()); + 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()); } } 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 da792681a..a10bc9d58 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 com.sun.org.apache.bcel.internal.generic.ARETURN; import eu.europa.ec.edelivery.smp.data.model.*; import eu.europa.ec.edelivery.smp.data.ui.enums.AlertLevelEnum; import eu.europa.ec.edelivery.smp.data.ui.enums.AlertStatusEnum; @@ -24,6 +25,27 @@ public class TestDBUtils { return domain; } + public static DBAlert createDBAlert(String username) { + return createDBAlert(username, "mail-subject", "mail.to@test.eu",AlertLevelEnum.MEDIUM, AlertTypeEnum.CREDENTIAL_IMMINENT_EXPIRATION); + } + + public static DBAlert createDBAlert(String username, String mailSubject, + String mailTo, + AlertLevelEnum level, + AlertTypeEnum alertType) { + DBAlert alert = new DBAlert(); + alert.setMailSubject(mailSubject); + alert.setMailTo(mailTo); + alert.setUsername(username); + alert.setReportingTime(OffsetDateTime.now()); + alert.setAlertType(alertType); + alert.setAlertLevel(level); + alert.setAlertStatus(AlertStatusEnum.PROCESS); + alert.addProperty("prop1", "propValue1"); + alert.addProperty("prop2", "propValue2"); + return alert; + } + public static DBDomain createDBDomain() { return createDBDomain(TestConstants.TEST_DOMAIN_CODE_1); } diff --git a/smp-server-library/src/test/resources/cleanup-database.sql b/smp-server-library/src/test/resources/cleanup-database.sql index 95d7afdd4..0a97f57a1 100755 --- a/smp-server-library/src/test/resources/cleanup-database.sql +++ b/smp-server-library/src/test/resources/cleanup-database.sql @@ -9,6 +9,7 @@ DELETE FROM SMP_SERVICE_GROUP_AUD ; DELETE FROM SMP_DOMAIN_AUD; DELETE FROM SMP_CERTIFICATE_AUD ; DELETE FROM SMP_USER_AUD; +DELETE FROM SMP_ALERT_PROPERTY_AUD; DELETE FROM SMP_ALERT_AUD; DELETE FROM SMP_REV_INFO; @@ -23,6 +24,7 @@ DELETE FROM SMP_SERVICE_GROUP; DELETE FROM SMP_DOMAIN; DELETE FROM SMP_CERTIFICATE; DELETE FROM SMP_USER; +DELETE FROM SMP_ALERT_PROPERTY; DELETE FROM SMP_ALERT; DELETE FROM SMP_OWNERSHIP; -- GitLab