From 924616740bdf5f596bd6f32dac32c1a8e5504650 Mon Sep 17 00:00:00 2001 From: Patrick Brady Date: Wed, 27 Feb 2019 13:41:53 -0800 Subject: Fix failing powermock tests The version of javassist coming from opendaylight is not working correctly with powermock. Adding a test scoped dependency for a working version of javassist. Test classes added in this commit are not new, they were temporarily removed as part of https://gerrit.onap.org/r/#/c/79046/ Change-Id: I193873c0d4abd7b11592a95bff9a6b07cf2d7191 Signed-off-by: Patrick Brady Issue-ID: APPC-1277 --- .../org/onap/appc/instar/node/TestDme2Client.java | 153 +++++++++++++++++++++ 1 file changed, 153 insertions(+) create mode 100644 appc-outbound/appc-network-inventory-client/provider/src/test/java/org/onap/appc/instar/node/TestDme2Client.java (limited to 'appc-outbound/appc-network-inventory-client/provider/src') diff --git a/appc-outbound/appc-network-inventory-client/provider/src/test/java/org/onap/appc/instar/node/TestDme2Client.java b/appc-outbound/appc-network-inventory-client/provider/src/test/java/org/onap/appc/instar/node/TestDme2Client.java new file mode 100644 index 000000000..7e2a41820 --- /dev/null +++ b/appc-outbound/appc-network-inventory-client/provider/src/test/java/org/onap/appc/instar/node/TestDme2Client.java @@ -0,0 +1,153 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP : APPC + * ================================================================================ + * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Copyright (C) 2017 Amdocs + * ============================================================================= + * Modifications Copyright (C) 2019 Ericsson + * ============================================================================= + * 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.appc.instar.node; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import static org.mockito.Matchers.anyObject; +import static org.mockito.Mockito.when; +import java.io.InputStream; +import java.net.URI; +import java.security.NoSuchAlgorithmException; +import java.util.HashMap; +import java.util.Properties; +import javax.net.ssl.SSLContext; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mockito; +import org.onap.appc.instar.dme2client.Dme2Client; +import org.onap.appc.instar.utils.InstarClientConstant; +import org.powermock.api.mockito.PowerMockito; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; +import org.powermock.reflect.Whitebox; +import com.sun.jersey.api.client.Client; +import com.sun.jersey.api.client.ClientResponse; +import com.sun.jersey.api.client.WebResource; +import com.sun.jersey.api.client.WebResource.Builder; + +@RunWith(PowerMockRunner.class) +@PrepareForTest({InstarClientConstant.class, SSLContext.class, Client.class}) +public class TestDme2Client { + + private Dme2Client dme2; + private InputStream inputStream; + private SSLContext sslContext; + private Properties properties; + private Client client; + private WebResource webResource; + private Builder builder; + private ClientResponse clientResponse; + + @Before + public void setUp() throws Exception { + inputStream = Mockito.mock(InputStream.class); + sslContext = PowerMockito.mock(SSLContext.class); + client = Mockito.mock(Client.class); + builder = Mockito.mock(Builder.class); + clientResponse = Mockito.mock(ClientResponse.class); + webResource = Mockito.mock(WebResource.class); + HashMap data = new HashMap(); + data.put("subtext", "value"); + PowerMockito.mockStatic(InstarClientConstant.class); + PowerMockito.mockStatic(SSLContext.class); + PowerMockito.mockStatic(Client.class); + PowerMockito.when(InstarClientConstant.getEnvironmentVariable("SDNC_CONFIG_DIR")) + .thenReturn("test"); + PowerMockito.when(InstarClientConstant.getInputStream("test/outbound.properties")) + .thenReturn(inputStream); + PowerMockito.when(SSLContext.getInstance("SSL")).thenReturn(sslContext); + PowerMockito.when(Client.create(anyObject())).thenReturn(client); + PowerMockito.when(client.resource(new URI("nullnullnullvalue"))).thenReturn(webResource); + + PowerMockito.when(builder.get(ClientResponse.class)).thenReturn(clientResponse); + properties = Mockito.mock(Properties.class); + dme2 = new Dme2Client("opt", "subtext", data); + Whitebox.setInternalState(dme2, "properties", properties); + when(properties.getProperty("MechID")).thenReturn("123"); + when(properties.getProperty("MechPass")).thenReturn("password"); + } + + @Test + public void testSendtoInstarGet() throws Exception { + PowerMockito.when(webResource.accept("application/json")).thenReturn(builder); + PowerMockito.when(clientResponse.getEntity(String.class)).thenReturn("Get Success"); + when(properties.getProperty("getIpAddressByVnf_method")).thenReturn("GET"); + assertEquals("Get Success", dme2.send()); + } + + @Test + public void testSendtoInstarPut() throws Exception { + PowerMockito.when(webResource.type("application/json")).thenReturn(builder); + PowerMockito.when(builder.put(ClientResponse.class, "")).thenReturn(clientResponse); + PowerMockito.when(clientResponse.getEntity(String.class)).thenReturn("Put Success"); + when(properties.getProperty("getIpAddressByVnf_method")).thenReturn("PUT"); + assertEquals("Put Success", dme2.send()); + } + + @Test + public void testSendtoInstarPost() throws Exception { + PowerMockito.when(webResource.type("application/json")).thenReturn(builder); + PowerMockito.when(builder.post(ClientResponse.class, "")).thenReturn(clientResponse); + PowerMockito.when(clientResponse.getEntity(String.class)).thenReturn("Post Success"); + when(properties.getProperty("getIpAddressByVnf_method")).thenReturn("POST"); + assertEquals("Post Success", dme2.send()); + } + + @Test + public void testSendtoInstarDelete() throws Exception { + PowerMockito.when(webResource.delete(ClientResponse.class)).thenReturn(clientResponse); + PowerMockito.when(clientResponse.getEntity(String.class)).thenReturn("Delete Success"); + when(properties.getProperty("getIpAddressByVnf_method")).thenReturn("DELETE"); + assertEquals("Delete Success", dme2.send()); + } + + @Test + public void testSendtoInstarException() throws Exception { + PowerMockito.when(SSLContext.getInstance("SSL")).thenThrow(new NoSuchAlgorithmException()); + when(properties.getProperty("getIpAddressByVnf_method")).thenReturn("DELETE"); + assertNull(dme2.send()); + } + + @Test + public void testSendtoInstarMaskNotNull() throws Exception { + Whitebox.setInternalState(dme2, "mask", "0.0.0.0/1"); + PowerMockito.when(webResource.accept("application/json")).thenReturn(builder); + PowerMockito.when(clientResponse.getEntity(String.class)).thenReturn("Get Success"); + when(properties.getProperty("getIpAddressByVnf_method")).thenReturn("GET"); + assertNull(dme2.send()); + } + + @Test + public void testSendtoInstarIpNotNull() throws Exception { + Whitebox.setInternalState(dme2, "ipAddress", "0.0.0.0"); + PowerMockito.when(webResource.accept("application/json")).thenReturn(builder); + PowerMockito.when(clientResponse.getEntity(String.class)).thenReturn("Get Success"); + when(properties.getProperty("getIpAddressByVnf_method")).thenReturn("GET"); + assertNull(dme2.send()); + } +} -- cgit 1.2.3-korg