Improve coverage flow/controller/node #4 17/33117/3
authorkurczews <krzysztof.kurczewski@nokia.com>
Tue, 27 Feb 2018 07:55:57 +0000 (08:55 +0100)
committerPatrick Brady <pb071s@att.com>
Thu, 1 Mar 2018 08:30:27 +0000 (08:30 +0000)
Issue-ID: APPC-440
Change-Id: Iee74ce27c3978d265fccc79dacaf8df965768a36
Signed-off-by: kurczews <krzysztof.kurczewski@nokia.com>
appc-config/appc-flow-controller/provider/src/main/java/org/onap/appc/flow/controller/node/FlowGenerator.java
appc-config/appc-flow-controller/provider/src/test/java/org/onap/appc/flow/controller/node/FlowGeneratorTest.java [new file with mode: 0644]

index e4372c0..0d64238 100644 (file)
 
 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<String, String> 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<Response> responseList  = new ArrayList<>();
-        Response response = new Response();
-                
-        ResponseAction ra = new ResponseAction();                    
-        ra.setStop(true);
-        response.setResponseAction(ra);
-        
-        responseList.add(response);
-        singleTransaction.setResponses(responseList);
-
-        List<Transaction> 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<String, String> 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<Transaction> 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<Transaction> transactionList = new ArrayList<>();
+    transactionList.add(singleTransaction);
+
+    return transactionList;
+  }
+
+  private List<Response> getResponses() {
+
+    ResponseAction ra = new ResponseAction();
+    ra.setStop(true);
+
+    Response response = new Response();
+    response.setResponseAction(ra);
+
+    List<Response> 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 (file)
index 0000000..5981fc0
--- /dev/null
@@ -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<String, String> 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<Transaction> 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<Response> responses = transaction.getResponses();
+    Assert.assertEquals(1, responses.size());
+
+    ResponseAction responseAction = responses.get(0).getResponseAction();
+    Assert.assertTrue(responseAction.isStop());
+  }
+
+}
\ No newline at end of file