diff options
Diffstat (limited to 'vid-app-common/src/test')
4 files changed, 127 insertions, 1 deletions
diff --git a/vid-app-common/src/test/java/org/onap/vid/mso/MsoUtilTest.java b/vid-app-common/src/test/java/org/onap/vid/mso/MsoUtilTest.java index 10456bebf..cfde52a56 100644 --- a/vid-app-common/src/test/java/org/onap/vid/mso/MsoUtilTest.java +++ b/vid-app-common/src/test/java/org/onap/vid/mso/MsoUtilTest.java @@ -26,6 +26,7 @@ import static org.assertj.core.api.Assertions.assertThat; import io.joshworks.restclient.http.HttpResponse; import org.onap.vid.testUtils.TestUtils; +import org.testng.annotations.DataProvider; import org.testng.annotations.Test; public class MsoUtilTest { @@ -67,4 +68,26 @@ public class MsoUtilTest { assertThat(result.getStatus()).isEqualTo(SC_OK); } + @DataProvider + public static Object[][] formatExceptionAdditionalInfo() { + return new Object[][]{ + {"message", "Http Code:400, message"}, + + {null, "Http Code:400"}, + + {"{\"requestError\":{\"serviceException\":{\"messageId\":\"SVC0002\",\"text\":\"message\"}}}", + "Http Code:400, \"messageId\":\"SVC0002\",\"text\":\"message\""}, + + {"{\"validJson\": \"Error: message\"}", "Http Code:400, {\"validJson\": \"Error: message\"}"}, + + {"{\"serviceException\":{\"messageId\":\"SVC0002\",\"text\":\"Error: message\"}}", + "Http Code:400, \"messageId\":\"SVC0002\",\"text\":\"Error: message\""}, + }; + } + + @Test(dataProvider = "formatExceptionAdditionalInfo") + public void formatExceptionAdditionalInfo_payloadWithError400_doNotReturnNull(String payload, String expected) { + assertThat(MsoUtil.formatExceptionAdditionalInfo(400, payload)) + .isEqualTo(expected); + } } diff --git a/vid-app-common/src/test/java/org/onap/vid/properties/FeatureSetsManagerTest.kt b/vid-app-common/src/test/java/org/onap/vid/properties/FeatureSetsManagerTest.kt new file mode 100644 index 000000000..9cf7aa662 --- /dev/null +++ b/vid-app-common/src/test/java/org/onap/vid/properties/FeatureSetsManagerTest.kt @@ -0,0 +1,101 @@ +package org.onap.vid.properties + +import org.hamcrest.CoreMatchers.* +import org.hamcrest.MatcherAssert.assertThat +import org.mockito.ArgumentMatchers.anyString +import org.mockito.InjectMocks +import org.mockito.Mock +import org.mockito.Mockito.* +import org.onap.vid.testUtils.TestUtils +import org.springframework.web.context.request.RequestContextHolder +import org.testng.annotations.BeforeMethod +import org.testng.annotations.Test +import org.togglz.core.manager.FeatureManager +import javax.servlet.ServletContext +import javax.servlet.http.Cookie +import javax.servlet.http.HttpServletRequest +import org.hamcrest.CoreMatchers.`is` as _is +import org.mockito.Mockito.`when` as _when + +class FeatureSetsManagerTest { + @Mock + lateinit var defaultFeatureManager: FeatureManager + @Mock + lateinit var servletContext: ServletContext + @Mock + lateinit var alternativeFeatureSetNameProvider: AlternativeFeatureSetNameProvider + @InjectMocks + lateinit var featureSetsManager: FeatureSetsManager + + private val alternativeFeatureSetNameFromCookie = AlternativeFeatureSetNameFromCookie() + + @BeforeMethod + fun setUp() { + TestUtils.initMockitoMocks(this) + } + + @Test + fun `isActive - without alternative features set name - delegates to default and no file loaded`() { + _when(defaultFeatureManager.isActive(Features.FLAG_1810_AAI_LOCAL_CACHE)).thenReturn(true) + _when(alternativeFeatureSetNameProvider.alternativeFeatureSetName).thenReturn(null) + + assertThat(featureSetsManager.isActive(Features.FLAG_1810_AAI_LOCAL_CACHE), _is(true)) + + verifyZeroInteractions(servletContext) // implies no other file loaded + verify(defaultFeatureManager, times(1)).isActive(Features.FLAG_1810_AAI_LOCAL_CACHE) + } + + @Test + fun `isActive - with alternative features set - brings flags from alternative`() { + _when(servletContext.getRealPath(anyString())).thenReturn(this.javaClass.getResource("/").path) + _when(alternativeFeatureSetNameProvider.alternativeFeatureSetName).thenReturn("example.features.properties") + + assertThat(featureSetsManager.isActive(Features.FLAG_1810_AAI_LOCAL_CACHE), _is(true)) + assertThat(featureSetsManager.isActive(Features.FLAG_1902_NEW_VIEW_EDIT), _is(false)) + verifyZeroInteractions(defaultFeatureManager) + } + + @Test + fun `isActive - with non-existing alternative features set - fallback is to all flags off`() { + _when(servletContext.getRealPath(anyString())).thenReturn(this.javaClass.getResource("/").path) + _when(alternativeFeatureSetNameProvider.alternativeFeatureSetName).thenReturn("non-existing") + + assertThat(featureSetsManager, not(nullValue())) + assertThat( + featureSetsManager.features.map { featureSetsManager.isActive(it) }, + not(hasItem(true)) + ) + } + + @Test + fun `valueFromCookie - given no request - return null`() { + assertThat(alternativeFeatureSetNameFromCookie.valueFromCookie(null), _is(nullValue())) + } + + @Test + fun `valueFromCookie - given request - return the correct cookie value`() { + val servletRequestMock = mock(HttpServletRequest::class.java) + _when(servletRequestMock.cookies).thenReturn(arrayOf(Cookie("features.set", "value"))) + + assertThat(alternativeFeatureSetNameFromCookie.valueFromCookie(servletRequestMock), _is("value")) + } + + @Test + fun `valueFromCookie - given request without cookies - return null`() { + val servletRequestMock = mock(HttpServletRequest::class.java) + _when(servletRequestMock.cookies).thenReturn(emptyArray()) + + assertThat(alternativeFeatureSetNameFromCookie.valueFromCookie(servletRequestMock), _is(nullValue())) + } + + @Test + fun `currentHttpRequest - when no current request - return null`() { + assertPrecondition() + assertThat(alternativeFeatureSetNameFromCookie.currentHttpRequest(), _is(nullValue())) + } + + private fun assertPrecondition() { + assertThat("precondition for test not met: static RequestContextHolder.getRequestAttributes should be null", + RequestContextHolder.getRequestAttributes(), _is(nullValue())) + } +} diff --git a/vid-app-common/src/test/java/org/onap/vid/services/AsyncInstantiationBusinessLogicTest.java b/vid-app-common/src/test/java/org/onap/vid/services/AsyncInstantiationBusinessLogicTest.java index 0749aaf82..a1e4af2c4 100644 --- a/vid-app-common/src/test/java/org/onap/vid/services/AsyncInstantiationBusinessLogicTest.java +++ b/vid-app-common/src/test/java/org/onap/vid/services/AsyncInstantiationBusinessLogicTest.java @@ -1223,7 +1223,8 @@ public class AsyncInstantiationBusinessLogicTest extends AsyncInstantiationBaseT String message = "Failed to create service instance"; return new Object[][]{ {500, message}, - {199, "{\"serviceException\":{\"messageId\":\"SVC2000\",\"text\":\"Error: " + message + "\"}}"} + {400, "{\"requestError\":{\"serviceException\":{\"messageId\":\"SVC0002\",\"text\":\"" + message + "\"}}}"}, + {199, "{\"serviceException\":{\"messageId\":\"SVC2000\",\"text\":\"Error: " + message + "\"}}"}, }; } diff --git a/vid-app-common/src/test/resources/example.features.properties b/vid-app-common/src/test/resources/example.features.properties new file mode 100644 index 000000000..e8ac3eb65 --- /dev/null +++ b/vid-app-common/src/test/resources/example.features.properties @@ -0,0 +1 @@ +FLAG_1810_AAI_LOCAL_CACHE=true
\ No newline at end of file |