diff options
Diffstat (limited to 'apiroute/apiroute-service/src/test/java/org/onap/msb/apiroute/wrapper/service/MicroServiceFullServiceTest.java')
-rw-r--r-- | apiroute/apiroute-service/src/test/java/org/onap/msb/apiroute/wrapper/service/MicroServiceFullServiceTest.java | 413 |
1 files changed, 413 insertions, 0 deletions
diff --git a/apiroute/apiroute-service/src/test/java/org/onap/msb/apiroute/wrapper/service/MicroServiceFullServiceTest.java b/apiroute/apiroute-service/src/test/java/org/onap/msb/apiroute/wrapper/service/MicroServiceFullServiceTest.java new file mode 100644 index 0000000..7ca2ff7 --- /dev/null +++ b/apiroute/apiroute-service/src/test/java/org/onap/msb/apiroute/wrapper/service/MicroServiceFullServiceTest.java @@ -0,0 +1,413 @@ +package org.onap.msb.apiroute.wrapper.service; + +import com.fiftyonred.mock_jedis.MockJedisPool; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.onap.msb.apiroute.api.MicroServiceFullInfo; +import org.onap.msb.apiroute.api.Node; +import org.onap.msb.apiroute.wrapper.dao.RedisAccessWrapper; +import org.onap.msb.apiroute.wrapper.service.MicroServiceFullService; +import org.onap.msb.apiroute.wrapper.util.JedisUtil; +import org.onap.msb.apiroute.wrapper.util.MicroServiceUtil; +import org.powermock.api.mockito.PowerMockito; +import org.powermock.core.classloader.annotations.PowerMockIgnore; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; +import redis.clients.jedis.JedisPool; +import redis.clients.jedis.JedisPoolConfig; + +import java.lang.reflect.InvocationHandler; +import java.lang.reflect.Method; +import java.util.*; + +import static org.junit.Assert.*; +import static org.powermock.api.mockito.PowerMockito.when; + +@RunWith(PowerMockRunner.class) +@PrepareForTest({JedisUtil.class,RedisAccessWrapper.class}) +@PowerMockIgnore( {"javax.management.*"}) +public class MicroServiceFullServiceTest { + private static MicroServiceFullService microServiceFullService = null; + private static Comparator<MicroServiceFullInfo> serviceComparator = null; + @BeforeClass + public static void setUp() throws Exception{ + microServiceFullService = MicroServiceFullService.getInstance(); + serviceComparator = new Comparator<MicroServiceFullInfo>() { + @Override + public int compare(MicroServiceFullInfo o1, MicroServiceFullInfo o2) { + if (!o1.getServiceName().equals(o2.getServiceName())) + return (o1.getServiceName()).compareTo(o2.getServiceName()); + if (!o1.getVersion().equals(o2.getVersion())) + return (o1.getVersion()).compareTo(o2.getVersion()); + return 0; + } + }; + } + @Before + public void setUpBeforeTest() throws Exception { + final JedisPool mockJedisPool = new MockJedisPool(new JedisPoolConfig(), "localhost"); + PowerMockito.mockStatic(JedisUtil.class); + JedisUtil jedisUtil=PowerMockito.mock(JedisUtil.class); + when(jedisUtil.borrowJedisInstance()).thenReturn(mockJedisPool.getResource()); + + PowerMockito.replace(PowerMockito.method(RedisAccessWrapper.class, "filterKeys")).with(new InvocationHandler() { + @Override + public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { + return mockJedisPool.getResource().keys((String) args[0]); + } + }); + } + + @Test + public void testExistsMicroServiceInstance_notExist(){ + try { + assertFalse(microServiceFullService.existsMicroServiceInstance("notExist", "v1")); + } catch (Exception e) { + assert false:"throw exception means error occured!"+e.getMessage(); + } + } + @Test + public void testExistsMicroServiceInstance_Exist(){ + MicroServiceFullInfo microServiceFullInfo = new MicroServiceFullInfo(); + microServiceFullInfo.setServiceName("testService"); + microServiceFullInfo.setVersion("v1"); + microServiceFullInfo.setStatus("1"); + microServiceFullInfo.setUrl("/testService/v1"); + microServiceFullInfo.setVisualRange("0"); + microServiceFullInfo.setProtocol("http"); + microServiceFullInfo.setEnable_ssl(false); + Set<Node> nodeSet = new HashSet<>(); + nodeSet.add(new Node("10.74.148.88","8080")); + microServiceFullInfo.setNodes(nodeSet); + try { + assertFalse(microServiceFullService.existsMicroServiceInstance("testService", "v1")); + microServiceFullService.saveMicroServiceInfo2Redis(microServiceFullInfo); + assertTrue(microServiceFullService.existsMicroServiceInstance("testService", "v1")); + } catch (Exception e) { + assert false:"throw exception means error occured!"+e.getMessage(); + } + } + + + @Test + public void testSaveMicroServiceInfo2Redis(){ + MicroServiceFullInfo microServiceFullInfo = new MicroServiceFullInfo(); + microServiceFullInfo.setServiceName("testService"); + microServiceFullInfo.setVersion("v1"); + microServiceFullInfo.setStatus("1"); + microServiceFullInfo.setUrl("/testService/v1"); + microServiceFullInfo.setVisualRange("0"); + microServiceFullInfo.setProtocol("http"); + microServiceFullInfo.setEnable_ssl(false); + Set<Node> nodeSet = new HashSet<>(); + nodeSet.add(new Node("10.74.148.88","8080")); + microServiceFullInfo.setNodes(nodeSet); + try { + microServiceFullService.saveMicroServiceInfo2Redis(microServiceFullInfo); + MicroServiceFullInfo actual = microServiceFullService.getMicroServiceInstance("testService", "v1"); + assertEquals(microServiceFullInfo, actual); + } catch (Exception e) { + e.printStackTrace(); + assert false:"throw exception means error occured!"+e.getMessage(); + } + } + + @Test + public void testDeleteMicroService(){ + MicroServiceFullInfo microServiceFullInfo = new MicroServiceFullInfo(); + microServiceFullInfo.setServiceName("testService"); + microServiceFullInfo.setVersion("v1"); + microServiceFullInfo.setStatus("1"); + microServiceFullInfo.setUrl("/testService/v1"); + microServiceFullInfo.setVisualRange("0"); + microServiceFullInfo.setProtocol("http"); + microServiceFullInfo.setEnable_ssl(false); + Set<Node> nodeSet = new HashSet<>(); + nodeSet.add(new Node("10.74.148.88","8080")); + microServiceFullInfo.setNodes(nodeSet); + try { + microServiceFullService.saveMicroServiceInfo2Redis(microServiceFullInfo); + assertTrue(microServiceFullService.existsMicroServiceInstance("testService", "v1")); + microServiceFullService.deleteMicroService("testService","v1"); + assertFalse(microServiceFullService.existsMicroServiceInstance("testService", "v1")); + } catch (Exception e) { + assert false:"throw exception means error occured!"+e.getMessage(); + } + } + + + @Test + public void testUpdateMicroServiceStatus(){ + MicroServiceFullInfo microServiceFullInfo = new MicroServiceFullInfo(); + microServiceFullInfo.setServiceName("testService"); + microServiceFullInfo.setVersion("v1"); + microServiceFullInfo.setStatus("1"); + microServiceFullInfo.setUrl("/testService/v1"); + microServiceFullInfo.setVisualRange("0"); + microServiceFullInfo.setProtocol("http"); + microServiceFullInfo.setEnable_ssl(false); + Set<Node> nodeSet = new HashSet<>(); + nodeSet.add(new Node("10.74.148.88","8080")); + microServiceFullInfo.setNodes(nodeSet); + try { + microServiceFullService.saveMicroServiceInfo2Redis(microServiceFullInfo); + assertEquals("1", microServiceFullService.getMicroServiceInstance("testService","v1").getStatus()); + microServiceFullService.updateMicroServiceStatus("testService", "v1", "0"); + assertEquals("0", microServiceFullService.getMicroServiceInstance("testService", "v1").getStatus()); + } catch (Exception e) { + assert false:"throw exception means error occured!"+e.getMessage(); + } + } + + @Test + public void testGetAllMicroServiceKey(){ + MicroServiceFullInfo microServiceFullInfo = new MicroServiceFullInfo(); + microServiceFullInfo.setServiceName("testService"); + microServiceFullInfo.setVersion("v1"); + microServiceFullInfo.setStatus("1"); + microServiceFullInfo.setUrl("/testService/v1"); + microServiceFullInfo.setVisualRange("0"); + microServiceFullInfo.setProtocol("http"); + microServiceFullInfo.setEnable_ssl(false); + Set<Node> nodeSet = new HashSet<>(); + nodeSet.add(new Node("10.74.148.88","8080")); + microServiceFullInfo.setNodes(nodeSet); + + MicroServiceFullInfo microServiceFullInfo2 = new MicroServiceFullInfo(); + microServiceFullInfo2.setServiceName("testService2"); + microServiceFullInfo2.setVersion(""); + microServiceFullInfo2.setStatus("1"); + microServiceFullInfo2.setUrl("/testService2"); + microServiceFullInfo2.setVisualRange("0"); + microServiceFullInfo2.setProtocol("http"); + microServiceFullInfo2.setEnable_ssl(false); + Set<Node> nodeSet2 = new HashSet<>(); + nodeSet2.add(new Node("10.74.148.88","8081")); + microServiceFullInfo2.setNodes(nodeSet2); + + MicroServiceFullInfo microServiceFullInfo3 = new MicroServiceFullInfo(); + microServiceFullInfo3.setServiceName("testService"); + microServiceFullInfo3.setVersion("v2"); + microServiceFullInfo3.setStatus("1"); + microServiceFullInfo3.setUrl("/testService/v2"); + microServiceFullInfo3.setVisualRange("0"); + microServiceFullInfo3.setProtocol("http"); + microServiceFullInfo3.setEnable_ssl(false); + Set<Node> nodeSet3 = new HashSet<>(); + nodeSet3.add(new Node("10.74.148.89","8080")); + microServiceFullInfo3.setNodes(nodeSet3); + + try { + microServiceFullService.saveMicroServiceInfo2Redis(microServiceFullInfo); + microServiceFullService.saveMicroServiceInfo2Redis(microServiceFullInfo2); + microServiceFullService.saveMicroServiceInfo2Redis(microServiceFullInfo3); + + Set<String> result = microServiceFullService.getAllMicroServiceKey(); + final Set<String> expected =new HashSet<String>(); + expected.add("testService"); + expected.add("testService2"); + + assertEquals(expected, result); + } catch (Exception e) { + assert false:"throw exception means error occured!"+e.getMessage(); + } + + } + + @Test + public void testGetAllVersionsOfTheService(){ + MicroServiceFullInfo microServiceFullInfo = new MicroServiceFullInfo(); + microServiceFullInfo.setServiceName("testService"); + microServiceFullInfo.setVersion("v1"); + microServiceFullInfo.setStatus("1"); + microServiceFullInfo.setUrl("/testService/v1"); + microServiceFullInfo.setVisualRange("0"); + microServiceFullInfo.setProtocol("http"); + microServiceFullInfo.setEnable_ssl(false); + Set<Node> nodeSet = new HashSet<>(); + nodeSet.add(new Node("10.74.148.88","8080")); + microServiceFullInfo.setNodes(nodeSet); + + MicroServiceFullInfo microServiceFullInfo2 = new MicroServiceFullInfo(); + microServiceFullInfo2.setServiceName("testService2"); + microServiceFullInfo2.setVersion(""); + microServiceFullInfo2.setStatus("1"); + microServiceFullInfo2.setUrl("/testService2"); + microServiceFullInfo2.setVisualRange("0"); + microServiceFullInfo2.setProtocol("http"); + microServiceFullInfo2.setEnable_ssl(false); + Set<Node> nodeSet2 = new HashSet<>(); + nodeSet2.add(new Node("10.74.148.88","8081")); + microServiceFullInfo2.setNodes(nodeSet2); + + MicroServiceFullInfo microServiceFullInfo3 = new MicroServiceFullInfo(); + microServiceFullInfo3.setServiceName("testService"); + microServiceFullInfo3.setVersion("v2"); + microServiceFullInfo3.setStatus("1"); + microServiceFullInfo3.setUrl("/testService/v2"); + microServiceFullInfo3.setVisualRange("0"); + microServiceFullInfo3.setProtocol("http"); + microServiceFullInfo3.setEnable_ssl(false); + Set<Node> nodeSet3 = new HashSet<>(); + nodeSet3.add(new Node("10.74.148.89","8080")); + microServiceFullInfo3.setNodes(nodeSet3); + + try { + microServiceFullService.saveMicroServiceInfo2Redis(microServiceFullInfo); + microServiceFullService.saveMicroServiceInfo2Redis(microServiceFullInfo3); + microServiceFullService.saveMicroServiceInfo2Redis(microServiceFullInfo2); + + + List<MicroServiceFullInfo> result = microServiceFullService.getAllVersionsOfTheService("testService"); + + List<MicroServiceFullInfo> expected = new ArrayList<>(); + expected.add(microServiceFullInfo); + expected.add(microServiceFullInfo3); + + Collections.sort(expected,serviceComparator); + Collections.sort(result,serviceComparator); + assertEquals(expected, result); + } catch (Exception e) { + assert false:"throw exception means error occured!"+e.getMessage(); + } + + } + + @Test + public void testGetAllMicroServicesInstances(){ + MicroServiceFullInfo microServiceFullInfo = new MicroServiceFullInfo(); + microServiceFullInfo.setServiceName("testService"); + microServiceFullInfo.setVersion("v1"); + microServiceFullInfo.setStatus("1"); + microServiceFullInfo.setUrl("/testService/v1"); + microServiceFullInfo.setVisualRange("0"); + microServiceFullInfo.setProtocol("http"); + microServiceFullInfo.setEnable_ssl(false); + Set<Node> nodeSet = new HashSet<>(); + nodeSet.add(new Node("10.74.148.88","8080")); + microServiceFullInfo.setNodes(nodeSet); + + MicroServiceFullInfo microServiceFullInfo2 = new MicroServiceFullInfo(); + microServiceFullInfo2.setServiceName("testService2"); + microServiceFullInfo2.setVersion(""); + microServiceFullInfo2.setStatus("1"); + microServiceFullInfo2.setUrl("/testService/v1"); + microServiceFullInfo2.setVisualRange("0"); + microServiceFullInfo2.setProtocol("http"); + microServiceFullInfo2.setEnable_ssl(true); + Set<Node> nodeSet2 = new HashSet<>(); + nodeSet2.add(new Node("10.74.148.89","8080")); + microServiceFullInfo2.setNodes(nodeSet2); + + try { + microServiceFullService.saveMicroServiceInfo2Redis(microServiceFullInfo); + microServiceFullService.saveMicroServiceInfo2Redis(microServiceFullInfo2); + + List<MicroServiceFullInfo> expected = new ArrayList<MicroServiceFullInfo>(); + expected.add(microServiceFullInfo); + expected.add(microServiceFullInfo2); + List<MicroServiceFullInfo> result = microServiceFullService.getAllMicroServiceInstances(); + Collections.sort(expected, serviceComparator); + Collections.sort(result,serviceComparator ); + assertEquals(expected, result); + } catch (Exception e) { + e.printStackTrace(); + assert false:"throw exception means error occured!"+e.getMessage(); + } + } + + + @Test + public void testDeleteMultiMicroService(){ + MicroServiceFullInfo microServiceFullInfo = new MicroServiceFullInfo(); + microServiceFullInfo.setServiceName("testService"); + microServiceFullInfo.setVersion("v1"); + microServiceFullInfo.setStatus("1"); + microServiceFullInfo.setUrl("/testService/v1"); + microServiceFullInfo.setVisualRange("0"); + microServiceFullInfo.setProtocol("http"); + microServiceFullInfo.setEnable_ssl(false); + Set<Node> nodeSet = new HashSet<>(); + nodeSet.add(new Node("10.74.148.88","8080")); + microServiceFullInfo.setNodes(nodeSet); + + + MicroServiceFullInfo microServiceFullInfo3 = new MicroServiceFullInfo(); + microServiceFullInfo3.setServiceName("testService"); + microServiceFullInfo3.setVersion("v2"); + microServiceFullInfo3.setStatus("1"); + microServiceFullInfo3.setUrl("/testService/v2"); + microServiceFullInfo3.setVisualRange("0"); + microServiceFullInfo3.setProtocol("http"); + microServiceFullInfo3.setEnable_ssl(false); + Set<Node> nodeSet3 = new HashSet<>(); + nodeSet3.add(new Node("10.74.148.89","8080")); + microServiceFullInfo3.setNodes(nodeSet3); + + try { + microServiceFullService.saveMicroServiceInfo2Redis(microServiceFullInfo); + microServiceFullService.saveMicroServiceInfo2Redis(microServiceFullInfo3); + //two versions of testservice exist + assertEquals(2,microServiceFullService.getAllVersionsOfTheService("testService").size()); + //delete all versions of testservice + long size = microServiceFullService.deleteMultiMicroService(MicroServiceUtil.getPrefixedKey("testService","*")); + //after delete,no version exist + assertEquals(0,microServiceFullService.getAllVersionsOfTheService("testService").size()); + } catch (Exception e) { + assert false:"throw exception means error occured!"+e.getMessage(); + } + } + + @Test + public void tesGetMicroServiceInstance_notExist(){ + try { + assertNull(microServiceFullService.getMicroServiceInstance("notExist","v1")); + } catch (Exception e) { + assert false:"throw exception means error occured!"+e.getMessage(); + } + + } + @Test + public void tesExistsGetUpdateDeleteMicroServiceStatus_versionNull(){ + MicroServiceFullInfo microServiceFullInfo = new MicroServiceFullInfo(); + microServiceFullInfo.setServiceName("testService"); + microServiceFullInfo.setVersion(""); + microServiceFullInfo.setStatus("1"); + microServiceFullInfo.setUrl("/testService/v1"); + microServiceFullInfo.setVisualRange("0"); + microServiceFullInfo.setProtocol("http"); + microServiceFullInfo.setEnable_ssl(false); + Set<Node> nodeSet = new HashSet<>(); + nodeSet.add(new Node("10.74.148.88","8080")); + microServiceFullInfo.setNodes(nodeSet); + try { + //test null + assertFalse(microServiceFullService.existsMicroServiceInstance("testService", "null")); + microServiceFullService.saveMicroServiceInfo2Redis(microServiceFullInfo); + assertEquals("1", microServiceFullService.getMicroServiceInstance("testService","null").getStatus()); + microServiceFullService.updateMicroServiceStatus("testService", "null", "0"); + assertEquals("0", microServiceFullService.getMicroServiceInstance("testService", "null").getStatus()); + microServiceFullService.deleteMicroService("testService","null"); + assertFalse(microServiceFullService.existsMicroServiceInstance("testService", "null")); + + + //test String "null" + assertFalse(microServiceFullService.existsMicroServiceInstance("testService", null)); + microServiceFullService.saveMicroServiceInfo2Redis(microServiceFullInfo); + assertEquals("1", microServiceFullService.getMicroServiceInstance("testService",null).getStatus()); + microServiceFullService.updateMicroServiceStatus("testService", null, "0"); + assertEquals("0", microServiceFullService.getMicroServiceInstance("testService", null).getStatus()); + microServiceFullService.deleteMicroService("testService",null); + assertFalse(microServiceFullService.existsMicroServiceInstance("testService", null)); + } catch (Exception e) { + assert false:"throw exception means error occured!"+e.getMessage(); + } + } + + @Test(expected = Exception.class) + public void tesSaveMicroService_null() throws Exception { + microServiceFullService.saveMicroServiceInfo2Redis(null); + } +} |