From dd4f9dd3da8f74dd14c2eb92a138f90a47f3f079 Mon Sep 17 00:00:00 2001 From: kurczews Date: Tue, 27 Feb 2018 08:55:57 +0100 Subject: Improve coverage flow/controller/node #4 Issue-ID: APPC-440 Change-Id: Iee74ce27c3978d265fccc79dacaf8df965768a36 Signed-off-by: kurczews --- .../appc/flow/controller/node/FlowGenerator.java | 86 ++++++++++++---------- .../flow/controller/node/FlowGeneratorTest.java | 54 ++++++++++++++ 2 files changed, 103 insertions(+), 37 deletions(-) create mode 100644 appc-config/appc-flow-controller/provider/src/test/java/org/onap/appc/flow/controller/node/FlowGeneratorTest.java (limited to 'appc-config/appc-flow-controller') diff --git a/appc-config/appc-flow-controller/provider/src/main/java/org/onap/appc/flow/controller/node/FlowGenerator.java b/appc-config/appc-flow-controller/provider/src/main/java/org/onap/appc/flow/controller/node/FlowGenerator.java index e4372c06f..0d64238fa 100644 --- a/appc-config/appc-flow-controller/provider/src/main/java/org/onap/appc/flow/controller/node/FlowGenerator.java +++ b/appc-config/appc-flow-controller/provider/src/main/java/org/onap/appc/flow/controller/node/FlowGenerator.java @@ -22,6 +22,10 @@ package org.onap.appc.flow.controller.node; +import static org.onap.appc.flow.controller.utils.FlowControllerConstants.ACTION_LEVEL; +import static org.onap.appc.flow.controller.utils.FlowControllerConstants.PAYLOAD; +import static org.onap.appc.flow.controller.utils.FlowControllerConstants.REQUEST_ACTION; + import com.att.eelf.configuration.EELFLogger; import com.att.eelf.configuration.EELFManager; import java.util.ArrayList; @@ -31,44 +35,52 @@ import org.onap.appc.flow.controller.data.Response; import org.onap.appc.flow.controller.data.ResponseAction; import org.onap.appc.flow.controller.data.Transaction; import org.onap.appc.flow.controller.data.Transactions; -import org.onap.appc.flow.controller.utils.FlowControllerConstants; import org.onap.ccsdk.sli.core.sli.SvcLogicContext; public class FlowGenerator { - - private static final EELFLogger log = EELFManager.getInstance().getLogger(FlowGenerator.class); - - public Transactions createSingleStepModel(Map inParams, SvcLogicContext ctx) { - - log.debug("Starting generating single Step flow" ); - log.debug("Data in context" + ctx.getAttributeKeySet() ); - - Transaction singleTransaction = new Transaction(); - singleTransaction.setTransactionId(1); - singleTransaction.setAction(ctx.getAttribute(FlowControllerConstants.REQUEST_ACTION)); - //Need to discuss how to get action level if not in request - singleTransaction.setActionLevel(FlowControllerConstants.VNF); - singleTransaction.setPayload(ctx.getAttribute(FlowControllerConstants.PAYLOAD)); - singleTransaction.setActionLevel(ctx.getAttribute(FlowControllerConstants.ACTION_LEVEL)); - - List responseList = new ArrayList<>(); - Response response = new Response(); - - ResponseAction ra = new ResponseAction(); - ra.setStop(true); - response.setResponseAction(ra); - - responseList.add(response); - singleTransaction.setResponses(responseList); - - List transactionList = new ArrayList<>(); - transactionList.add(singleTransaction); - - Transactions transactions = new Transactions(); - transactions.setTransactions(transactionList); - - log.debug("FlowGenerator.createSingleStepModel Sequence String" + transactions.toString()); - - return transactions; - } + + private static final EELFLogger log = EELFManager.getInstance().getLogger(FlowGenerator.class); + + public Transactions createSingleStepModel(Map inParams, SvcLogicContext ctx) { + + log.debug("Starting generating single Step flow"); + log.debug("Data in context" + ctx.getAttributeKeySet()); + + Transactions transactions = new Transactions(); + transactions.setTransactions(getTransactions(ctx)); + + log.debug("FlowGenerator.createSingleStepModel Sequence String" + transactions.toString()); + + return transactions; + } + + private List getTransactions(SvcLogicContext ctx) { + Transaction singleTransaction = new Transaction(); + singleTransaction.setTransactionId(1); + singleTransaction.setAction(ctx.getAttribute(REQUEST_ACTION)); + //Need to discuss how to get action level if not in request + singleTransaction.setPayload(ctx.getAttribute(PAYLOAD)); + singleTransaction.setActionLevel(ctx.getAttribute(ACTION_LEVEL)); + + singleTransaction.setResponses(getResponses()); + + List transactionList = new ArrayList<>(); + transactionList.add(singleTransaction); + + return transactionList; + } + + private List getResponses() { + + ResponseAction ra = new ResponseAction(); + ra.setStop(true); + + Response response = new Response(); + response.setResponseAction(ra); + + List responseList = new ArrayList<>(); + responseList.add(response); + + return responseList; + } } diff --git a/appc-config/appc-flow-controller/provider/src/test/java/org/onap/appc/flow/controller/node/FlowGeneratorTest.java b/appc-config/appc-flow-controller/provider/src/test/java/org/onap/appc/flow/controller/node/FlowGeneratorTest.java new file mode 100644 index 000000000..5981fc0b6 --- /dev/null +++ b/appc-config/appc-flow-controller/provider/src/test/java/org/onap/appc/flow/controller/node/FlowGeneratorTest.java @@ -0,0 +1,54 @@ +package org.onap.appc.flow.controller.node; + +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; +import static org.onap.appc.flow.controller.utils.FlowControllerConstants.ACTION_LEVEL; +import static org.onap.appc.flow.controller.utils.FlowControllerConstants.PAYLOAD; +import static org.onap.appc.flow.controller.utils.FlowControllerConstants.REQUEST_ACTION; + +import java.util.HashMap; +import java.util.List; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.onap.appc.flow.controller.data.Response; +import org.onap.appc.flow.controller.data.ResponseAction; +import org.onap.appc.flow.controller.data.Transaction; +import org.onap.ccsdk.sli.core.sli.SvcLogicContext; + +public class FlowGeneratorTest { + + private HashMap inParams; + private SvcLogicContext ctx; + + @Before + public void setUp() { + inParams = new HashMap<>(); + ctx = mock(SvcLogicContext.class); + } + + @Test + public void should_get_proper_transactions() { + when(ctx.getAttribute(REQUEST_ACTION)).thenReturn("some-request-action"); + when(ctx.getAttribute(ACTION_LEVEL)).thenReturn("some-action-level"); + when(ctx.getAttribute(PAYLOAD)).thenReturn("some-payload"); + + FlowGenerator flowGenerator = new FlowGenerator(); + List transactionsList = flowGenerator.createSingleStepModel(inParams, ctx).getTransactions(); + + Assert.assertEquals(1, transactionsList.size()); + + Transaction transaction = transactionsList.get(0); + Assert.assertEquals(1, transaction.getTransactionId()); + Assert.assertEquals("some-request-action", transaction.getAction()); + Assert.assertEquals("some-payload", transaction.getPayload()); + Assert.assertEquals("some-action-level", transaction.getActionLevel()); + + List responses = transaction.getResponses(); + Assert.assertEquals(1, responses.size()); + + ResponseAction responseAction = responses.get(0).getResponseAction(); + Assert.assertTrue(responseAction.isStop()); + } + +} \ No newline at end of file -- cgit 1.2.3-korg