X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=holmes-actions%2Fsrc%2Ftest%2Fjava%2Forg%2Fonap%2Fholmes%2Fcommon%2Fconfig%2FMicroServiceConfigTest.java;h=4b697b0cc3986b3a6df689236990d1ac5110e3fe;hb=9d2cccba20f32fe54e4ccf1f433f68b5cee95bd5;hp=b29e4905595c77edfc9efbe3693b0f59817a1e07;hpb=8eedabbb6faf3bc2ba10df850e68cf719cd6c8ad;p=holmes%2Fcommon.git diff --git a/holmes-actions/src/test/java/org/onap/holmes/common/config/MicroServiceConfigTest.java b/holmes-actions/src/test/java/org/onap/holmes/common/config/MicroServiceConfigTest.java index b29e490..4b697b0 100644 --- a/holmes-actions/src/test/java/org/onap/holmes/common/config/MicroServiceConfigTest.java +++ b/holmes-actions/src/test/java/org/onap/holmes/common/config/MicroServiceConfigTest.java @@ -16,51 +16,298 @@ package org.onap.holmes.common.config; +import static org.hamcrest.core.Is.is; import static org.hamcrest.core.IsEqual.equalTo; +import static org.hamcrest.core.IsNull.nullValue; import static org.junit.Assert.assertThat; import static org.junit.Assert.assertTrue; +import static org.onap.holmes.common.config.MicroServiceConfig.*; +import org.easymock.EasyMock; +import org.junit.Rule; import org.junit.Test; +import org.powermock.api.easymock.PowerMock; +import org.powermock.core.classloader.annotations.PowerMockIgnore; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.rule.PowerMockRule; +@PrepareForTest(MicroServiceConfig.class) +@PowerMockIgnore({"javax.ws.*"}) public class MicroServiceConfigTest { + @Rule + public PowerMockRule powerMockRule = new PowerMockRule(); + @Test public void getMsbServerAddrTest() { - System.setProperty("MSB_ADDR", "test"); - assertThat("http://test", equalTo(MicroServiceConfig.getMsbServerAddr())); - System.clearProperty("MSB_ADDR"); + System.setProperty(MSB_ADDR, "test:80"); + assertThat("http://test:80", equalTo(getMsbServerAddr())); + System.clearProperty(MicroServiceConfig.MSB_ADDR); } @Test public void getMsbServerIpTest() { - System.setProperty("MSB_ADDR", "10.54.23.79"); - assertThat("10.54.23.79", equalTo(MicroServiceConfig.getMsbServerIp())); - System.clearProperty("MSB_ADDR"); + System.setProperty(MSB_ADDR, "10.54.23.79:80"); + assertThat("10.54.23.79", equalTo(getMsbAddrInfo()[0])); + assertThat("80", equalTo(getMsbAddrInfo()[1])); + System.clearProperty(MSB_ADDR); } @Test - public void getMsbPortTest() { - System.setProperty("MSB_PORT", "110"); - assertTrue(110 == MicroServiceConfig.getMsbServerPort()); - System.clearProperty("MSB_PORT"); + public void getServiceIpTest() { + System.setProperty(HOSTNAME, "127.0.0.1"); + assertThat("127.0.0.1", equalTo(getServiceAddrInfo()[0])); + assertThat("80", equalTo(getServiceAddrInfo()[1])); + System.clearProperty(HOSTNAME); } @Test - public void getMsbPortTestNonnumeric() { - System.setProperty("MSB_PORT", "test"); - assertTrue(80 == MicroServiceConfig.getMsbServerPort()); - System.clearProperty("MSB_PORT"); + public void getConsulAddrInfoTest() { + System.setProperty(CONSUL_HOST, "127.0.0.1"); + assertThat("127.0.0.1:8500/v1/catalog/service/", equalTo(getConsulAddrInfo())); + System.clearProperty(CONSUL_HOST); } @Test - public void getMsbPortTestNullValue() { - assertTrue(80 == MicroServiceConfig.getMsbServerPort()); + public void getConfigBindingServiceAddrInfoTest_consul_not_exist() throws Exception { + PowerMock.mockStaticPartial(MicroServiceConfig.class, "execQuery", String.class); + PowerMock.expectPrivate(MicroServiceConfig.class, "execQuery", EasyMock.anyObject()) + .andThrow(new RuntimeException("Invalid URL.")); + + PowerMock.replayAll(); + + assertThat(getConfigBindingServiceAddrInfo(), is(nullValue())); + + PowerMock.verifyAll(); } @Test - public void getServiceIpTest() { - System.setProperty("SERVICE_IP", "test"); - assertThat("test", equalTo(MicroServiceConfig.getServiceIp())); - System.clearProperty("SERVICE_IP"); + public void getConfigBindingServiceAddrInfoTest_consul_exists() throws Exception { + PowerMock.mockStaticPartial(MicroServiceConfig.class, "execQuery", String.class); + PowerMock.expectPrivate(MicroServiceConfig.class, "execQuery", EasyMock.anyObject()) + .andReturn("[{\"ServiceAddress\": \"127.0.0.2\", \"ServicePort\": \"8080\"}]"); + System.setProperty(CONSUL_HOST, "127.0.0.1"); + + PowerMock.replayAll(); + + assertThat(getConfigBindingServiceAddrInfo(), equalTo("127.0.0.2:8080")); + + PowerMock.verifyAll(); + + System.clearProperty(CONSUL_HOST); + } + + @Test + public void getConfigBindingServiceAddrInfoTest_consul_exists_propertie_not_exist() throws Exception { + PowerMock.mockStaticPartial(MicroServiceConfig.class, "execQuery", String.class); + PowerMock.expectPrivate(MicroServiceConfig.class, "execQuery", EasyMock.anyObject()) + .andReturn("[{\"ServiceAddress\": \"127.0.0.2\"}]"); + System.setProperty(CONSUL_HOST, "127.0.0.1"); + + PowerMock.replayAll(); + + assertThat(getConfigBindingServiceAddrInfo(), is(nullValue())); + + PowerMock.verifyAll(); + + System.clearProperty(CONSUL_HOST); + } + + @Test + public void getServiceAddrInfoFromCBS_consul_not_exist() throws Exception { + PowerMock.mockStaticPartial(MicroServiceConfig.class, "execQuery", String.class); + PowerMock.expectPrivate(MicroServiceConfig.class, "execQuery", EasyMock.anyObject()) + .andThrow(new RuntimeException("Invalid URL.")).times(2); + + PowerMock.replayAll(); + + assertThat(getServiceAddrInfoFromCBS(HOSTNAME), is(nullValue())); + + PowerMock.verifyAll(); + } + + @Test + public void getServiceAddrInfoFromCBS_consul_exists_service_not_exist() throws Exception { + PowerMock.mockStaticPartial(MicroServiceConfig.class, "execQuery", String.class); + PowerMock.expectPrivate(MicroServiceConfig.class, "execQuery", EasyMock.anyObject()) + .andReturn("[{\"ServiceAddress\": \"127.0.0.2\", \"ServicePort\": \"8080\"}]"); + PowerMock.expectPrivate(MicroServiceConfig.class, "execQuery", EasyMock.anyObject()) + .andReturn("{}"); + + PowerMock.replayAll(); + + assertThat(getServiceAddrInfoFromCBS(HOSTNAME), is(nullValue())); + + PowerMock.verifyAll(); + } + + @Test + public void getServiceAddrInfoFromCBS_normal() throws Exception { + System.setProperty(HOSTNAME, "rule-mgmt"); + PowerMock.mockStaticPartial(MicroServiceConfig.class, "execQuery", String.class); + PowerMock.expectPrivate(MicroServiceConfig.class, "execQuery", EasyMock.anyObject()) + .andReturn("[{\"ServiceAddress\": \"127.0.0.2\", \"ServicePort\": \"8080\"}]"); + PowerMock.expectPrivate(MicroServiceConfig.class, "execQuery", EasyMock.anyObject()) + .andReturn("{\"rule-mgmt\": \"[\\\"127.0.0.3:5432\\\"]\"}"); + + PowerMock.replayAll(); + + assertThat(getServiceAddrInfoFromCBS("rule-mgmt"), equalTo("127.0.0.3:5432")); + + PowerMock.verifyAll(); + + System.clearProperty(HOSTNAME); + } + + @Test + public void getMsbAddrInfo_msb_registered() throws Exception { + System.setProperty(MSB_ADDR, "10.74.5.8:1545"); + PowerMock.mockStaticPartial(MicroServiceConfig.class, "execQuery", String.class); + PowerMock.expectPrivate(MicroServiceConfig.class, "execQuery", EasyMock.anyObject()) + .andReturn("[{\"ServiceAddress\": \"127.0.0.2\", \"ServicePort\": \"8080\"}]"); + PowerMock.expectPrivate(MicroServiceConfig.class, "execQuery", EasyMock.anyObject()) + .andReturn("{\"" + MSB_ADDR + "\": \"[\\\"127.0.0.3:5432\\\"]\"}"); + + PowerMock.replayAll(); + String[] msbInfo = getMsbAddrInfo(); + assertThat(msbInfo[0], equalTo("127.0.0.3")); + assertThat(msbInfo[1], equalTo("5432")); + + PowerMock.verifyAll(); + + System.clearProperty(MSB_ADDR); + } + + @Test + public void getMsbAddrInfo_msb_not_registered() throws Exception { + System.setProperty(MSB_ADDR, "10.74.5.8:1545"); + PowerMock.mockStaticPartial(MicroServiceConfig.class, "execQuery", String.class); + PowerMock.expectPrivate(MicroServiceConfig.class, "execQuery", EasyMock.anyObject()) + .andReturn("[{\"ServiceAddress\": \"127.0.0.2\", \"ServicePort\": \"8080\"}]"); + PowerMock.expectPrivate(MicroServiceConfig.class, "execQuery", EasyMock.anyObject()) + .andReturn("{}"); + + PowerMock.replayAll(); + String[] msbInfo = getMsbAddrInfo(); + assertThat(msbInfo[0], equalTo("10.74.5.8")); + assertThat(msbInfo[1], equalTo("1545")); + + PowerMock.verifyAll(); + + System.clearProperty(MSB_ADDR); + } + + @Test + public void getServiceAddrInfo_msb_registered() throws Exception { + System.setProperty(HOSTNAME, "rule-mgmt"); + PowerMock.mockStaticPartial(MicroServiceConfig.class, "execQuery", String.class); + PowerMock.expectPrivate(MicroServiceConfig.class, "execQuery", EasyMock.anyObject()) + .andReturn("[{\"ServiceAddress\": \"127.0.0.2\", \"ServicePort\": \"8080\"}]"); + PowerMock.expectPrivate(MicroServiceConfig.class, "execQuery", EasyMock.anyObject()) + .andReturn("{\"rule-mgmt\": \"[\\\"127.0.0.3:5432\\\"]\"}"); + + PowerMock.replayAll(); + String[] msbInfo = getServiceAddrInfo(); + assertThat(msbInfo[0], equalTo("127.0.0.3")); + assertThat(msbInfo[1], equalTo("5432")); + + PowerMock.verifyAll(); + + System.clearProperty(HOSTNAME); + } + + @Test + public void getServiceAddrInfo_msb_not_registered() throws Exception { + System.setProperty(HOSTNAME, "10.74.5.8:1545"); + PowerMock.mockStaticPartial(MicroServiceConfig.class, "execQuery", String.class); + PowerMock.expectPrivate(MicroServiceConfig.class, "execQuery", EasyMock.anyObject()) + .andReturn("[{\"ServiceAddress\": \"127.0.0.2\", \"ServicePort\": \"8080\"}]"); + PowerMock.expectPrivate(MicroServiceConfig.class, "execQuery", EasyMock.anyObject()) + .andReturn("{}"); + + PowerMock.replayAll(); + String[] msbInfo = getServiceAddrInfo(); + assertThat(msbInfo[0], equalTo("10.74.5.8")); + assertThat(msbInfo[1], equalTo("1545")); + + PowerMock.verifyAll(); + + System.clearProperty(HOSTNAME); + } + + @Test + public void getServiceAddrInfo_msb_not_registered_full_addr() throws Exception { + System.setProperty(HOSTNAME, "http://10.74.5.8:1545"); + PowerMock.mockStaticPartial(MicroServiceConfig.class, "execQuery", String.class); + PowerMock.expectPrivate(MicroServiceConfig.class, "execQuery", EasyMock.anyObject()) + .andReturn("[{\"ServiceAddress\": \"127.0.0.2\", \"ServicePort\": \"8080\"}]"); + PowerMock.expectPrivate(MicroServiceConfig.class, "execQuery", EasyMock.anyObject()) + .andReturn("{}"); + + PowerMock.replayAll(); + String[] msbInfo = getServiceAddrInfo(); + assertThat(msbInfo[0], equalTo("10.74.5.8")); + assertThat(msbInfo[1], equalTo("1545")); + + PowerMock.verifyAll(); + + System.clearProperty(MSB_ADDR); + } + + @Test + public void getServiceAddrInfo_msb_not_registered_no_port() throws Exception { + System.setProperty(HOSTNAME, "http://10.74.5.8"); + PowerMock.mockStaticPartial(MicroServiceConfig.class, "execQuery", String.class); + PowerMock.expectPrivate(MicroServiceConfig.class, "execQuery", EasyMock.anyObject()) + .andReturn("[{\"ServiceAddress\": \"127.0.0.2\", \"ServicePort\": \"8080\"}]"); + PowerMock.expectPrivate(MicroServiceConfig.class, "execQuery", EasyMock.anyObject()) + .andReturn("{}"); + + PowerMock.replayAll(); + String[] msbInfo = getServiceAddrInfo(); + assertThat(msbInfo[0], equalTo("10.74.5.8")); + assertThat(msbInfo[1], equalTo("80")); + + PowerMock.verifyAll(); + + System.clearProperty(MSB_ADDR); + } + + @Test + public void getServiceAddrInfo_msb_not_registered_only_ip() throws Exception { + System.setProperty(HOSTNAME, "10.74.5.8"); + PowerMock.mockStaticPartial(MicroServiceConfig.class, "execQuery", String.class); + PowerMock.expectPrivate(MicroServiceConfig.class, "execQuery", EasyMock.anyObject()) + .andReturn("[{\"ServiceAddress\": \"127.0.0.2\", \"ServicePort\": \"8080\"}]"); + PowerMock.expectPrivate(MicroServiceConfig.class, "execQuery", EasyMock.anyObject()) + .andReturn("{}"); + + PowerMock.replayAll(); + String[] msbInfo = getServiceAddrInfo(); + assertThat(msbInfo[0], equalTo("10.74.5.8")); + assertThat(msbInfo[1], equalTo("80")); + + PowerMock.verifyAll(); + + System.clearProperty(MSB_ADDR); + } + + @Test + public void getServiceAddrInfo_msb_not_registered_full_addr_https() throws Exception { + System.setProperty(HOSTNAME, "https://10.74.5.8:5432"); + PowerMock.mockStaticPartial(MicroServiceConfig.class, "execQuery", String.class); + PowerMock.expectPrivate(MicroServiceConfig.class, "execQuery", EasyMock.anyObject()) + .andReturn("[{\"ServiceAddress\": \"127.0.0.2\", \"ServicePort\": \"8080\"}]"); + PowerMock.expectPrivate(MicroServiceConfig.class, "execQuery", EasyMock.anyObject()) + .andReturn("{}"); + + PowerMock.replayAll(); + String[] msbInfo = getServiceAddrInfo(); + assertThat(msbInfo[0], equalTo("10.74.5.8")); + assertThat(msbInfo[1], equalTo("5432")); + + PowerMock.verifyAll(); + + System.clearProperty(MSB_ADDR); } } \ No newline at end of file