From 493086e5454732e73411fbb27df4a37ea87964bf Mon Sep 17 00:00:00 2001 From: Joze RIHTARSIC <joze.rihtarsic@ext.ec.europa.eu> Date: Wed, 28 Nov 2018 12:16:55 +0100 Subject: [PATCH] - add new unit test for keystore --- .../services/ui/UIServiceGroupService.java | 3 + .../ec/edelivery/smp/ui/SearchResource.java | 3 - .../edelivery/smp/ui/SearchResourceTest.java | 88 ++++++++++++++++++ .../smp/ui/ServiceGroupResourceTest.java | 85 ++++++++++++++--- .../test/resources/input/extensionMarshal.xml | 1 + .../smp-keystore_multiple_domains.jks | Bin 7870 -> 19597 bytes .../webapp_integration_test_data.sql | 3 + 7 files changed, 165 insertions(+), 18 deletions(-) create mode 100644 smp-webapp/src/test/java/eu/europa/ec/edelivery/smp/ui/SearchResourceTest.java create mode 100644 smp-webapp/src/test/resources/input/extensionMarshal.xml diff --git a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/services/ui/UIServiceGroupService.java b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/services/ui/UIServiceGroupService.java index 112ee3bfd..cae380392 100644 --- a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/services/ui/UIServiceGroupService.java +++ b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/services/ui/UIServiceGroupService.java @@ -117,6 +117,9 @@ public class UIServiceGroupService extends UIServiceBase<DBServiceGroup, Service ServiceGroupValidationRO ex = new ServiceGroupValidationRO(); DBServiceGroup dbServiceGroup = getDatabaseDao().find(serviceGroupId); ex.setServiceGroupId(dbServiceGroup.getId()); + ex.setParticipantIdentifier(dbServiceGroup.getParticipantIdentifier()); + ex.setParticipantScheme(dbServiceGroup.getParticipantScheme()); + if (dbServiceGroup.getExtension() != null) { ex.setExtension(new String(dbServiceGroup.getExtension())); } diff --git a/smp-webapp/src/main/java/eu/europa/ec/edelivery/smp/ui/SearchResource.java b/smp-webapp/src/main/java/eu/europa/ec/edelivery/smp/ui/SearchResource.java index 5d3cc7db9..df6f2ae10 100644 --- a/smp-webapp/src/main/java/eu/europa/ec/edelivery/smp/ui/SearchResource.java +++ b/smp-webapp/src/main/java/eu/europa/ec/edelivery/smp/ui/SearchResource.java @@ -35,10 +35,7 @@ public class SearchResource { private UIServiceGroupSearchService uiServiceGroupService; @Autowired private DomainDao domainDao; - @PostConstruct - protected void init() { - } @PutMapping(produces = {"application/json"}) @ResponseBody diff --git a/smp-webapp/src/test/java/eu/europa/ec/edelivery/smp/ui/SearchResourceTest.java b/smp-webapp/src/test/java/eu/europa/ec/edelivery/smp/ui/SearchResourceTest.java new file mode 100644 index 000000000..d80da95a0 --- /dev/null +++ b/smp-webapp/src/test/java/eu/europa/ec/edelivery/smp/ui/SearchResourceTest.java @@ -0,0 +1,88 @@ +package eu.europa.ec.edelivery.smp.ui; + +import com.fasterxml.jackson.databind.ObjectMapper; +import eu.europa.ec.edelivery.smp.config.PropertiesTestConfig; +import eu.europa.ec.edelivery.smp.config.SmpAppConfig; +import eu.europa.ec.edelivery.smp.config.SmpWebAppConfig; +import eu.europa.ec.edelivery.smp.config.SpringSecurityConfig; +import eu.europa.ec.edelivery.smp.data.ui.ServiceGroupRO; +import eu.europa.ec.edelivery.smp.data.ui.ServiceResult; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.mock.web.MockServletContext; +import org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.jdbc.Sql; +import org.springframework.test.context.jdbc.SqlConfig; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.web.WebAppConfiguration; +import org.springframework.test.web.servlet.MockMvc; +import org.springframework.test.web.servlet.MvcResult; +import org.springframework.test.web.servlet.request.RequestPostProcessor; +import org.springframework.test.web.servlet.setup.MockMvcBuilders; +import org.springframework.web.context.ContextLoaderListener; +import org.springframework.web.context.WebApplicationContext; + +import javax.servlet.ServletContextEvent; +import javax.servlet.ServletContextListener; + +import static org.junit.Assert.*; +import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.httpBasic; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; + + +/** + * @author Joze Rihtarsic + * @since 4.1 + */ +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration(classes = { + PropertiesTestConfig.class, + SmpAppConfig.class, + SmpWebAppConfig.class, + SpringSecurityConfig.class}) +@WebAppConfiguration +@Sql("classpath:/cleanup-database.sql") +@Sql("classpath:/webapp_integration_test_data.sql") +@SqlConfig(encoding = "UTF-8") +public class SearchResourceTest { + + private static final String PATH="/ui/rest/search"; + + + @Autowired + private WebApplicationContext webAppContext; + + private MockMvc mvc; + @Before + public void setup() { + mvc = MockMvcBuilders.webAppContextSetup(webAppContext) + .apply(SecurityMockMvcConfigurers.springSecurity()) + .build(); + + initServletContext(); + } + + private void initServletContext() { + MockServletContext sc = new MockServletContext(""); + ServletContextListener listener = new ContextLoaderListener(webAppContext); + ServletContextEvent event = new ServletContextEvent(sc); + } + + @Test + public void testSearchByAnonymous() throws Exception { + // given when + MvcResult result = mvc.perform(get(PATH) + ).andExpect(status().isOk()).andReturn(); + + //then + ObjectMapper mapper = new ObjectMapper(); + ServiceResult res = mapper.readValue(result.getResponse().getContentAsString(), ServiceResult.class); + + assertNotNull(res); + assertEquals(2, res.getServiceEntities().size()); + } +} \ No newline at end of file diff --git a/smp-webapp/src/test/java/eu/europa/ec/edelivery/smp/ui/ServiceGroupResourceTest.java b/smp-webapp/src/test/java/eu/europa/ec/edelivery/smp/ui/ServiceGroupResourceTest.java index ac1a1185e..954657a40 100644 --- a/smp-webapp/src/test/java/eu/europa/ec/edelivery/smp/ui/ServiceGroupResourceTest.java +++ b/smp-webapp/src/test/java/eu/europa/ec/edelivery/smp/ui/ServiceGroupResourceTest.java @@ -5,8 +5,12 @@ import eu.europa.ec.edelivery.smp.config.PropertiesTestConfig; import eu.europa.ec.edelivery.smp.config.SmpAppConfig; import eu.europa.ec.edelivery.smp.config.SmpWebAppConfig; import eu.europa.ec.edelivery.smp.config.SpringSecurityConfig; +import eu.europa.ec.edelivery.smp.data.dao.ServiceGroupDao; +import eu.europa.ec.edelivery.smp.data.model.DBServiceGroup; import eu.europa.ec.edelivery.smp.data.ui.ServiceGroupRO; +import eu.europa.ec.edelivery.smp.data.ui.ServiceGroupValidationRO; import eu.europa.ec.edelivery.smp.data.ui.ServiceResult; +import org.apache.commons.io.IOUtils; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -25,14 +29,17 @@ import org.springframework.test.web.servlet.setup.MockMvcBuilders; import org.springframework.web.context.ContextLoaderListener; import org.springframework.web.context.WebApplicationContext; + import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; +import javax.xml.ws.spi.WebServiceFeatureAnnotation; + +import java.io.IOException; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotEquals; -import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.*; import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.httpBasic; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; /** @@ -51,10 +58,15 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers. @SqlConfig(encoding = "UTF-8") public class ServiceGroupResourceTest { - private static final String PATH="/ui/rest/servicegroup"; + @Autowired + ServiceGroupDao serviceGroupDao; + + private static final String PATH = "/ui/rest/servicegroup"; + + private static final String PARTICIPANT_IDENTIFIER = "urn:australia:ncpb"; + private static final String PARTICIPANT_SCHEME = "ehealth-actorid-qns"; - private static final String PARTICIPANT_IDENTIFIER= "urn:australia:ncpb"; - private static final String PARTICIPANT_SCHEME= "ehealth-actorid-qns"; + private String validExtension = null; @Autowired private WebApplicationContext webAppContext; @@ -62,13 +74,15 @@ public class ServiceGroupResourceTest { private MockMvc mvc; private static final RequestPostProcessor SMP_ADMIN_CREDENTIALS = httpBasic("smp_admin", "test123"); private static final RequestPostProcessor SG_ADMIN_CREDENTIALS = httpBasic("sg_admin", "test123"); + @Before - public void setup() { + public void setup() throws IOException { mvc = MockMvcBuilders.webAppContextSetup(webAppContext) .apply(SecurityMockMvcConfigurers.springSecurity()) .build(); initServletContext(); + validExtension = new String(IOUtils.toByteArray(ServiceGroupResourceTest.class.getResourceAsStream("/input/extensionMarshal.xml"))); } private void initServletContext() { @@ -91,14 +105,13 @@ public class ServiceGroupResourceTest { assertNotNull(res); assertEquals(2, res.getServiceEntities().size()); - res.getServiceEntities().forEach(sgMap-> { - ServiceGroupRO sgro = mapper.convertValue(sgMap, ServiceGroupRO.class); + res.getServiceEntities().forEach(sgMap -> { + ServiceGroupRO sgro = mapper.convertValue(sgMap, ServiceGroupRO.class); assertNotNull(sgro.getId()); assertNotNull(sgro.getParticipantScheme()); assertNotNull(sgro.getParticipantIdentifier()); assertEquals(1, sgro.getUsers().size()); assertNotEquals("smp_admin", sgro.getUsers().get(0).getUsername()); - }); } @@ -113,11 +126,10 @@ public class ServiceGroupResourceTest { ObjectMapper mapper = new ObjectMapper(); ServiceResult res = mapper.readValue(result.getResponse().getContentAsString(), ServiceResult.class); - assertNotNull(res); assertEquals(1, res.getServiceEntities().size()); - res.getServiceEntities().forEach(sgMap-> { - ServiceGroupRO sgro = mapper.convertValue(sgMap, ServiceGroupRO.class); + res.getServiceEntities().forEach(sgMap -> { + ServiceGroupRO sgro = mapper.convertValue(sgMap, ServiceGroupRO.class); assertNotNull(sgro.getId()); assertNotNull(sgro.getParticipantScheme()); assertNotNull(sgro.getParticipantIdentifier()); @@ -127,10 +139,10 @@ public class ServiceGroupResourceTest { } @Test - public void getServiceGroupById() throws Exception{ + public void getServiceGroupById() throws Exception { // given when - MvcResult result = mvc.perform(get(PATH+"/100000") + MvcResult result = mvc.perform(get(PATH + "/100000") .with(SMP_ADMIN_CREDENTIALS)). andExpect(status().isOk()).andReturn(); @@ -151,5 +163,48 @@ public class ServiceGroupResourceTest { assertEquals(res.getServiceGroupDomains().get(0).getId(), res.getServiceMetadata().get(0).getServiceGroupDomainId()); } + @Test + public void getExtensionServiceGroupById() throws Exception { + + DBServiceGroup sg = serviceGroupDao.findServiceGroup(PARTICIPANT_IDENTIFIER, PARTICIPANT_SCHEME).get(); + sg.setExtension(validExtension.getBytes()); + serviceGroupDao.update(sg); + + // given when + MvcResult result = mvc.perform(get(PATH + "/extension/100000") + .with(SMP_ADMIN_CREDENTIALS)). + andExpect(status().isOk()).andReturn(); + + //them + ObjectMapper mapper = new ObjectMapper(); + ServiceGroupValidationRO res = mapper.readValue(result.getResponse().getContentAsString(), ServiceGroupValidationRO.class); + + assertNotNull(res); + assertEquals(100000, res.getServiceGroupId().longValue()); + assertEquals(PARTICIPANT_IDENTIFIER, res.getParticipantIdentifier()); + assertEquals(PARTICIPANT_SCHEME, res.getParticipantScheme()); + assertEquals(new String(sg.getExtension()), res.getExtension()); + } + + @Test + public void testValidateInvald() throws Exception { + ObjectMapper mapper = new ObjectMapper(); + ServiceGroupValidationRO validate = new ServiceGroupValidationRO(); + validate.setExtension(validExtension + "<ADFA>sdfadsf"); + + // given when + MvcResult result = mvc.perform(post(PATH + "/extension/validate") + .with(SMP_ADMIN_CREDENTIALS) + .header("Content-Type","application/json") + .content(mapper.writeValueAsString(validate))) + .andExpect(status().isOk()).andReturn(); + + //then + ServiceGroupValidationRO res = mapper.readValue(result.getResponse().getContentAsString(), ServiceGroupValidationRO.class); + + assertNotNull(res); + assertNotNull(res.getErrorMessage()); + } + } \ No newline at end of file diff --git a/smp-webapp/src/test/resources/input/extensionMarshal.xml b/smp-webapp/src/test/resources/input/extensionMarshal.xml new file mode 100644 index 000000000..7c20d3eb5 --- /dev/null +++ b/smp-webapp/src/test/resources/input/extensionMarshal.xml @@ -0,0 +1 @@ +<Extension xmlns:ns2="http://www.w3.org/2000/09/xmldsig#" xmlns="http://docs.oasis-open.org/bdxr/ns/SMP/2016/05"><ExtensionID>id1</ExtensionID><ExtensionName>name1</ExtensionName><ExtensionAgencyName>agencyName1</ExtensionAgencyName><ExtensionAgencyURI>agencyUri1</ExtensionAgencyURI><ExtensionVersionID>versionId1</ExtensionVersionID><ExtensionReasonCode>reasonCode1</ExtensionReasonCode><ExtensionReason>reason1</ExtensionReason></Extension> diff --git a/smp-webapp/src/test/resources/keystores/smp-keystore_multiple_domains.jks b/smp-webapp/src/test/resources/keystores/smp-keystore_multiple_domains.jks index 716ca6ad4f15ec132c0bc17648b0eafb2cd2ee9f..f39554fdca1882a93ebbd7f68132d97e1e412cdf 100644 GIT binary patch delta 6249 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 PEq>GQmVIC1a%(yO0>9Km delta 59 zcmeC3$+*v!=il3ZZy6XEm>3us*fy_KHeuZy#_!6%`Jsk7>*n=x|5!vW9f`|bs`356 R^4BMSahJ#yUlLS}1pu)y7-9eb diff --git a/smp-webapp/src/test/resources/webapp_integration_test_data.sql b/smp-webapp/src/test/resources/webapp_integration_test_data.sql index 41c220792..3dcd14469 100644 --- a/smp-webapp/src/test/resources/webapp_integration_test_data.sql +++ b/smp-webapp/src/test/resources/webapp_integration_test_data.sql @@ -30,6 +30,9 @@ insert into SMP_CERTIFICATE (ID, CERTIFICATE_ID, VALID_FROM, VALID_TO, CREATED_O -- set the ids to higher values - tests are using sequnce which stars from 1 insert into SMP_SERVICE_GROUP(ID, PARTICIPANT_IDENTIFIER, PARTICIPANT_SCHEME, CREATED_ON, LAST_UPDATED_ON) values (100000, 'urn:australia:ncpb', 'ehealth-actorid-qns', CURRENT_TIMESTAMP(),CURRENT_TIMESTAMP()); insert into SMP_SERVICE_GROUP(ID, PARTICIPANT_IDENTIFIER, PARTICIPANT_SCHEME, CREATED_ON, LAST_UPDATED_ON) values (200000, 'urn:brazil:ncpb', 'ehealth-actorid-qns', CURRENT_TIMESTAMP(),CURRENT_TIMESTAMP()); +--insert into SMP_SG_EXTENSION(ID, EXTENSION,CREATED_ON, LAST_UPDATED_ON) values (100000, '<Extension xmlns:ns2="http://www.w3.org/2000/09/xmldsig#" xmlns="http://docs.oasis-open.org/bdxr/ns/SMP/2016/05"><ExtensionID>id1</ExtensionID><ExtensionName>name1</ExtensionName><ExtensionAgencyName>agencyName1</ExtensionAgencyName><ExtensionAgencyURI>agencyUri1</ExtensionAgencyURI><ExtensionVersionID>versionId1</ExtensionVersionID><ExtensionReasonCode>reasonCode1</ExtensionReasonCode><ExtensionReason>reason1</ExtensionReason></Extension>', CURRENT_TIMESTAMP(),CURRENT_TIMESTAMP()); + + -- set ownership insert into SMP_OWNERSHIP (FK_SG_ID, FK_USER_ID) values (100000, 4); -- GitLab