diff options
4 files changed, 89 insertions, 37 deletions
diff --git a/appc-adapters/appc-chef-adapter/appc-chef-adapter-bundle/pom.xml b/appc-adapters/appc-chef-adapter/appc-chef-adapter-bundle/pom.xml index b18073810..91ed636c7 100644 --- a/appc-adapters/appc-chef-adapter/appc-chef-adapter-bundle/pom.xml +++ b/appc-adapters/appc-chef-adapter/appc-chef-adapter-bundle/pom.xml @@ -156,6 +156,10 @@ <groupId>org.mockito</groupId> <artifactId>mockito-core</artifactId> </dependency> + <dependency> + <groupId>org.assertj</groupId> + <artifactId>assertj-core</artifactId> + </dependency> <dependency> <groupId>org.onap.ccsdk.sli.core</groupId> diff --git a/appc-adapters/appc-chef-adapter/appc-chef-adapter-bundle/src/main/java/org/onap/appc/adapter/chef/impl/ChefAdapterImpl.java b/appc-adapters/appc-chef-adapter/appc-chef-adapter-bundle/src/main/java/org/onap/appc/adapter/chef/impl/ChefAdapterImpl.java index eb5ee7bde..69b57f7ce 100644 --- a/appc-adapters/appc-chef-adapter/appc-chef-adapter-bundle/src/main/java/org/onap/appc/adapter/chef/impl/ChefAdapterImpl.java +++ b/appc-adapters/appc-chef-adapter/appc-chef-adapter-bundle/src/main/java/org/onap/appc/adapter/chef/impl/ChefAdapterImpl.java @@ -115,28 +115,7 @@ public class ChefAdapterImpl implements ChefAdapter { * This default constructor is used as a work around because the activator wasnt getting called */ public ChefAdapterImpl() { - initialize(); - } - - public ChefAdapterImpl(Properties props) { - initialize(); - } - - /** - * This constructor is used primarily in the test cases to bypass initialization of the adapter for isolated, - * disconnected testing - * - * @param initialize True if the adapter is to be initialized, can false if not - */ - - public ChefAdapterImpl(boolean initialize) { - if (initialize) { - initialize(); - } - } - - public ChefAdapterImpl(String key) { - initialize(); + logger.info("Initialize Chef Adapter"); } @SuppressWarnings("nls") @@ -394,12 +373,9 @@ public class ChefAdapterImpl implements ChefAdapter { String nodeObject = "{\"json_class\":\"Chef::Node\",\"default\":{" + defaults + "},\"chef_type\":\"node\",\"run_list\":[" + runList + "],\"override\":{" + overrides + "},\"normal\": {" + normal + "},\"automatic\":{},\"name\":\"" + name + "\",\"chef_environment\":\"" - + chefEnvironment + "\"}"; + + chefEnvironment + "\",}"; logger.info(nodeObject); - RequestContext rc = new RequestContext(ctx); - rc.isAlive(); - SvcLogicContext svcLogic = rc.getSvcLogicContext(); - svcLogic.setAttribute("chef.nodeObject", nodeObject); + ctx.setAttribute("chef.nodeObject", nodeObject); } /** @@ -757,15 +733,6 @@ public class ChefAdapterImpl implements ChefAdapter { logger.info(messageStr + ": " + svcLogic.getAttribute(messageStr)); } - - /** - * initialize the provider adapter by building the context cache - */ - private void initialize() { - - logger.info("Initialize Chef Adapter"); - } - @SuppressWarnings("static-method") private void doFailure(SvcLogicContext svcLogic, int code, String message) throws SvcLogicException { 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 new file mode 100644 index 000000000..c4c3e3089 --- /dev/null +++ b/appc-adapters/appc-chef-adapter/appc-chef-adapter-bundle/src/test/java/org/onap/appc/adapter/chef/impl/ChefAdapterImplTest.java @@ -0,0 +1,81 @@ +/* + * ============LICENSE_START======================================================= + * ONAP : APPC + * ================================================================================ + * Copyright (C) 2018 Nokia. All rights reserved. + * ============================================================================= + * 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.adapter.chef.impl; + + +import static org.assertj.core.api.Assertions.assertThat; + +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; +import java.util.Collections; +import java.util.Map; +import org.json.JSONObject; +import org.junit.Test; +import org.onap.appc.adapter.chef.ChefAdapter; +import org.onap.ccsdk.sli.core.sli.SvcLogicContext; + +public class ChefAdapterImplTest { + + private static final String EXPECTED_NODE_OBJECT_ATTR_NAME = "chef.nodeObject"; + + @Test + public void nodeObjectBuilder_shouldBuildJsonNodeObject_forPassedParams_andAddToSvcLogicContext() { + // GIVEN + Map<String, String> params = givenInputParams(); + + // WHEN + ChefAdapter chefAdapter = new ChefAdapterImpl(); + SvcLogicContext svcLogicContext = new SvcLogicContext(); + chefAdapter.nodeObejctBuilder(params, svcLogicContext); + + // THEN + assertThat(resultJson(svcLogicContext)).isEqualTo(expectedJson()); + } + + private String resultJson(SvcLogicContext svcLogicContext) { + String resultJsonString = svcLogicContext.getAttribute(EXPECTED_NODE_OBJECT_ATTR_NAME); + return new JSONObject(resultJsonString).toString(); + } + + private Map<String, String> givenInputParams() { + return ImmutableMap.<String, String>builder() + .put("nodeobject.name", "testNodeName") + .put("nodeobject.normal", "val:normal") + .put("nodeobject.overrides", "val:override") + .put("nodeobject.defaults", "val:default") + .put("nodeobject.run_list", "val1,val2,val3") + .put("nodeobject.chef_environment", "testChefEnvVal") + .build(); + } + + private String expectedJson() { + JSONObject expectedJson = new JSONObject(); + expectedJson.put("json_class", "Chef::Node"); + expectedJson.put("chef_type", "node"); + expectedJson.put("automatic", Collections.emptyMap()); + expectedJson.put("name", "testNodeName"); + expectedJson.put("normal", ImmutableMap.of("val", "normal")); + expectedJson.put("override", ImmutableMap.of("val", "override")); + expectedJson.put("default", ImmutableMap.of("val", "default")); + expectedJson.put("run_list", ImmutableList.of("val1", "val2", "val3")); + expectedJson.put("chef_environment", "testChefEnvVal"); + return expectedJson.toString(); + } +}
\ No newline at end of file diff --git a/appc-adapters/appc-chef-adapter/appc-chef-adapter-bundle/src/test/java/org/onap/appc/adapter/chef/impl/TestChefAdapterImpl.java b/appc-adapters/appc-chef-adapter/appc-chef-adapter-bundle/src/test/java/org/onap/appc/adapter/chef/impl/TestChefAdapterImpl.java index d5a5d8cd0..d5eb0af36 100644 --- a/appc-adapters/appc-chef-adapter/appc-chef-adapter-bundle/src/test/java/org/onap/appc/adapter/chef/impl/TestChefAdapterImpl.java +++ b/appc-adapters/appc-chef-adapter/appc-chef-adapter-bundle/src/test/java/org/onap/appc/adapter/chef/impl/TestChefAdapterImpl.java @@ -48,7 +48,7 @@ public class TestChefAdapterImpl { @Before public void setup() { - adapter = new ChefAdapterImpl(Boolean.TRUE); + adapter = new ChefAdapterImpl(); params = new HashMap<>(); params.put("pemPath", "/src/test/resources/testclient.pem"); |