Life Cycle Managment Updates 39/27839/2
authorDilip kumar Pampana <dp583p@att.com>
Wed, 10 Jan 2018 15:26:15 +0000 (10:26 -0500)
committerSkip Wonnell <skip@att.com>
Wed, 10 Jan 2018 16:47:56 +0000 (16:47 +0000)
Issue-ID: APPC-349
Change-Id: Ifdb7bf973c08374bea43c298005d88f2a9d15dd0
Signed-off-by: Dilip kumar Pampana <dp583p@att.com>
appc-lifecycle-management/appc-lifecycle-management-core/pom.xml
appc-lifecycle-management/state-machine-lib/src/main/java/org/onap/appc/statemachine/impl/StateMachineImpl.java
appc-lifecycle-management/state-machine-lib/src/main/java/org/onap/appc/statemachine/objects/State.java
appc-lifecycle-management/state-machine-lib/src/test/java/org/onap/appc/statemachine/impl/StateMachineFactoryTest.java
appc-lifecycle-management/state-machine-lib/src/test/java/org/onap/appc/statemachine/impl/StateMachineImplTest.java

index 82324ef..fdff185 100644 (file)
     <description>appc-lifecycle-management-core OSGi bundle project.</description>
 
     <dependencies>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+        </dependency>
         <dependency>
             <groupId>org.onap.appc</groupId>
             <artifactId>appc-lifecycle-management-api</artifactId>
index b562507..75864a9 100644 (file)
@@ -25,6 +25,7 @@
 package org.onap.appc.statemachine.impl;
 
 import java.util.HashSet;
+import java.util.List;
 import java.util.Set;
 
 import org.onap.appc.exceptions.InvalidInputException;
@@ -40,8 +41,8 @@ import org.onap.appc.statemachine.objects.Transition;
  * Implementation of StateMachine
  */
 public class StateMachineImpl implements StateMachine {
-    private static final String invalidInputFormat = "VNF State or incoming event is invalid. State = %s event = %s";
-    static final String toStringFormat = "StateMachineImpl{states=%s, events=%s}";
+    private static final String INVALID_INPUT_FORMAT = "VNF State or incoming event is invalid. State = %s event = %s";
+    static final String TO_STRING_FORMAT = "StateMachineImpl{states=%s, events=%s}";
 
     private final Set<State> states;
     private final Set<Event> events;
@@ -57,25 +58,28 @@ public class StateMachineImpl implements StateMachine {
     public StateMachineResponse handleEvent(State inputState, Event event) throws InvalidInputException{
 
         if(!validateInputs(inputState,event)){
-            throw new InvalidInputException(String.format(invalidInputFormat, inputState, event));
+            throw new InvalidInputException(String.format(INVALID_INPUT_FORMAT, inputState, event));
         }
 
         StateMachineResponse response = new StateMachineResponse();
         State currentState = null;
         State nextState = null;
-        for(State stateInSet:states){
+        for(State stateInSet : states){
             if(stateInSet.equals(inputState)){
                 currentState = stateInSet;
                 break;
             }
         }
         if (currentState != null) {
+            List<Transition> transitions = currentState.getTransitions();
+            if (transitions != null) {
             for (Transition transition : currentState.getTransitions()) {
                 if (event.equals(transition.getEvent())) {
                     nextState = transition.getNextState();
                 }
             }
         }
+      }
         if(nextState == null){
             response.setResponse(Response.NO_TRANSITION_DEFINED);
         }
@@ -98,6 +102,6 @@ public class StateMachineImpl implements StateMachine {
 
     @Override
     public String toString() {
-        return String.format(toStringFormat, states, events);
+        return String.format(TO_STRING_FORMAT, states, events);
     }
 }
index 117cd76..8f099b6 100644 (file)
@@ -67,9 +67,10 @@ public class State {
     }
 
     void addTransition(Transition transition) {
+        if (transition != null) {
         this.transitions.add(transition);
     }
-
+  }
     public List<Transition> getTransitions() {
         return transitions;
     }
index e35482e..f0867ae 100644 (file)
@@ -48,7 +48,7 @@ public class StateMachineFactoryTest {
                 new State("TestingState1"), new Event("TestingEvent1"), new State("TestingState2"));
 
         metadata = builder.build();
-    }
+      }
 
     @Test
     public void testGetStateMachine() throws Exception {
index a4a8b9f..6de952e 100644 (file)
@@ -36,6 +36,7 @@ import org.onap.appc.statemachine.objects.StateMachineMetadata;
 import org.onap.appc.statemachine.objects.StateMachineResponse;
 
 public class StateMachineImplTest {
+    private StateMachineMetadata.StateMachineMetadataBuilder builder;
     private StateMachineMetadata metadata;
     private StateMachineImpl stateMachine;
 
@@ -100,7 +101,7 @@ public class StateMachineImplTest {
     @Test
     public void testToString() throws Exception {
         Assert.assertEquals(
-                String.format(stateMachine.toStringFormat, metadata.getStates(), metadata.getEvents()),
+                String.format(stateMachine.TO_STRING_FORMAT, metadata.getStates(), metadata.getEvents()),
                 stateMachine.toString());
     }