ChefAdapterImpl- checkInfo junits
-Added junit tests for checkInfo method to verify if input params are present
-Support for Michal Kabaj as part of APPC-437
Change-Id: I29758f29f32354439ea0471e1afa3df6bb8184b9
Issue-ID: APPC-437
Signed-off-by: Tomasz Gwozdecki <tomasz.gwozdecki@nokia.com>
diff --git a/appc-adapters/appc-chef-adapter/appc-chef-adapter-bundle/src/test/java/org/onap/appc/adapter/chef/impl/ChefAdapterImplTest.java b/appc-adapters/appc-chef-adapter/appc-chef-adapter-bundle/src/test/java/org/onap/appc/adapter/chef/impl/ChefAdapterImplTest.java
index 9289330..62de292 100644
--- a/appc-adapters/appc-chef-adapter/appc-chef-adapter-bundle/src/test/java/org/onap/appc/adapter/chef/impl/ChefAdapterImplTest.java
+++ b/appc-adapters/appc-chef-adapter/appc-chef-adapter-bundle/src/test/java/org/onap/appc/adapter/chef/impl/ChefAdapterImplTest.java
@@ -21,6 +21,7 @@
import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
import static org.mockito.Answers.RETURNS_DEEP_STUBS;
import static org.mockito.BDDMockito.given;
@@ -38,6 +39,7 @@
import org.onap.appc.adapter.chef.chefclient.ChefApiClientFactory;
import org.onap.appc.adapter.chef.chefclient.api.ChefResponse;
import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
+import org.onap.ccsdk.sli.core.sli.SvcLogicException;
@RunWith(MockitoJUnitRunner.class)
public class ChefAdapterImplTest {
@@ -149,4 +151,45 @@
.isEqualTo(Integer.toString(HttpStatus.SC_INTERNAL_SERVER_ERROR));
assertThat(svcLogicContext.getAttribute(CHEF_AGENT_MESSAGE_KEY)).isEqualTo(new RuntimeException().toString());
}
-}
+
+ @Test
+ public void chefInfo_shouldUpdateSvcLogicContext_withFailStatusAndMsg_andThrowException_whenUsernameParamIsMissing() {
+ Map<String, String> params = ImmutableMap.of(
+ "serverAddress", "http://chefAddress",
+ "organizations", "onap");
+ checkIfInputParamsAreValidated(params);
+ }
+
+ @Test
+ public void chefInfo_shouldUpdateSvcLogicContext_withFailStatusAndMsg_andThrowException_whenServerAddressParamIsMissing() {
+ Map<String, String> params = ImmutableMap.of(
+ "username", "TestUsername",
+ "organizations", "onap");
+ checkIfInputParamsAreValidated(params);
+ }
+
+ @Test
+ public void chefInfo_shouldUpdateSvcLogicContext_withFailStatusAndMsg_andThrowException_whenOrganizationsParamIsMissing() {
+ Map<String, String> params = ImmutableMap.of(
+ "username", "TestUsername",
+ "serverAddress", "http://chefAddress");
+ checkIfInputParamsAreValidated(params);
+ }
+
+ private void checkIfInputParamsAreValidated(Map<String, String> params) {
+ // GIVEN
+ String expectedErrorMsg = "Missing mandatory param(s) such as username, serverAddress, organizations";
+ SvcLogicContext svcLogicContext = new SvcLogicContext();
+
+ // WHEN// THEN
+ assertThatExceptionOfType(SvcLogicException.class)
+ .isThrownBy(() -> chefAdapterFactory.create().chefGet(params, svcLogicContext))
+ .withMessage("Chef Adapter error:"
+ + expectedErrorMsg);
+ assertThat(svcLogicContext.getStatus()).isEqualTo("failure");
+ assertThat(svcLogicContext.getAttribute("chefServerResult.code"))
+ .isEqualTo(Integer.toString(HttpStatus.SC_UNAUTHORIZED));
+ assertThat(svcLogicContext.getAttribute("chefServerResult.message"))
+ .isEqualTo(expectedErrorMsg);
+ }
+}
\ No newline at end of file