diff options
author | Michael Shitrit <ms172g@att.com> | 2017-12-12 08:51:19 +0200 |
---|---|---|
committer | Michael Shitrit <ms172g@att.com> | 2017-12-21 08:19:05 +0200 |
commit | 7712aebd58699838b4926c577b46536de1e25baa (patch) | |
tree | ea9d1aa35559dcb4eb3f006f5b1ff2c1ff20b25d /sdc-distribution-client/src/test | |
parent | 59f54a06971a40ba061268ab77fb80fa650d7667 (diff) |
Issue-ID: SDC-744
Change-Id: I965cb1ad1c9dae6aa38a3c3baced3bbbb1d8f5af
Signed-off-by: Michael Shitrit <ms172g@att.com>
Diffstat (limited to 'sdc-distribution-client/src/test')
3 files changed, 143 insertions, 91 deletions
diff --git a/sdc-distribution-client/src/test/java/org/openecomp/sdc/http/SdcConnectorClientTest.java b/sdc-distribution-client/src/test/java/org/openecomp/sdc/http/SdcConnectorClientTest.java new file mode 100644 index 0000000..5ddc915 --- /dev/null +++ b/sdc-distribution-client/src/test/java/org/openecomp/sdc/http/SdcConnectorClientTest.java @@ -0,0 +1,119 @@ +package org.openecomp.sdc.http; + +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.doAnswer; +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.util.HashMap; +import java.util.Map; + +import org.apache.commons.io.IOUtils; +import org.apache.http.HttpEntity; +import org.apache.http.HttpStatus; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; +import org.mockito.Mockito; +import org.mockito.invocation.InvocationOnMock; +import org.mockito.stubbing.Answer; +import org.openecomp.sdc.api.asdc.RegistrationRequest; +import org.openecomp.sdc.api.consumer.IConfiguration; +import org.openecomp.sdc.impl.DistributionClientResultImpl; +import org.openecomp.sdc.utils.Pair; + +import com.att.nsa.apiClient.credentials.ApiCredential; +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; + +import fj.data.Either; + +public class SdcConnectorClientTest { + 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/openecomp/sdc/impl/DistributionClientTest.java b/sdc-distribution-client/src/test/java/org/openecomp/sdc/impl/DistributionClientTest.java index cf380cb..81f9a17 100644 --- a/sdc-distribution-client/src/test/java/org/openecomp/sdc/impl/DistributionClientTest.java +++ b/sdc-distribution-client/src/test/java/org/openecomp/sdc/impl/DistributionClientTest.java @@ -22,16 +22,14 @@ package org.openecomp.sdc.impl; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.doReturn; import java.io.IOException; -import java.net.MalformedURLException; -import java.security.GeneralSecurityException; import java.util.ArrayList; import java.util.List; import org.junit.After; import org.junit.Assert; -import org.junit.BeforeClass; import org.junit.Test; import org.mockito.Mockito; import org.openecomp.sdc.api.IDistributionClient; @@ -39,7 +37,7 @@ import org.openecomp.sdc.api.consumer.IConfiguration; import org.openecomp.sdc.api.notification.IArtifactInfo; import org.openecomp.sdc.api.notification.IVfModuleMetadata; import org.openecomp.sdc.api.results.IDistributionClientResult; -import org.openecomp.sdc.http.AsdcConnectorClient; +import org.openecomp.sdc.http.SdcConnectorClient; import org.openecomp.sdc.http.TopicRegistrationResponse; import org.openecomp.sdc.utils.ArtifactTypeEnum; import org.openecomp.sdc.utils.ArtifactsUtils; @@ -51,28 +49,17 @@ import org.openecomp.sdc.utils.Wrapper; import com.att.nsa.apiClient.credentials.ApiCredential; import com.att.nsa.apiClient.http.HttpException; import com.att.nsa.cambria.client.CambriaClient.CambriaApiException; -import com.att.nsa.cambria.client.CambriaClientBuilders; import com.att.nsa.cambria.client.CambriaIdentityManager; -import com.att.nsa.cambria.client.CambriaTopicManager; import fj.data.Either; public class DistributionClientTest { static CambriaIdentityManager cc; - static List<String> serverList; - DistributionClientImpl client = new DistributionClientImpl(); + DistributionClientImpl client = Mockito.spy(new DistributionClientImpl()); IConfiguration testConfiguration = new TestConfiguration(); - AsdcConnectorClient connector = Mockito.mock(AsdcConnectorClient.class); + SdcConnectorClient connector = Mockito.mock(SdcConnectorClient.class); - @BeforeClass - public static void setup() { - serverList = new ArrayList<String>(); - serverList.add("uebsb91sfdc.it.open.com:3904"); - serverList.add("uebsb92sfdc.it.open.com:3904"); - serverList.add("uebsb93sfdc.it.open.com:3904"); - - } @After public void afterTest() { @@ -150,9 +137,6 @@ public class DistributionClientTest { @Test public void initWithMocksBadConfigurationTest() throws HttpException, CambriaApiException, IOException { - // connectorMock - Either<List<String>, IDistributionClientResult> serversResult = Either.left(serverList); - Mockito.when(connector.getServerList()).thenReturn(serversResult); TopicRegistrationResponse topics = new TopicRegistrationResponse(); topics.setDistrNotificationTopicName("notificationTopic"); @@ -222,7 +206,7 @@ public class DistributionClientTest { validationResult = client.init(testEnv, new TestNotificationCallback()); Assert.assertEquals(DistributionActionResultEnum.CONF_MISSING_ENVIRONMENT_NAME, validationResult.getDistributionActionResult()); - Mockito.verify(connector, Mockito.times(0)).getServerList(); + Mockito.verify(client, Mockito.times(0)).getUEBServerList(); Mockito.verify(cambriaMock, Mockito.times(0)).createApiKey(Mockito.anyString(), Mockito.anyString()); Mockito.verify(connector, Mockito.times(0)).registerAsdcTopics(Mockito.any(ApiCredential.class)); } @@ -252,8 +236,6 @@ public class DistributionClientTest { @Test public void getConfigurationTest() throws HttpException, CambriaApiException, IOException { // connectorMock - Either<List<String>, IDistributionClientResult> serversResult = Either.left(serverList); - Mockito.when(connector.getServerList()).thenReturn(serversResult); mockArtifactTypeList(); TopicRegistrationResponse topics = new TopicRegistrationResponse(); topics.setDistrNotificationTopicName("notificationTopic"); @@ -300,9 +282,6 @@ public class DistributionClientTest { @Test public void initWithMocksTest() throws HttpException, CambriaApiException, IOException { - // connectorMock - Either<List<String>, IDistributionClientResult> serversResult = Either.left(serverList); - Mockito.when(connector.getServerList()).thenReturn(serversResult); mockArtifactTypeList(); TopicRegistrationResponse topics = new TopicRegistrationResponse(); @@ -323,7 +302,7 @@ public class DistributionClientTest { IDistributionClientResult initResponse = client.init(testConfiguration, new TestNotificationCallback()); assertEquals(DistributionActionResultEnum.SUCCESS, initResponse.getDistributionActionResult()); - Mockito.verify(connector, Mockito.times(1)).getServerList(); + Mockito.verify(client, Mockito.times(1)).getUEBServerList(); Mockito.verify(cambriaMock, Mockito.times(1)).createApiKey(Mockito.anyString(), Mockito.anyString()); Mockito.verify(connector, Mockito.times(1)).registerAsdcTopics(Mockito.any(ApiCredential.class)); System.out.println(initResponse); @@ -352,7 +331,7 @@ public class DistributionClientTest { // connectorMock IDistributionClientResult getServersResult = new DistributionClientResultImpl(DistributionActionResultEnum.ASDC_SERVER_PROBLEM, "problem"); Either<List<String>, IDistributionClientResult> serversResult = Either.right(getServersResult); - Mockito.when(connector.getServerList()).thenReturn(serversResult); + doReturn(serversResult).when(client).getUEBServerList(); TopicRegistrationResponse topics = new TopicRegistrationResponse(); topics.setDistrNotificationTopicName("notificationTopic"); @@ -371,7 +350,7 @@ public class DistributionClientTest { IDistributionClientResult initResponse = client.init(testConfiguration, new TestNotificationCallback()); assertEquals(DistributionActionResultEnum.ASDC_SERVER_PROBLEM, initResponse.getDistributionActionResult()); - Mockito.verify(connector, Mockito.times(1)).getServerList(); + Mockito.verify(client, Mockito.times(1)).getUEBServerList(); Mockito.verify(cambriaMock, Mockito.times(0)).createApiKey(Mockito.anyString(), Mockito.anyString()); Mockito.verify(connector, Mockito.times(0)).registerAsdcTopics(Mockito.any(ApiCredential.class)); @@ -382,8 +361,6 @@ public class DistributionClientTest { public void initCreateKeysFailedTest() throws HttpException, CambriaApiException, IOException { // connectorMock - Either<List<String>, IDistributionClientResult> serversResult = Either.left(serverList); - Mockito.when(connector.getServerList()).thenReturn(serversResult); mockArtifactTypeList(); TopicRegistrationResponse topics = new TopicRegistrationResponse(); @@ -403,7 +380,7 @@ public class DistributionClientTest { IDistributionClientResult initResponse = client.init(testConfiguration, new TestNotificationCallback()); assertEquals(DistributionActionResultEnum.UEB_KEYS_CREATION_FAILED, initResponse.getDistributionActionResult()); - Mockito.verify(connector, Mockito.times(1)).getServerList(); + Mockito.verify(client, Mockito.times(1)).getUEBServerList(); Mockito.verify(cambriaMock, Mockito.times(1)).createApiKey(Mockito.anyString(), Mockito.anyString()); Mockito.verify(connector, Mockito.times(0)).registerAsdcTopics(Mockito.any(ApiCredential.class)); System.out.println(initResponse); @@ -413,8 +390,6 @@ public class DistributionClientTest { public void initRegistrationFailedTest() throws HttpException, CambriaApiException, IOException { // connectorMock - Either<List<String>, IDistributionClientResult> serversResult = Either.left(serverList); - Mockito.when(connector.getServerList()).thenReturn(serversResult); mockArtifactTypeList(); DistributionClientResultImpl failureResult = new DistributionClientResultImpl(DistributionActionResultEnum.BAD_REQUEST, "Bad Request"); Either<TopicRegistrationResponse, DistributionClientResultImpl> topicsResult = Either.right(failureResult); @@ -430,7 +405,7 @@ public class DistributionClientTest { IDistributionClientResult initResponse = client.init(testConfiguration, new TestNotificationCallback()); assertEquals(DistributionActionResultEnum.BAD_REQUEST, initResponse.getDistributionActionResult()); - Mockito.verify(connector, Mockito.times(1)).getServerList(); + Mockito.verify(client, Mockito.times(1)).getUEBServerList(); Mockito.verify(cambriaMock, Mockito.times(1)).createApiKey(Mockito.anyString(), Mockito.anyString()); Mockito.verify(connector, Mockito.times(1)).registerAsdcTopics(Mockito.any(ApiCredential.class)); System.out.println(initResponse); @@ -450,7 +425,7 @@ public class DistributionClientTest { } // ########### TESTS TO ADD TO CI START ########### - public void createKeysTestCI() throws MalformedURLException, GeneralSecurityException { + /*public void createKeysTestCI() throws MalformedURLException, GeneralSecurityException { validateConfigurationTest(); CambriaIdentityManager trueCambria = new CambriaClientBuilders.IdentityManagerBuilder().usingHttps().usingHosts(serverList).build(); client.cambriaIdentityManager = trueCambria; @@ -462,7 +437,7 @@ public class DistributionClientTest { System.out.println(keysResult); System.out.println("keys: public=" + client.credential.getApiKey() + " | secret=" + client.credential.getApiSecret()); } - +*/ public void initTestCI() { IDistributionClient distributionClient = DistributionClientFactory.createDistributionClient(); IDistributionClientResult init = distributionClient.init(testConfiguration, new TestNotificationCallback()); @@ -507,59 +482,9 @@ public class DistributionClientTest { } - // @Test - public void registerProducerCI() { - - try { - CambriaTopicManager topicManager = new CambriaClientBuilders.TopicManagerBuilder().usingHttps().usingHosts(serverList).authenticatedBy("sSJc5qiBnKy2qrlc", "4ZRPzNJfEUK0sSNBvccd2m7X").build(); - topicManager.allowProducer("ASDC-DISTR-STATUS-TOPIC-TESTER", "1FSVAA3bRjhSKNAI"); - } catch (HttpException | IOException | GeneralSecurityException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - - // publish - // StringBuilder sb = new StringBuilder(); - // for (String s : serverList) - // { - // sb.append(s); - // sb.append(","); - // } - // CambriaBatchingPublisher pub = CambriaClientFactory.createSimplePublisher(sb.toString(), "ASDC-DISTR-STATUS-TOPIC-TESTER"); - // pub.setApiCredentials("yPMwjhmOgHUyJEeW", "3RYpgvBsjpA8Y2CHdA1PM8xK" ); - // - // - // try { - // pub.send("MyPartitionKey", "{\"artifactURL\":\"artifactURL_Val\", \"consumerID\" : \"123\", \"distributionID\" : \"AAA\", \"status\" : \"DOWNLOAD_OK\", \"timestamp\" : 1000}"); - // } catch (IOException e) { - // e.printStackTrace(); - // } - // - // finally{ - // - // - // try { - // List<message> stuck = pub.close(15L, TimeUnit.SECONDS); - // assertTrue(stuck.isEmpty()); - // } catch (IOException | InterruptedException e) { - // // TODO Auto-generated catch block - // e.printStackTrace(); - // } - // } - - } - - public void connectorGetServersTestCI() { - AsdcConnectorClient connector = new AsdcConnectorClient(); - connector.init(testConfiguration); - - Either<List<String>, IDistributionClientResult> serverListFromAsdc = connector.getServerList(); - assertTrue(serverListFromAsdc.isLeft()); - assertEquals(serverList, serverListFromAsdc.left().value()); - } public void connectorRegisterCI() { - AsdcConnectorClient connector = new AsdcConnectorClient(); + SdcConnectorClient connector = new SdcConnectorClient(); connector.init(testConfiguration); ApiCredential creds = new ApiCredential("publicKey", "secretKey"); @@ -569,7 +494,7 @@ public class DistributionClientTest { } public void downloadArtifactTestCI() { - AsdcConnectorClient connector = new AsdcConnectorClient(); + SdcConnectorClient connector = new SdcConnectorClient(); connector.init(testConfiguration); IArtifactInfo artifactInfo = initArtifactInfo(); connector.dowloadArtifact(artifactInfo); diff --git a/sdc-distribution-client/src/test/java/org/openecomp/sdc/utils/TestConfiguration.java b/sdc-distribution-client/src/test/java/org/openecomp/sdc/utils/TestConfiguration.java index 727f9a6..22814f4 100644 --- a/sdc-distribution-client/src/test/java/org/openecomp/sdc/utils/TestConfiguration.java +++ b/sdc-distribution-client/src/test/java/org/openecomp/sdc/utils/TestConfiguration.java @@ -24,8 +24,6 @@ import java.util.ArrayList; import java.util.List; import org.openecomp.sdc.api.consumer.IConfiguration; -import org.openecomp.sdc.utils.ArtifactTypeEnum; -import org.openecomp.sdc.utils.DistributionClientConstants; public class TestConfiguration implements IConfiguration { @@ -43,6 +41,7 @@ public class TestConfiguration implements IConfiguration { private boolean activateServerTLSAuth; private boolean isFilterInEmptyResources; private boolean useHttpsWithDmaap; + private List<String> msgBusAddress; public TestConfiguration(IConfiguration other) { this.asdcAddress = other.getAsdcAddress(); @@ -75,6 +74,10 @@ public class TestConfiguration implements IConfiguration { this.keyStorePassword = "Aa123456"; this.activateServerTLSAuth = false; this.isFilterInEmptyResources = false; + msgBusAddress = new ArrayList<String>(); + msgBusAddress.add("www.cnn.com"); + msgBusAddress.add("www.cnn.com"); + msgBusAddress.add("www.cnn.com"); } @Override @@ -83,6 +86,11 @@ public class TestConfiguration implements IConfiguration { } @Override + public List<String> getMsgBusAddress() { + return msgBusAddress; + } + + @Override public String getUser() { return user; } |