diff options
Diffstat (limited to 'sdc-distribution-client/src/test')
11 files changed, 102 insertions, 983 deletions
diff --git a/sdc-distribution-client/src/test/java/org/onap/sdc/api/asdc/RegistrationRequestTest.java b/sdc-distribution-client/src/test/java/org/onap/sdc/api/asdc/RegistrationRequestTest.java deleted file mode 100644 index 50ff94c..0000000 --- a/sdc-distribution-client/src/test/java/org/onap/sdc/api/asdc/RegistrationRequestTest.java +++ /dev/null @@ -1,45 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2019 Nokia. All rights reserved. - * ================================================================================ - * 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.sdc.api.asdc; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -import java.util.Collections; -import java.util.List; -import org.junit.Test; - -public class RegistrationRequestTest { - - private static final List<String> DIST_ENV_END_POINTS = Collections.emptyList(); - private static final boolean IS_CONSUMER_TO_SDC_DISTR_STATUS_TOPIC = true; - private static final String ENV_NAME = "ENV_NAME"; - private static final String API_KEY = "API_KEY"; - - @Test - public void testConstructorShouldSetProperties() { - RegistrationRequest registrationRequest = - new RegistrationRequest(API_KEY, ENV_NAME, IS_CONSUMER_TO_SDC_DISTR_STATUS_TOPIC, DIST_ENV_END_POINTS); - assertEquals(registrationRequest.getApiPublicKey(), API_KEY); - assertEquals(registrationRequest.getDistEnvEndPoints(), DIST_ENV_END_POINTS); - assertEquals(registrationRequest.getDistrEnvName(), ENV_NAME); - assertTrue(registrationRequest.getIsConsumerToSdcDistrStatusTopic()); - } -}
\ No newline at end of file diff --git a/sdc-distribution-client/src/test/java/org/onap/sdc/api/asdc/ServerListResponseTest.java b/sdc-distribution-client/src/test/java/org/onap/sdc/api/asdc/ServerListResponseTest.java deleted file mode 100644 index 449eca8..0000000 --- a/sdc-distribution-client/src/test/java/org/onap/sdc/api/asdc/ServerListResponseTest.java +++ /dev/null @@ -1,32 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2019 Nokia. All rights reserved. - * ================================================================================ - * 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.sdc.api.asdc; - -import static com.google.code.beanmatchers.BeanMatchers.hasValidGettersAndSetters; -import static org.junit.Assert.assertThat; - -import org.junit.Test; - -public class ServerListResponseTest { - @Test - public void shouldHaveValidGettersAndSetters() { - assertThat(ServerListResponse.class, hasValidGettersAndSetters()); - } -}
\ No newline at end of file diff --git a/sdc-distribution-client/src/test/java/org/onap/sdc/http/SdcConnectorClientTest.java b/sdc-distribution-client/src/test/java/org/onap/sdc/http/SdcConnectorClientTest.java index 20228e0..ac156b1 100644 --- a/sdc-distribution-client/src/test/java/org/onap/sdc/http/SdcConnectorClientTest.java +++ b/sdc-distribution-client/src/test/java/org/onap/sdc/http/SdcConnectorClientTest.java @@ -3,14 +3,13 @@ * SDC * ================================================================================ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. - * Modifications copyright (C) 2019 Nokia. All rights reserved. * ================================================================================ * 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. @@ -21,27 +20,17 @@ package org.onap.sdc.http; -import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; -import static org.mockito.Matchers.any; import static org.mockito.Mockito.doAnswer; import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.doThrow; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -import com.google.common.hash.Hashing; -import java.io.ByteArrayInputStream; import java.io.IOException; -import java.io.InputStream; import java.nio.charset.StandardCharsets; -import java.util.Arrays; import java.util.HashMap; -import java.util.List; import java.util.Map; import org.apache.commons.io.IOUtils; @@ -51,16 +40,12 @@ import org.apache.http.client.methods.CloseableHttpResponse; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; -import org.mockito.Matchers; import org.mockito.Mockito; import org.mockito.invocation.InvocationOnMock; import org.mockito.stubbing.Answer; -import org.onap.sdc.api.notification.IArtifactInfo; -import org.onap.sdc.api.results.IDistributionClientResult; import org.onap.sdc.impl.DistributionClientResultImpl; import org.onap.sdc.api.asdc.RegistrationRequest; import org.onap.sdc.api.consumer.IConfiguration; -import org.onap.sdc.utils.DistributionActionResultEnum; import org.onap.sdc.utils.Pair; import com.att.nsa.apiClient.credentials.ApiCredential; @@ -70,341 +55,85 @@ import com.google.gson.GsonBuilder; import fj.data.Either; public class SdcConnectorClientTest { - - private static Gson gson = new GsonBuilder().create(); - private static final String MOCK_ENV = "MockEnv"; - private static final String MOCK_API_KEY = "MockApikey"; - private static HttpAsdcClient httpClient = mock(HttpAsdcClient.class); - private static IConfiguration configuration = mock(IConfiguration.class); - private static ApiCredential apiCredential = mock(ApiCredential.class); - private static HttpAsdcResponse httpAsdcResponse = mock(HttpAsdcResponse.class); - @SuppressWarnings("unchecked") - private static Either<TopicRegistrationResponse, DistributionClientResultImpl> mockResponse = - Mockito.mock(Either.class); - private static Map<String, String> mockHeaders = new HashMap<>(); - Pair<HttpAsdcResponse, CloseableHttpResponse> mockPair = new Pair<>(httpAsdcResponse, null); - private HttpEntity lastHttpEntity = null; - - private static SdcConnectorClient asdcClient = Mockito.spy(new SdcConnectorClient()); - - private static final String ARTIFACT_URL = "http://127.0.0.1/artifact/url"; - private static final String IT_JUST_DIDN_T_WORK = "It just didn't work"; - private static final List<String> ARTIFACT_TYPES = Arrays.asList("Service", "Resource", "VF", "VFC"); - private static final String VALID_JSON_PAYLOAD = gson.toJson(ARTIFACT_TYPES); - private static final int PORT = 49512; - private static final byte[] BYTES = new byte[] {0xA, 0xB, 0xC, 0xD}; - - - @BeforeClass - public static void beforeClass() { - asdcClient.setConfiguration(configuration); - asdcClient.setHttpClient(httpClient); - when(apiCredential.getApiKey()).thenReturn(MOCK_API_KEY); - when(httpAsdcResponse.getStatus()).thenReturn(HttpStatus.SC_OK); - - doReturn(mockHeaders).when(asdcClient).addHeadersToHttpRequest(Mockito.anyString()); - doReturn(mockResponse).when(asdcClient).parseRegistrationResponse(httpAsdcResponse); - } - - @Before - public void beforeMethod() { - Mockito.reset(configuration, httpClient); - lastHttpEntity = null; - when(configuration.getEnvironmentName()).thenReturn(MOCK_ENV); - - - doAnswer(new Answer<Pair<HttpAsdcResponse, CloseableHttpResponse>>() { - @Override - public Pair<HttpAsdcResponse, CloseableHttpResponse> answer(InvocationOnMock invocation) throws Throwable { - lastHttpEntity = invocation.getArgumentAt(1, HttpEntity.class); - return mockPair; - } - }).when(httpClient).postRequest(Mockito.eq(AsdcUrls.POST_FOR_TOPIC_REGISTRATION), Mockito.any(HttpEntity.class), - Mockito.eq(mockHeaders), Mockito.eq(false)); - } - - @Test(expected = IllegalStateException.class) - public void initAndCloseTest() { - IConfiguration conf = Mockito.mock(IConfiguration.class); - when(conf.getUser()).thenReturn("user"); - when(conf.getPassword()).thenReturn("password"); - - when(conf.activateServerTLSAuth()).thenReturn(false); - SdcConnectorClient client = new SdcConnectorClient(); - client.init(conf); - assertNotNull(client.getHttpClient()); - client.close(); - - //check if client is really closed - client.getHttpClient().getRequest(AsdcUrls.POST_FOR_TOPIC_REGISTRATION, new HashMap<>()); - } - - - @Test - public void getConfigurationTest() { - IConfiguration conf = asdcClient.getConfiguration(); - assertEquals(configuration, conf); - } - - @Test - public void getHttpClientTest() { - HttpAsdcClient httpAsdcClient = asdcClient.getHttpClient(); - assertEquals(httpClient, httpAsdcClient); - } - - @Test - public void testConsumeProduceStatusTopicFalse() throws UnsupportedOperationException, IOException { - - testConsumeProduceStatusTopic(false); - - } - - @Test - public void testConsumeProduceStatusTopicTrue() throws UnsupportedOperationException, IOException { - - testConsumeProduceStatusTopic(true); - - } - - private void testConsumeProduceStatusTopic(final boolean isConsumeProduceStatusFlag) throws IOException { - when(configuration.isConsumeProduceStatusTopic()).thenReturn(isConsumeProduceStatusFlag); - asdcClient.registerAsdcTopics(apiCredential); - verify(httpClient, times(1)) - .postRequest(Mockito.eq(AsdcUrls.POST_FOR_TOPIC_REGISTRATION), any(HttpEntity.class), - Mockito.eq(mockHeaders), Mockito.eq(false)); - assertNotNull(lastHttpEntity); - RegistrationRequest actualRegRequest = - gson.fromJson(IOUtils.toString(lastHttpEntity.getContent(), StandardCharsets.UTF_8), - RegistrationRequest.class); - RegistrationRequest expectedRegRequest = - gson.fromJson(excpectedStringBody(isConsumeProduceStatusFlag), RegistrationRequest.class); - - assertTrue(actualRegRequest.getApiPublicKey().equals(expectedRegRequest.getApiPublicKey())); - assertTrue(actualRegRequest.getDistrEnvName().equals(expectedRegRequest.getDistrEnvName())); - assertTrue(actualRegRequest.getIsConsumerToSdcDistrStatusTopic() - .equals(expectedRegRequest.getIsConsumerToSdcDistrStatusTopic())); - } - - @Test - public void getValidArtifactTypesListHappyScenarioTest() throws IOException { - HttpAsdcResponse responseMock = mock(HttpAsdcResponse.class); - CloseableHttpResponse closeableHttpResponseMock = mock(CloseableHttpResponse.class); - HttpEntity messageMock = mock(HttpEntity.class); - Pair<HttpAsdcResponse, CloseableHttpResponse> responsePair = - new Pair<>(responseMock, closeableHttpResponseMock); - - when(responseMock.getStatus()).thenReturn(HttpStatus.SC_OK); - when(responseMock.getMessage()).thenReturn(messageMock); - when(messageMock.getContent()).thenReturn(new ByteArrayInputStream(VALID_JSON_PAYLOAD.getBytes())); - when(httpClient.getRequest(eq(AsdcUrls.GET_VALID_ARTIFACT_TYPES), Matchers.any(), eq(false))) - .thenReturn(responsePair); - - Either<List<String>, IDistributionClientResult> result = asdcClient.getValidArtifactTypesList(); - assertTrue(result.isLeft()); - List<String> list = result.left().value(); - assertEquals(ARTIFACT_TYPES, list); - } - - @Test - public void getValidArtifactTypesListErrorResponseScenarioTest() throws IOException { - HttpAsdcResponse responseMock = mock(HttpAsdcResponse.class); - HttpEntity messageMock = mock(HttpEntity.class); - Pair<HttpAsdcResponse, CloseableHttpResponse> responsePair = new Pair<>(responseMock, null); - - when(responseMock.getStatus()).thenReturn(HttpStatus.SC_GATEWAY_TIMEOUT); - when(responseMock.getMessage()).thenReturn(messageMock); - when(messageMock.getContent()).thenReturn(new ByteArrayInputStream(IT_JUST_DIDN_T_WORK.getBytes())); - when(httpClient.getRequest(eq(AsdcUrls.GET_VALID_ARTIFACT_TYPES), Matchers.any(), eq(false))) - .thenReturn(responsePair); - - Either<List<String>, IDistributionClientResult> result = asdcClient.getValidArtifactTypesList(); - assertTrue(result.isRight()); - IDistributionClientResult distributionClientResult = result.right().value(); - assertEquals(DistributionActionResultEnum.ASDC_SERVER_TIMEOUT, - distributionClientResult.getDistributionActionResult()); - } - - - @Test - public void getValidArtifactTypesListExceptionDuringConnectionClosingTest() throws IOException { - HttpAsdcResponse responseMock = mock(HttpAsdcResponse.class); - CloseableHttpResponse closeableHttpResponseMock = mock(CloseableHttpResponse.class); - HttpEntity messageMock = mock(HttpEntity.class); - Pair<HttpAsdcResponse, CloseableHttpResponse> responsePair = - new Pair<>(responseMock, closeableHttpResponseMock); - - when(responseMock.getStatus()).thenReturn(HttpStatus.SC_GATEWAY_TIMEOUT); - when(responseMock.getMessage()).thenReturn(messageMock); - when(messageMock.getContent()).thenReturn(new ByteArrayInputStream(VALID_JSON_PAYLOAD.getBytes())); - when(httpClient.getRequest(eq(AsdcUrls.GET_VALID_ARTIFACT_TYPES), Matchers.any(), eq(false))) - .thenReturn(responsePair); - - doThrow(new IOException("Test exception")).when(closeableHttpResponseMock).close(); - - Either<List<String>, IDistributionClientResult> result = asdcClient.getValidArtifactTypesList(); - assertTrue(result.isRight()); - IDistributionClientResult distributionClientResult = result.right().value(); - assertEquals(DistributionActionResultEnum.ASDC_SERVER_TIMEOUT, - distributionClientResult.getDistributionActionResult()); - } - - @Test - public void getValidArtifactTypesListParsingExceptionHandlingTest() throws IOException { - HttpAsdcResponse responseMock = mock(HttpAsdcResponse.class); - CloseableHttpResponse closeableHttpResponseMock = mock(CloseableHttpResponse.class); - HttpEntity messageMock = mock(HttpEntity.class); - Pair<HttpAsdcResponse, CloseableHttpResponse> responsePair = - new Pair<>(responseMock, closeableHttpResponseMock); - - when(responseMock.getStatus()).thenReturn(HttpStatus.SC_OK); - when(responseMock.getMessage()).thenReturn(messageMock); - when(messageMock.getContent()).thenReturn(new ThrowingInputStreamForTesting()); - when(httpClient.getRequest(eq(AsdcUrls.GET_VALID_ARTIFACT_TYPES), Matchers.any(), eq(false))) - .thenReturn(responsePair); - - Either<List<String>, IDistributionClientResult> result = asdcClient.getValidArtifactTypesList(); - assertTrue(result.isRight()); - IDistributionClientResult distributionClientResult = result.right().value(); - assertEquals(DistributionActionResultEnum.GENERAL_ERROR, - distributionClientResult.getDistributionActionResult()); - } - - @Test - public void unregisterTopicsErrorDuringProcessingTest() throws IOException { - when(configuration.getAsdcAddress()).thenReturn("127.0.0.1" + PORT); - when(configuration.isConsumeProduceStatusTopic()).thenReturn(false); - when(configuration.getMsgBusAddress()) - .thenReturn(Arrays.asList("http://127.0.0.1:45321/dmaap", "http://127.0.0.1:45321/dmaap")); - - doReturn(httpClient).when(asdcClient).createNewHttpClient(); - - String failMessage = "It just didn't work"; - HttpAsdcResponse responseMock = mock(HttpAsdcResponse.class); - HttpEntity messageMock = mock(HttpEntity.class); - Pair<HttpAsdcResponse, CloseableHttpResponse> responsePair = new Pair<>(responseMock, null); - - when(responseMock.getStatus()).thenReturn(HttpStatus.SC_BAD_GATEWAY); - when(responseMock.getMessage()).thenReturn(messageMock); - when(messageMock.getContent()).thenReturn(new ByteArrayInputStream(failMessage.getBytes())); - doReturn(responsePair).when(httpClient) - .postRequest(eq(AsdcUrls.POST_FOR_UNREGISTER), any(HttpEntity.class), any(), eq(false)); - - IDistributionClientResult result = asdcClient.unregisterTopics(apiCredential); - assertEquals(DistributionActionResultEnum.ASDC_CONNECTION_FAILED, result.getDistributionActionResult()); - } - - @Test - public void unregisterTopicsHappyScenarioTest() throws IOException { - when(configuration.getAsdcAddress()).thenReturn("127.0.0.1" + PORT); - when(configuration.isConsumeProduceStatusTopic()).thenReturn(false); - - doReturn(httpClient).when(asdcClient).createNewHttpClient(); - - String failMessage = ""; - HttpAsdcResponse responseMock = mock(HttpAsdcResponse.class); - HttpEntity messageMock = mock(HttpEntity.class); - Pair<HttpAsdcResponse, CloseableHttpResponse> responsePair = new Pair<>(responseMock, null); - - when(responseMock.getStatus()).thenReturn(HttpStatus.SC_NO_CONTENT); - when(responseMock.getMessage()).thenReturn(messageMock); - when(messageMock.getContent()).thenReturn(new ByteArrayInputStream(failMessage.getBytes())); - doReturn(responsePair).when(httpClient) - .postRequest(eq(AsdcUrls.POST_FOR_UNREGISTER), any(HttpEntity.class), any(), eq(false)); - - IDistributionClientResult result = asdcClient.unregisterTopics(apiCredential); - assertEquals(DistributionActionResultEnum.SUCCESS, result.getDistributionActionResult()); - } - - @Test - public void downloadArtifactHappyScenarioTest() throws IOException { - Map<String, String> headers = new HashMap<>(); - headers.put(asdcClient.contentDispositionHeader, "SomeHeader"); - - IArtifactInfo artifactInfo = mock(IArtifactInfo.class); - when(artifactInfo.getArtifactURL()).thenReturn(ARTIFACT_URL); - when(artifactInfo.getArtifactChecksum()).thenReturn(Hashing.md5().hashBytes(BYTES).toString()); - - HttpAsdcResponse responseMock = mock(HttpAsdcResponse.class); - HttpEntity messageMock = mock(HttpEntity.class); - Pair<HttpAsdcResponse, CloseableHttpResponse> responsePair = new Pair<>(responseMock, null); - - when(responseMock.getStatus()).thenReturn(HttpStatus.SC_OK); - when(responseMock.getMessage()).thenReturn(messageMock); - when(responseMock.getHeadersMap()).thenReturn(headers); - when(messageMock.getContent()).thenReturn(new ByteArrayInputStream(BYTES)); - doReturn(responsePair).when(httpClient).getRequest(eq(ARTIFACT_URL), any(), eq(false)); - - IDistributionClientResult result = asdcClient.dowloadArtifact(artifactInfo); - assertEquals(DistributionActionResultEnum.SUCCESS, result.getDistributionActionResult()); - } - - @Test - public void downloadArtifactDataIntegrityProblemTest() throws IOException { - IArtifactInfo artifactInfo = mock(IArtifactInfo.class); - when(artifactInfo.getArtifactURL()).thenReturn(ARTIFACT_URL); - - HttpAsdcResponse responseMock = mock(HttpAsdcResponse.class); - HttpEntity messageMock = mock(HttpEntity.class); - Pair<HttpAsdcResponse, CloseableHttpResponse> responsePair = new Pair<>(responseMock, null); - - when(responseMock.getStatus()).thenReturn(HttpStatus.SC_OK); - when(responseMock.getMessage()).thenReturn(messageMock); - when(messageMock.getContent()).thenReturn(new ByteArrayInputStream(BYTES)); - doReturn(responsePair).when(httpClient).getRequest(eq(ARTIFACT_URL), any(), eq(false)); - - IDistributionClientResult result = asdcClient.dowloadArtifact(artifactInfo); - assertEquals(DistributionActionResultEnum.DATA_INTEGRITY_PROBLEM, result.getDistributionActionResult()); - } - - @Test - public void downloadArtifactExceptionDuringDownloadHandlingTest() throws IOException { - IArtifactInfo artifactInfo = mock(IArtifactInfo.class); - when(artifactInfo.getArtifactURL()).thenReturn(ARTIFACT_URL); - - HttpAsdcResponse responseMock = mock(HttpAsdcResponse.class); - HttpEntity messageMock = mock(HttpEntity.class); - Pair<HttpAsdcResponse, CloseableHttpResponse> responsePair = new Pair<>(responseMock, null); - - when(responseMock.getStatus()).thenReturn(HttpStatus.SC_OK); - when(responseMock.getMessage()).thenReturn(messageMock); - when(messageMock.getContent()).thenReturn(new ThrowingInputStreamForTesting()); - doReturn(responsePair).when(httpClient).getRequest(eq(ARTIFACT_URL), any(), eq(false)); - - IDistributionClientResult result = asdcClient.dowloadArtifact(artifactInfo); - assertEquals(DistributionActionResultEnum.GENERAL_ERROR, result.getDistributionActionResult()); - } - - @Test - public void downloadArtifactHandleDownloadErrorTest() throws IOException { - IArtifactInfo artifactInfo = mock(IArtifactInfo.class); - when(artifactInfo.getArtifactURL()).thenReturn(ARTIFACT_URL); - - HttpAsdcResponse responseMock = mock(HttpAsdcResponse.class); - HttpEntity messageMock = mock(HttpEntity.class); - Pair<HttpAsdcResponse, CloseableHttpResponse> responsePair = new Pair<>(responseMock, null); - - when(responseMock.getStatus()).thenReturn(HttpStatus.SC_INTERNAL_SERVER_ERROR); - when(responseMock.getMessage()).thenReturn(messageMock); - when(messageMock.getContent()).thenReturn(new ThrowingInputStreamForTesting()); - doReturn(responsePair).when(httpClient).getRequest(eq(ARTIFACT_URL), any(), eq(false)); - - IDistributionClientResult result = asdcClient.dowloadArtifact(artifactInfo); - assertEquals(DistributionActionResultEnum.ASDC_SERVER_PROBLEM, result.getDistributionActionResult()); - } - - private String excpectedStringBody(boolean isConsumeProduceStatusTopic) { - String stringBodyTemplate = - "{\r\n" + " \"apiPublicKey\": \"MockApikey\",\r\n" + " \"distrEnvName\": \"MockEnv\",\r\n" - + " \"isConsumerToSdcDistrStatusTopic\": %s\r\n" + "}"; - return String.format(stringBodyTemplate, isConsumeProduceStatusTopic); - - } - - static class ThrowingInputStreamForTesting extends InputStream { - - @Override - public int read() throws IOException { - throw new IOException("Not implemented. This is expected as the implementation is for unit tests only."); - } - } + private Gson gson = new GsonBuilder().create(); + private static final String MOCK_ENV = "MockEnv"; + private static final String MOCK_API_KEY = "MockApikey"; + private static HttpAsdcClient httpClient = Mockito.mock(HttpAsdcClient.class); + private static IConfiguration configuration = Mockito.mock(IConfiguration.class); + private static ApiCredential apiCredential = Mockito.mock(ApiCredential.class); + private static HttpAsdcResponse httpAsdcResponse = Mockito.mock(HttpAsdcResponse.class); + @SuppressWarnings("unchecked") + private static Either<TopicRegistrationResponse, DistributionClientResultImpl> mockResponse = Mockito + .mock(Either.class); + private static Map<String, String> mockHeaders = new HashMap<>(); + Pair<HttpAsdcResponse, CloseableHttpResponse> mockPair = new Pair<>(httpAsdcResponse, null); + private HttpEntity lastHttpEntity = null; + + private static SdcConnectorClient asdcClient = Mockito.spy(new SdcConnectorClient()); + + @BeforeClass + public static void beforeClass() { + asdcClient.setConfiguration(configuration); + asdcClient.setHttpClient(httpClient); + when(apiCredential.getApiKey()).thenReturn(MOCK_API_KEY); + when(httpAsdcResponse.getStatus()).thenReturn(HttpStatus.SC_OK); + + doReturn(mockHeaders).when(asdcClient).addHeadersToHttpRequest(Mockito.anyString()); + doReturn(mockResponse).when(asdcClient).parseRegistrationResponse(httpAsdcResponse); + } + + @Before + public void beforeMethod() { + Mockito.reset(configuration, httpClient); + lastHttpEntity = null; + when(configuration.getEnvironmentName()).thenReturn(MOCK_ENV); + + + doAnswer(new Answer<Pair<HttpAsdcResponse, CloseableHttpResponse>>() { + @Override + public Pair<HttpAsdcResponse, CloseableHttpResponse> answer(InvocationOnMock invocation) throws Throwable { + lastHttpEntity = invocation.getArgumentAt(1, HttpEntity.class); + return mockPair; + } + }).when(httpClient).postRequest(Mockito.eq(AsdcUrls.POST_FOR_TOPIC_REGISTRATION), Mockito.any(HttpEntity.class), + Mockito.eq(mockHeaders), Mockito.eq(false)); + } + + @Test + public void testConsumeProduceStatusTopicFalse() throws UnsupportedOperationException, IOException { + + testConsumeProduceStatusTopic(false); + + } + + @Test + public void testConsumeProduceStatusTopicTrue() throws UnsupportedOperationException, IOException { + + testConsumeProduceStatusTopic(true); + + } + + private void testConsumeProduceStatusTopic(final boolean isConsumeProduceStatusFlag) throws IOException { + when(configuration.isConsumeProduceStatusTopic()).thenReturn(isConsumeProduceStatusFlag); + asdcClient.registerAsdcTopics(apiCredential); + verify(httpClient, times(1)).postRequest(Mockito.eq(AsdcUrls.POST_FOR_TOPIC_REGISTRATION), + Mockito.any(HttpEntity.class), Mockito.eq(mockHeaders), Mockito.eq(false)); + assertNotNull(lastHttpEntity); + RegistrationRequest actualRegRequest = gson.fromJson(IOUtils.toString(lastHttpEntity.getContent(), StandardCharsets.UTF_8), RegistrationRequest.class); + RegistrationRequest expectedRegRequest = gson.fromJson(excpectedStringBody(isConsumeProduceStatusFlag), RegistrationRequest.class); + + assertTrue(actualRegRequest.getApiPublicKey().equals(expectedRegRequest.getApiPublicKey())); + assertTrue(actualRegRequest.getDistrEnvName().equals(expectedRegRequest.getDistrEnvName())); + assertTrue(actualRegRequest.getIsConsumerToSdcDistrStatusTopic() + .equals(expectedRegRequest.getIsConsumerToSdcDistrStatusTopic())); + } + + + + private String excpectedStringBody(boolean isConsumeProduceStatusTopic) { + String stringBodyTemplate = "{\r\n" + " \"apiPublicKey\": \"MockApikey\",\r\n" + + " \"distrEnvName\": \"MockEnv\",\r\n" + " \"isConsumerToSdcDistrStatusTopic\": %s\r\n" + "}"; + return String.format(stringBodyTemplate, isConsumeProduceStatusTopic); + + } } diff --git a/sdc-distribution-client/src/test/java/org/onap/sdc/impl/DistributionClientFactory.java b/sdc-distribution-client/src/test/java/org/onap/sdc/impl/DistributionClientFactory.java deleted file mode 100644 index 6262f06..0000000 --- a/sdc-distribution-client/src/test/java/org/onap/sdc/impl/DistributionClientFactory.java +++ /dev/null @@ -1,35 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * sdc-distribution-client - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * Modifications copyright (C) 2019 Nokia. All rights reserved. - * ================================================================================ - * 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.sdc.impl; - -import org.onap.sdc.api.IDistributionClient; - -public class DistributionClientFactory { - - private DistributionClientFactory() { - } - - public static IDistributionClient createDistributionClient() { - return new DistributionClientImpl(); - } - -} diff --git a/sdc-distribution-client/src/test/java/org/onap/sdc/impl/DistributionStatusMessageImplTest.java b/sdc-distribution-client/src/test/java/org/onap/sdc/impl/DistributionStatusMessageImplTest.java deleted file mode 100644 index bf78a2a..0000000 --- a/sdc-distribution-client/src/test/java/org/onap/sdc/impl/DistributionStatusMessageImplTest.java +++ /dev/null @@ -1,138 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2019 Nokia. All rights reserved. - * ================================================================================ - * 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.sdc.impl; - -import static org.junit.Assert.assertEquals; - -import org.junit.Test; -import org.onap.sdc.api.consumer.IComponentDoneStatusMessage; -import org.onap.sdc.api.consumer.IDistributionStatusMessage; -import org.onap.sdc.api.consumer.IFinalDistrStatusMessage; -import org.onap.sdc.utils.DistributionStatusEnum; - -public class DistributionStatusMessageImplTest { - - private static final String ARTIFACT = "ARTIFACT"; - private static final String DISTRIBUTION_ID = "DISTRIBUTION_ID"; - private static final String CONSUMER_ID = "CONSUMER_ID"; - private static final String COMPONENT_NAME = "COMPONENT_NAME"; - - @Test - public void shouldProperlySetPropertiesFromIDistributionStatusMessage() { - IDistributionStatusMessage copyFrom = new IDistributionStatusMessage() { - @Override - public String getArtifactURL() { - return ARTIFACT; - } - - @Override - public String getDistributionID() { - return DISTRIBUTION_ID; - } - - @Override - public String getConsumerID() { - return CONSUMER_ID; - } - - @Override - public long getTimestamp() { - return 0; - } - - @Override - public DistributionStatusEnum getStatus() { - return DistributionStatusEnum.ALREADY_DEPLOYED; - } - }; - - DistributionStatusMessageImpl result = new DistributionStatusMessageImpl(copyFrom); - assertEquals(result.getArtifactURL(), copyFrom.getArtifactURL()); - assertEquals(result.getConsumerID(), copyFrom.getConsumerID()); - assertEquals(result.getDistributionID(), copyFrom.getDistributionID()); - assertEquals(result.getStatus(), copyFrom.getStatus()); - assertEquals(result.getTimestamp(), copyFrom.getTimestamp()); - } - - @Test - public void shouldProperlySetPropertiesFromIComponentDoneStatusMessage() { - IComponentDoneStatusMessage copyFrom = new IComponentDoneStatusMessage() { - @Override - public String getComponentName() { - return COMPONENT_NAME; - } - - @Override - public String getDistributionID() { - return DISTRIBUTION_ID; - } - - @Override - public String getConsumerID() { - return CONSUMER_ID; - } - - @Override - public long getTimestamp() { - return 0; - } - - @Override - public DistributionStatusEnum getStatus() { - return DistributionStatusEnum.ALREADY_DEPLOYED; - } - }; - - DistributionStatusMessageImpl result = new DistributionStatusMessageImpl(copyFrom); - assertEquals(result.getArtifactURL(), copyFrom.getArtifactURL()); - assertEquals(result.getConsumerID(), copyFrom.getConsumerID()); - assertEquals(result.getDistributionID(), copyFrom.getDistributionID()); - assertEquals(result.getStatus(), copyFrom.getStatus()); - assertEquals(result.getTimestamp(), copyFrom.getTimestamp()); - } - - @Test - public void shouldProperlySetPropertiesFromIFinalDistrStatusMessage() { - IFinalDistrStatusMessage copyFrom = new IFinalDistrStatusMessage() { - - @Override - public String getDistributionID() { - return DISTRIBUTION_ID; - } - - @Override - public long getTimestamp() { - return 0; - } - - @Override - public DistributionStatusEnum getStatus() { - return DistributionStatusEnum.ALREADY_DEPLOYED; - } - }; - - DistributionStatusMessageImpl result = new DistributionStatusMessageImpl(copyFrom); - assertEquals(result.getConsumerID(), copyFrom.getConsumerID()); - assertEquals(result.getDistributionID(), copyFrom.getDistributionID()); - assertEquals(result.getStatus(), copyFrom.getStatus()); - assertEquals(result.getTimestamp(), copyFrom.getTimestamp()); - } - -}
\ No newline at end of file diff --git a/sdc-distribution-client/src/test/java/org/onap/sdc/impl/StatusDataImplTest.java b/sdc-distribution-client/src/test/java/org/onap/sdc/impl/StatusDataImplTest.java deleted file mode 100644 index 82416fa..0000000 --- a/sdc-distribution-client/src/test/java/org/onap/sdc/impl/StatusDataImplTest.java +++ /dev/null @@ -1,42 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2019 Nokia. All rights reserved. - * ================================================================================ - * 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.sdc.impl; - -import static com.google.code.beanmatchers.BeanMatchers.hasValidBeanToStringExcluding; -import static com.google.code.beanmatchers.BeanMatchers.hasValidGettersAndSettersExcluding; -import static org.junit.Assert.assertThat; - -import org.junit.Test; - -public class StatusDataImplTest { - - private static final String COMPONENT_NAME = "componentName"; - private static final String ERROR_REASON = "errorReason"; - - @Test - public void shouldHaveValidGettersAndSetters() { - assertThat(StatusDataImpl.class, hasValidGettersAndSettersExcluding(COMPONENT_NAME, ERROR_REASON)); - } - - @Test - public void shouldHaveValidToString() { - assertThat(StatusDataImpl.class, hasValidBeanToStringExcluding(COMPONENT_NAME, ERROR_REASON)); - } -}
\ No newline at end of file diff --git a/sdc-distribution-client/src/test/java/org/onap/sdc/impl/mock/DistributionClientDownloadResultStubImpl.java b/sdc-distribution-client/src/test/java/org/onap/sdc/impl/mock/DistributionClientDownloadResultStubImpl.java deleted file mode 100644 index 5ffb655..0000000 --- a/sdc-distribution-client/src/test/java/org/onap/sdc/impl/mock/DistributionClientDownloadResultStubImpl.java +++ /dev/null @@ -1,81 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * sdc-distribution-client - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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.sdc.impl.mock; - -import org.onap.sdc.api.results.IDistributionClientDownloadResult; - -/** - * Mock Implementation - */ -public class DistributionClientDownloadResultStubImpl extends DistributionClientResultStubImpl implements IDistributionClientDownloadResult { - - @Override - public byte[] getArtifactPayload() { - String mockPayload = - "heat_template_version: 2013-05-23\r\n" - + "\r\n" - + "description: >\r\n" - + " HOT template that creates one COR network (direct).\r\n" - + "\r\n" - + "parameters:\r\n" - + " cor_direct_net_name:\r\n" - + " type: string\r\n" - + " description: Name of COR direct network\r\n" - + " cor_direct_net_cidr:\r\n" - + " type: string\r\n" - + " description: Direct network address (CIDR notation)\r\n" - + " cor_direct_net_gateway:\r\n" - + " type: string\r\n" - + " description: Direct network gateway address\r\n" - + " cor_direct_net_RT:\r\n" - + " type: string\r\n" - + " description: Direct network route-target (RT)\r\n" - + "\r\n" - + "resources:\r\n" - + " cor_direct_net:\r\n" - + " type: OS::Contrail::VirtualNetwork\r\n" - + " properties:\r\n" - + " name: { get_param: cor_direct_net_name }\r\n" - + " route_targets: [ get_param: cor_direct_net_RT ]\r\n" - + "\r\n" - + " cor_direct_ip_subnet:\r\n" - + " type: OS::Neutron::Subnet\r\n" - + " properties:\r\n" - + " network_id: { get_resource: cor_direct_net }\r\n" - + " cidr: {get_param: cor_direct_net_cidr}\r\n" - + " gateway_ip: { get_param: cor_direct_net_gateway }\r\n"; - - return mockPayload.getBytes(); - } - - @Override - public String getArtifactName() { - // TODO Auto-generated method stub - return "MackArtifactName"; - } - - @Override - public String getArtifactFilename() { - // TODO Auto-generated method stub - return "MackArtifactName"; - } - -} diff --git a/sdc-distribution-client/src/test/java/org/onap/sdc/impl/mock/DistributionClientResultStubImpl.java b/sdc-distribution-client/src/test/java/org/onap/sdc/impl/mock/DistributionClientResultStubImpl.java deleted file mode 100644 index d176608..0000000 --- a/sdc-distribution-client/src/test/java/org/onap/sdc/impl/mock/DistributionClientResultStubImpl.java +++ /dev/null @@ -1,40 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * sdc-distribution-client - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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.sdc.impl.mock; - -import org.onap.sdc.api.results.IDistributionClientResult; -import org.onap.sdc.utils.DistributionActionResultEnum; - -/** - * Mock Implementation - */ -public class DistributionClientResultStubImpl implements IDistributionClientResult { - @Override - public DistributionActionResultEnum getDistributionActionResult() { - return DistributionActionResultEnum.SUCCESS; - } - - @Override - public String getDistributionMessageResult() { - return "Stub Result, method not implemented!"; - } - -} diff --git a/sdc-distribution-client/src/test/java/org/onap/sdc/impl/mock/DistributionClientStubImpl.java b/sdc-distribution-client/src/test/java/org/onap/sdc/impl/mock/DistributionClientStubImpl.java deleted file mode 100644 index 40e1869..0000000 --- a/sdc-distribution-client/src/test/java/org/onap/sdc/impl/mock/DistributionClientStubImpl.java +++ /dev/null @@ -1,129 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * sdc-distribution-client - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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.sdc.impl.mock; - -import java.util.List; - -import org.onap.sdc.api.IDistributionClient; -import org.onap.sdc.api.consumer.IComponentDoneStatusMessage; -import org.onap.sdc.api.consumer.IConfiguration; -import org.onap.sdc.api.consumer.IDistributionStatusMessage; -import org.onap.sdc.api.consumer.IFinalDistrStatusMessage; -import org.onap.sdc.api.consumer.INotificationCallback; -import org.onap.sdc.api.consumer.IStatusCallback; -import org.onap.sdc.api.notification.IArtifactInfo; -import org.onap.sdc.api.notification.IVfModuleMetadata; -import org.onap.sdc.api.results.IDistributionClientDownloadResult; -import org.onap.sdc.api.results.IDistributionClientResult; - -/** - * Mock Implementation - */ -public class DistributionClientStubImpl implements IDistributionClient { - - - public IDistributionClientResult updateConfiguration(IConfiguration newConf) { - return new DistributionClientResultStubImpl(); - } - - public IDistributionClientResult start() { - return new DistributionClientResultStubImpl(); - } - - public IDistributionClientResult stop() { - return new DistributionClientResultStubImpl(); - } - - public IDistributionClientResult sendDownloadStatus(IDistributionStatusMessage statusMessage) { - return new DistributionClientResultStubImpl(); - } - - public IDistributionClientResult sendDeploymentStatus(IDistributionStatusMessage statusMessage) { - return new DistributionClientResultStubImpl(); - } - - @Override - public IDistributionClientDownloadResult download(IArtifactInfo artifactInfo) { - return new DistributionClientDownloadResultStubImpl(); - } - - @Override - public IDistributionClientResult init(IConfiguration conf, INotificationCallback callback) { - return new DistributionClientResultStubImpl(); - } - - @Override - public IDistributionClientResult init(IConfiguration conf, INotificationCallback notificationCallback, - IStatusCallback statusCallback) { - return new DistributionClientResultStubImpl(); - } - - @Override - public IConfiguration getConfiguration() { - // TODO Auto-generated method stub - return null; - } - - @Override - public IDistributionClientResult sendDownloadStatus( - IDistributionStatusMessage statusMessage, String errorReason) { - // TODO Auto-generated method stub - return null; - } - - @Override - public IDistributionClientResult sendDeploymentStatus( - IDistributionStatusMessage statusMessage, String errorReason) { - // TODO Auto-generated method stub - return null; - } - - @Override - public IDistributionClientResult sendComponentDoneStatus(IComponentDoneStatusMessage statusMessage) { - return null; - } - - @Override - public IDistributionClientResult sendFinalDistrStatus(IFinalDistrStatusMessage statusMessage) { - return null; - } - - @Override - public List<IVfModuleMetadata> decodeVfModuleArtifact(byte[] artifactPayload) { - // TODO Auto-generated method stub - return null; - } - - @Override - public IDistributionClientResult sendComponentDoneStatus(IComponentDoneStatusMessage statusMessage, - String errorReason) { - // TODO Auto-generated method stub - return null; - } - - @Override - public IDistributionClientResult sendFinalDistrStatus(IFinalDistrStatusMessage statusMessage, String errorReason) { - // TODO Auto-generated method stub - return null; - } - - -} diff --git a/sdc-distribution-client/src/test/java/org/onap/sdc/utils/ArtifactsUtils.java b/sdc-distribution-client/src/test/java/org/onap/sdc/utils/ArtifactsUtils.java index dad6d4a..b562ab7 100644 --- a/sdc-distribution-client/src/test/java/org/onap/sdc/utils/ArtifactsUtils.java +++ b/sdc-distribution-client/src/test/java/org/onap/sdc/utils/ArtifactsUtils.java @@ -3,14 +3,13 @@ * sdc-distribution-client * ================================================================================ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * Modifications copyright (C) 2019 Nokia. All rights reserved. * ================================================================================ * 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. @@ -22,27 +21,26 @@ package org.onap.sdc.utils; -import java.util.Base64; + +import org.apache.commons.codec.binary.Base64; import org.onap.sdc.impl.mock.DistributionClientDownloadResultStubImpl; public class ArtifactsUtils { - - static DistributionClientDownloadResultStubImpl distributionClientDownloadResultStubImpl = - new DistributionClientDownloadResultStubImpl(); - - public static byte[] getArtifactPayload() { - return distributionClientDownloadResultStubImpl.getArtifactPayload(); - } - - public static String getValidChecksum() { - - String payloadStr = new String(distributionClientDownloadResultStubImpl.getArtifactPayload()); - - byte[] decodedPayload = Base64.getDecoder().decode(payloadStr); - String checkSum = GeneralUtils.calculateMD5(new String(decodedPayload)); - - return checkSum; - } + static DistributionClientDownloadResultStubImpl distributionClientDownloadResultStubImpl = new DistributionClientDownloadResultStubImpl(); + + public static byte [] getArtifactPayload(){ + return distributionClientDownloadResultStubImpl.getArtifactPayload(); + } + + public static String getValidChecksum(){ + + String payloadStr = new String(distributionClientDownloadResultStubImpl.getArtifactPayload()); + + byte[] decodedPayload = Base64.decodeBase64(payloadStr); + String checkSum = GeneralUtils.calculateMD5 (new String(decodedPayload)); + + return checkSum; + } } diff --git a/sdc-distribution-client/src/test/java/org/onap/sdc/utils/GeneralUtilsTest.java b/sdc-distribution-client/src/test/java/org/onap/sdc/utils/GeneralUtilsTest.java deleted file mode 100644 index 3ed80c3..0000000 --- a/sdc-distribution-client/src/test/java/org/onap/sdc/utils/GeneralUtilsTest.java +++ /dev/null @@ -1,66 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2019 Nokia. All rights reserved. - * ================================================================================ - * 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.sdc.utils; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; - -import com.google.common.base.Charsets; -import com.google.common.hash.HashCode; -import com.google.common.hash.Hashing; -import java.util.Base64; -import org.junit.Test; - -public class GeneralUtilsTest { - - private static final String TEXT_TO_CODE = "This is example text."; - - @Test - public void shouldCalculateMD5ForBytes() { - String hashed = GeneralUtils.calculateMD5(TEXT_TO_CODE.getBytes()); - byte[] decoded = Base64.getDecoder().decode(hashed); - HashCode expected = Hashing.md5().hashString(TEXT_TO_CODE, Charsets.UTF_8); - assertEquals(expected.toString(), new String(decoded)); - } - - @Test - public void shouldCalculateMD5ForString() { - String hashed = GeneralUtils.calculateMD5(TEXT_TO_CODE); - byte[] decoded = Base64.getDecoder().decode(hashed); - HashCode expected = Hashing.md5().hashString(TEXT_TO_CODE, Charsets.UTF_8); - assertEquals(expected.toString(), new String(decoded)); - } - - @Test - public void shouldValidateBase64EncodedString() { - HashCode expected = Hashing.md5().hashString(TEXT_TO_CODE, Charsets.UTF_8); - String base64String = Base64.getEncoder().encodeToString(expected.asBytes()); - assertTrue(GeneralUtils.isBase64Encoded(base64String)); - } - - @Test - public void shouldInvalidateBase64EncodedString() { - String base64String = Base64.getEncoder().encodeToString(TEXT_TO_CODE.getBytes()); - assertFalse(GeneralUtils.isBase64Encoded(base64String)); - } - -}
\ No newline at end of file |