diff options
author | Tait,Trevor(rt0435) <rtait@amdocs.com> | 2018-10-03 15:08:34 -0400 |
---|---|---|
committer | Mohammadreza Pasandideh <mohammadreza.pasandideh@amdocs.com> | 2018-10-09 15:36:22 -0400 |
commit | a2423cf3ba54da34bb865befd44d56bbb925a94b (patch) | |
tree | 6d4ac22b24f3f33087edc3e7c077ef3d6ad96469 /src/test/java | |
parent | 2fb09922810847108464ba52e5b68907d5176e7a (diff) |
POMBA: SDNC Context Builder
Initial code for POMBA: SDNC Context Builder
Issue-ID: LOG-520
Change-Id: I6b06561b9050acc83b0c2b18b21c94f0f13f63e4
Signed-off-by: Tait,Trevor(rt0435) <rtait@amdocs.com>
Diffstat (limited to 'src/test/java')
3 files changed, 229 insertions, 0 deletions
diff --git a/src/test/java/org/onap/pomba/contextbuilder/sdnc/test/JerseyConfigurationTest.java b/src/test/java/org/onap/pomba/contextbuilder/sdnc/test/JerseyConfigurationTest.java new file mode 100644 index 0000000..df58cd1 --- /dev/null +++ b/src/test/java/org/onap/pomba/contextbuilder/sdnc/test/JerseyConfigurationTest.java @@ -0,0 +1,35 @@ +/* + * ============LICENSE_START=================================================== + * Copyright (c) 2018 Amdocs + * ============================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END===================================================== + */ + +package org.onap.pomba.contextbuilder.sdnc.test; + +import static org.junit.Assert.assertEquals; + +import javax.ws.rs.client.Client; +import org.junit.Test; +import org.onap.pomba.contextbuilder.sdnc.JerseyConfiguration; + +public class JerseyConfigurationTest { + @Test + public void testJerseyConfiguration() { + JerseyConfiguration jerseyConfiguration = new JerseyConfiguration(); + Client client = jerseyConfiguration.jerseyClient(); + String protocol = client.getSslContext().getProtocol(); + assertEquals("TLS", protocol); + } +} diff --git a/src/test/java/org/onap/pomba/contextbuilder/sdnc/test/WebConfigurationTest.java b/src/test/java/org/onap/pomba/contextbuilder/sdnc/test/WebConfigurationTest.java new file mode 100644 index 0000000..17f3f8c --- /dev/null +++ b/src/test/java/org/onap/pomba/contextbuilder/sdnc/test/WebConfigurationTest.java @@ -0,0 +1,39 @@ +/* + * ============LICENSE_START=================================================== + * Copyright (c) 2018 Amdocs + * ============================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END===================================================== + */ + +package org.onap.pomba.contextbuilder.sdnc.test; + +import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.mock; + +import org.junit.Test; +import org.onap.pomba.contextbuilder.sdnc.WebConfiguration; +import org.springframework.web.servlet.config.annotation.ViewResolverRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; + +public class WebConfigurationTest { + @Test + public void runTest() { + WebConfiguration webConfiguration = new WebConfiguration(); + WebMvcConfigurerAdapter webMvConfigurationAdapter = webConfiguration.forwardToIndex(); + ViewResolverRegistry registry = mock(ViewResolverRegistry.class); + webMvConfigurationAdapter.configureViewResolvers(registry); + assertEquals(false, registry.hasRegistrations()); + } + +} diff --git a/src/test/java/org/onap/pomba/contextbuilder/sdnc/unittest/service/SdncContextBuilderTest.java b/src/test/java/org/onap/pomba/contextbuilder/sdnc/unittest/service/SdncContextBuilderTest.java new file mode 100644 index 0000000..91ab1cf --- /dev/null +++ b/src/test/java/org/onap/pomba/contextbuilder/sdnc/unittest/service/SdncContextBuilderTest.java @@ -0,0 +1,155 @@ +/* + * ============LICENSE_START=================================================== + * Copyright (c) 2018 Amdocs + * ============================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END===================================================== + */ + +package org.onap.pomba.contextbuilder.sdnc.unittest.service; + +import static com.github.tomakehurst.wiremock.client.WireMock.get; +import static com.github.tomakehurst.wiremock.client.WireMock.okJson; +import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +import com.github.jknack.handlebars.internal.Files; +import com.github.tomakehurst.wiremock.junit.WireMockRule; +import java.io.File; +import java.util.Collections; +import javax.ws.rs.core.HttpHeaders; +import javax.ws.rs.core.MultivaluedMap; +import javax.ws.rs.core.MultivaluedHashMap; +import javax.ws.rs.core.Response; +import javax.ws.rs.core.Response.Status; +import org.junit.After; +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.onap.pomba.contextbuilder.sdnc.service.rs.RestService; +import org.onap.pomba.contextbuilder.sdnc.util.RestUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.EnableAutoConfiguration; +import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; +import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.TestPropertySource; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.web.WebAppConfiguration; + +@RunWith(SpringJUnit4ClassRunner.class) +@EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class}) +@WebAppConfiguration +@SpringBootTest +@TestPropertySource(properties = {"sdnc.host=localhost", "sdnc.port=30202"}) +public class SdncContextBuilderTest { + + private String serviceInstanceId = "c6456519-6acf-4adb-997c-3c363dd4caaf"; + private String testRestHeaders = "testRestHeaders"; + @Autowired + RestService service; + @Autowired + private String sdncCtxBuilderBasicAuthorization; + + @Rule + public WireMockRule sdncRule = new WireMockRule(wireMockConfig().port(30202)); + + @Before + public void setUp() throws Exception { + } + + @After + public void tearDown() throws Exception { + } + + @Test + public void testRestHeaders() throws Exception { + HttpHeaders mockHttpHeaders = mock( HttpHeaders.class); + + // Test with No Partner Name + final MultivaluedMap<String, String> multivaluedMapImpl = buildHeaders( + null, testRestHeaders, sdncCtxBuilderBasicAuthorization); + + when(mockHttpHeaders.getRequestHeaders()).thenReturn(multivaluedMapImpl); + Response response = service.getContext(mockHttpHeaders, serviceInstanceId); + assertTrue(response.getEntity().toString().contains("Missing header parameter: " + RestUtil.FROM_APP_ID)); + + // Test with no Authorization + final MultivaluedMap<String, String> multivaluedMapImpl1 = buildHeaders( + "test2", testRestHeaders, null); + + when(mockHttpHeaders.getRequestHeaders()).thenReturn(multivaluedMapImpl1); + response = service.getContext(mockHttpHeaders, serviceInstanceId); + assertTrue(response.getEntity().toString().contains("Missing header parameter: " + RestUtil.AUTHORIZATION)); + + // Test with garbage Authorization + final MultivaluedMap<String, String> multivaluedMapImpl2 = buildHeaders( + "test2", testRestHeaders, "garbage"); + + when(mockHttpHeaders.getRequestHeaders()).thenReturn(multivaluedMapImpl2); + response = service.getContext(mockHttpHeaders, serviceInstanceId); + assertTrue(response.getEntity().toString().contains("Failed Basic " + RestUtil.AUTHORIZATION)); + } + + @Test + public void testRestParameterServiceInstanceId() throws Exception { + HttpHeaders mockHttpHeaders = mock( HttpHeaders.class); + final MultivaluedMap<String, String> multivaluedMapImpl = buildHeaders( + "testRestParameterServiceInstanceId", "test1", sdncCtxBuilderBasicAuthorization); + + when(mockHttpHeaders.getRequestHeaders()).thenReturn(multivaluedMapImpl); + Response response = service.getContext(mockHttpHeaders, null); + assertTrue(response.getEntity().toString().contains("Invalid request URL, missing parameter: serviceInstanceId")); + } + + @Test + public void testVerifySdncContextBuilder() throws Exception { + + String urlStr = "/restconf/config/GENERIC-RESOURCE-API:services/service/" + serviceInstanceId; + File file = new File(ClassLoader.getSystemResource("sdncResponse.json").getFile()); + String sdResonse = Files.read(file); + this.sdncRule.stubFor(get(urlStr).willReturn(okJson(sdResonse))); + + HttpHeaders mockHttpHeaders = mock( HttpHeaders.class); + final MultivaluedMap<String, String> multivaluedMapImpl = buildHeaders( + "testVerifyServiceDecomposition", "test1", sdncCtxBuilderBasicAuthorization); + + when(mockHttpHeaders.getRequestHeaders()).thenReturn(multivaluedMapImpl); + Response response = this.service.getContext(mockHttpHeaders, serviceInstanceId); + assertEquals(Status.OK.getStatusCode(), response.getStatus()); + + // Try again with no transcactionId + final MultivaluedMap<String, String> multivaluedMapImpl1 = buildHeaders( + "testVerifyServiceDecomposition", null, sdncCtxBuilderBasicAuthorization); + + when(mockHttpHeaders.getRequestHeaders()).thenReturn(multivaluedMapImpl1); + response = this.service.getContext(mockHttpHeaders, serviceInstanceId); + assertEquals(Status.OK.getStatusCode(), response.getStatus()); + } + + private static MultivaluedMap<String, String> buildHeaders( + String partnerName, String transactionId, String authorization) { + + MultivaluedMap<String, String> headers = new MultivaluedHashMap<>(); + headers.put(RestUtil.FROM_APP_ID, Collections.singletonList(partnerName)); + headers.put(RestUtil.TRANSACTION_ID, Collections.singletonList(transactionId)); + if (null != authorization) { + headers.put(RestUtil.AUTHORIZATION, Collections.singletonList(authorization)); + } + return headers; + } +} |