diff --git a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/sml/SmlConnector.java b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/sml/SmlConnector.java index 5722bd0270727a259c3f158ba5369a6f74b5332e..8b188563ebda9919a5e0c0604525a9a8810bf96c 100644 --- a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/sml/SmlConnector.java +++ b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/sml/SmlConnector.java @@ -85,7 +85,7 @@ public class SmlConnector implements ApplicationContextAware { } } - private boolean processSMLErrorMessage(BadRequestFault e, ParticipantIdentifierType participantIdentifierType){ + protected boolean processSMLErrorMessage(BadRequestFault e, ParticipantIdentifierType participantIdentifierType){ if(!isOkMessage(participantIdentifierType, e.getMessage())){ LOG.error( e.getMessage(), e); throw new SMPRuntimeException(ErrorCode.SML_INTEGRATION_EXCEPTION,e, ExceptionUtils.getRootCauseMessage(e)); @@ -94,7 +94,7 @@ public class SmlConnector implements ApplicationContextAware { return true; } - private boolean processSMLErrorMessage(NotFoundFault e, ParticipantIdentifierType participantIdentifierType){ + protected boolean processSMLErrorMessage(NotFoundFault e, ParticipantIdentifierType participantIdentifierType){ if(!isOkMessage(participantIdentifierType, e.getMessage())){ LOG.error( e.getMessage(), e); throw new SMPRuntimeException(ErrorCode.SML_INTEGRATION_EXCEPTION,e, ExceptionUtils.getRootCauseMessage(e)); diff --git a/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/smlintegration/SmlClientFactoryAuthenticationByClientCertFromKeystoreTest.java b/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/sml/SmlClientFactoryAuthenticationByClientCertFromKeystoreTest.java similarity index 91% rename from smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/smlintegration/SmlClientFactoryAuthenticationByClientCertFromKeystoreTest.java rename to smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/sml/SmlClientFactoryAuthenticationByClientCertFromKeystoreTest.java index a8884fb95eece7246365f6aaeaaf3c072361d6e5..691c8c8eeccac34497937de955cfd4f71c39daf1 100644 --- a/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/smlintegration/SmlClientFactoryAuthenticationByClientCertFromKeystoreTest.java +++ b/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/sml/SmlClientFactoryAuthenticationByClientCertFromKeystoreTest.java @@ -11,42 +11,31 @@ * See the Licence for the specific language governing permissions and limitations under the Licence. */ -package eu.europa.ec.edelivery.smp.smlintegration; +package eu.europa.ec.edelivery.smp.sml; import eu.europa.ec.bdmsl.ws.soap.IManageParticipantIdentifierWS; import eu.europa.ec.bdmsl.ws.soap.IManageServiceMetadataWS; import eu.europa.ec.edelivery.smp.config.ConversionTestConfig; import eu.europa.ec.edelivery.smp.config.PropertiesMultipleDomainTestConfig; -import eu.europa.ec.edelivery.smp.config.PropertiesSingleDomainTestConfig; import eu.europa.ec.edelivery.smp.services.SecurityUtilsServices; import eu.europa.ec.edelivery.smp.services.ui.UIKeystoreService; -import eu.europa.ec.edelivery.smp.sml.SmlClientFactory; import org.apache.cxf.configuration.jsse.TLSClientParameters; import org.apache.cxf.endpoint.Client; import org.apache.cxf.frontend.ClientProxy; import org.apache.cxf.message.Message; import org.apache.cxf.transport.http.HTTPConduit; -import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.ComponentScan; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.support.PropertySourcesPlaceholderConfigurer; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringRunner; import javax.net.ssl.KeyManager; import javax.net.ssl.X509KeyManager; -import java.nio.file.Path; -import java.nio.file.Paths; import java.security.PrivateKey; -import java.security.Security; import java.security.cert.X509Certificate; import java.util.Map; -import static eu.europa.ec.edelivery.smp.testutil.LocalPropertiesTestUtil.buildLocalProperties; import static org.junit.Assert.*; /** diff --git a/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/smlintegration/SmlClientFactoryAuthenticationByClientCertHttpHeaderTest.java b/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/sml/SmlClientFactoryAuthenticationByClientCertHttpHeaderTest.java similarity index 88% rename from smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/smlintegration/SmlClientFactoryAuthenticationByClientCertHttpHeaderTest.java rename to smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/sml/SmlClientFactoryAuthenticationByClientCertHttpHeaderTest.java index 39f8396f7a0d2ac67f8ba54d3c4068da026879e5..a7669028426936f0cf53a7b0ab8a89400b1bc37f 100644 --- a/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/smlintegration/SmlClientFactoryAuthenticationByClientCertHttpHeaderTest.java +++ b/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/sml/SmlClientFactoryAuthenticationByClientCertHttpHeaderTest.java @@ -11,7 +11,7 @@ * See the Licence for the specific language governing permissions and limitations under the Licence. */ -package eu.europa.ec.edelivery.smp.smlintegration; +package eu.europa.ec.edelivery.smp.sml; import eu.europa.ec.bdmsl.ws.soap.IManageParticipantIdentifierWS; import eu.europa.ec.bdmsl.ws.soap.IManageServiceMetadataWS; @@ -19,24 +19,18 @@ import eu.europa.ec.edelivery.smp.config.ConversionTestConfig; import eu.europa.ec.edelivery.smp.config.PropertiesSingleDomainTestConfig; import eu.europa.ec.edelivery.smp.services.SecurityUtilsServices; import eu.europa.ec.edelivery.smp.services.ui.UIKeystoreService; -import eu.europa.ec.edelivery.smp.sml.SmlClientFactory; import org.apache.cxf.endpoint.Client; import org.apache.cxf.frontend.ClientProxy; import org.apache.cxf.message.Message; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.support.PropertySourcesPlaceholderConfigurer; -import org.springframework.core.convert.ConversionService; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringRunner; import java.util.List; import java.util.Map; -import static eu.europa.ec.edelivery.smp.testutil.LocalPropertiesTestUtil.buildLocalProperties; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; diff --git a/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/smlintegration/SmlConnectorTest.java b/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/sml/SmlConnectorTest.java similarity index 62% rename from smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/smlintegration/SmlConnectorTest.java rename to smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/sml/SmlConnectorTest.java index 8b3c55bef04ecbaca040ddebf28442c9da048bb6..04597ba821ba8ac859cb6def605b40c18680466a 100644 --- a/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/smlintegration/SmlConnectorTest.java +++ b/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/sml/SmlConnectorTest.java @@ -11,38 +11,34 @@ * See the Licence for the specific language governing permissions and limitations under the Licence. */ -package eu.europa.ec.edelivery.smp.smlintegration; +package eu.europa.ec.edelivery.smp.sml; import eu.europa.ec.bdmsl.ws.soap.*; import eu.europa.ec.edelivery.smp.config.ConversionTestConfig; import eu.europa.ec.edelivery.smp.config.PropertiesSingleDomainTestConfig; import eu.europa.ec.edelivery.smp.config.SmlIntegrationConfiguration; import eu.europa.ec.edelivery.smp.data.model.DBDomain; +import eu.europa.ec.edelivery.smp.exceptions.SMPRuntimeException; import eu.europa.ec.edelivery.smp.services.SecurityUtilsServices; import eu.europa.ec.edelivery.smp.services.ui.UIKeystoreService; -import eu.europa.ec.edelivery.smp.sml.SmlClientFactory; -import eu.europa.ec.edelivery.smp.sml.SmlConnector; -import org.junit.Before; +import eu.europa.ec.edelivery.smp.testutil.TestDBUtils; +import org.junit.Rule; import org.junit.Test; +import org.junit.rules.ExpectedException; import org.junit.runner.RunWith; import org.mockito.Mockito; import org.oasis_open.docs.bdxr.ns.smp._2016._05.ParticipantIdentifierType; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Scope; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.TestPropertySource; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; -import java.util.ArrayList; -import java.util.List; - import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.verify; -import static org.springframework.beans.factory.config.ConfigurableBeanFactory.SCOPE_PROTOTYPE; /** * Created by gutowpa on 08/01/2018. @@ -66,6 +62,14 @@ public class SmlConnectorTest { DEFAULT_DOMAIN.setSmlSmpId("SAMPLE-SMP-ID"); } + private static final String ERROR_UNEXPECTED_MESSAGE ="[ERR-106] Something unexpected happend"; + private static final String ERROR_SMP_NOT_EXISTS ="[ERR-100] The SMP '"+DEFAULT_DOMAIN.getSmlSmpId()+"' doesn't exist"; + private static final String ERROR_SMP_ALREADY_EXISTS ="[ERR-106] The SMP '"+DEFAULT_DOMAIN.getSmlSmpId()+"' already exists"; + private static final String ERROR_PI_ALREADY_EXISTS = "[ERR-106] The participant identifier 'sample:value' does already exist for the scheme sample:scheme"; + + @Rule + public ExpectedException expectedExeption = ExpectedException.none(); + @Autowired SmlIntegrationConfiguration mockSml; @@ -126,4 +130,88 @@ public class SmlConnectorTest { verify(mockSml.getParticipantManagmentClientMocks().get(1)).delete(any()); Mockito.verifyNoMoreInteractions(mockSml.getParticipantManagmentClientMocks().toArray()); } + + + @Test + public void testIsOkMessageForParticipantNull(){ + + boolean suc = smlConnector.isOkMessage(PARTICIPANT_ID, null); + + assertFalse(suc); + } + + @Test + public void testIsOkMessageForParticipantOk(){ + boolean suc = smlConnector.isOkMessage(PARTICIPANT_ID, ERROR_PI_ALREADY_EXISTS); + + assertTrue(suc); + } + + @Test + public void testIsOkMessageForParticipantFalse(){ + boolean suc = smlConnector.isOkMessage(PARTICIPANT_ID, ERROR_UNEXPECTED_MESSAGE); + + assertFalse(suc); + } + + @Test + public void testIsOkMessageForDomainNull(){ + boolean suc = smlConnector.isOkMessage(DEFAULT_DOMAIN, null); + + assertFalse(suc); + } + + @Test + public void testIsOkMessageForParticipantOkAdd(){ + boolean suc = smlConnector.isOkMessage(DEFAULT_DOMAIN, ERROR_SMP_ALREADY_EXISTS); + + assertTrue(suc); + } + @Test + public void testIsOkMessageForParticipantOkDelete(){ + boolean suc = smlConnector.isOkMessage(DEFAULT_DOMAIN, ERROR_SMP_NOT_EXISTS); + + assertTrue(suc); + } + + @Test + public void testIsOkMessageForDomainFalse(){ + + boolean suc = smlConnector.isOkMessage(DEFAULT_DOMAIN, ERROR_UNEXPECTED_MESSAGE); + + assertFalse(suc); + } + + @Test + public void testProcessSMLErrorMessageBadRequestFaultIgnore(){ + + BadRequestFault ex = new BadRequestFault(ERROR_PI_ALREADY_EXISTS); + boolean suc = smlConnector.processSMLErrorMessage(ex, PARTICIPANT_ID); + + assertTrue(suc); + } + + @Test + public void testProcessSMLErrorMessageBadRequestFaultFailed(){ + + expectedExeption.expectMessage(ERROR_UNEXPECTED_MESSAGE); + expectedExeption.expect(SMPRuntimeException .class); + BadRequestFault ex = new BadRequestFault(ERROR_UNEXPECTED_MESSAGE); + + smlConnector.processSMLErrorMessage(ex, PARTICIPANT_ID); + } + + + @Test + public void testProcessSMLErrorMessageNoFoundFaultFailed(){ + + expectedExeption.expectMessage(ERROR_UNEXPECTED_MESSAGE); + expectedExeption.expect(SMPRuntimeException .class); + NotFoundFault ex = new NotFoundFault(ERROR_UNEXPECTED_MESSAGE); + + smlConnector.processSMLErrorMessage(ex, PARTICIPANT_ID); + } + + + }