summaryrefslogtreecommitdiffstats
path: root/appc-lifecycle-management/state-machine-lib/src
diff options
context:
space:
mode:
Diffstat (limited to 'appc-lifecycle-management/state-machine-lib/src')
-rw-r--r--appc-lifecycle-management/state-machine-lib/src/main/java/org/openecomp/appc/statemachine/impl/StateMachineFactory.java6
-rw-r--r--appc-lifecycle-management/state-machine-lib/src/main/java/org/openecomp/appc/statemachine/impl/StateMachineImpl.java25
-rw-r--r--appc-lifecycle-management/state-machine-lib/src/main/java/org/openecomp/appc/statemachine/impl/readers/AppcOamMetaDataReader.java96
-rw-r--r--appc-lifecycle-management/state-machine-lib/src/main/java/org/openecomp/appc/statemachine/impl/readers/VnfMetaDataReader.java826
-rw-r--r--appc-lifecycle-management/state-machine-lib/src/main/java/org/openecomp/appc/statemachine/objects/Event.java32
-rw-r--r--appc-lifecycle-management/state-machine-lib/src/main/java/org/openecomp/appc/statemachine/objects/Response.java9
-rw-r--r--appc-lifecycle-management/state-machine-lib/src/main/java/org/openecomp/appc/statemachine/objects/State.java40
-rw-r--r--appc-lifecycle-management/state-machine-lib/src/main/java/org/openecomp/appc/statemachine/objects/Transition.java15
-rw-r--r--appc-lifecycle-management/state-machine-lib/src/test/java/org/openecomp/appc/statemachine/impl/StateMachineFactoryTest.java59
-rw-r--r--appc-lifecycle-management/state-machine-lib/src/test/java/org/openecomp/appc/statemachine/impl/StateMachineImplTest.java107
-rw-r--r--appc-lifecycle-management/state-machine-lib/src/test/java/org/openecomp/appc/statemachine/impl/readers/AppcOamMetaDataReaderTest.java74
-rw-r--r--appc-lifecycle-management/state-machine-lib/src/test/java/org/openecomp/appc/statemachine/impl/readers/VnfMetaDataReaderTest.java79
-rw-r--r--appc-lifecycle-management/state-machine-lib/src/test/java/org/openecomp/appc/statemachine/objects/EventTest.java70
-rw-r--r--appc-lifecycle-management/state-machine-lib/src/test/java/org/openecomp/appc/statemachine/objects/ResponseTest.java40
-rw-r--r--appc-lifecycle-management/state-machine-lib/src/test/java/org/openecomp/appc/statemachine/objects/StateMachineMetadataTest.java61
-rw-r--r--appc-lifecycle-management/state-machine-lib/src/test/java/org/openecomp/appc/statemachine/objects/StateMachineResponseTest.java71
-rw-r--r--appc-lifecycle-management/state-machine-lib/src/test/java/org/openecomp/appc/statemachine/objects/StateTest.java91
-rw-r--r--appc-lifecycle-management/state-machine-lib/src/test/java/org/openecomp/appc/statemachine/objects/TransitionTest.java57
18 files changed, 1253 insertions, 505 deletions
diff --git a/appc-lifecycle-management/state-machine-lib/src/main/java/org/openecomp/appc/statemachine/impl/StateMachineFactory.java b/appc-lifecycle-management/state-machine-lib/src/main/java/org/openecomp/appc/statemachine/impl/StateMachineFactory.java
index c4b49b7a1..3e38231b1 100644
--- a/appc-lifecycle-management/state-machine-lib/src/main/java/org/openecomp/appc/statemachine/impl/StateMachineFactory.java
+++ b/appc-lifecycle-management/state-machine-lib/src/main/java/org/openecomp/appc/statemachine/impl/StateMachineFactory.java
@@ -27,11 +27,13 @@ package org.openecomp.appc.statemachine.impl;
import org.openecomp.appc.statemachine.StateMachine;
import org.openecomp.appc.statemachine.objects.StateMachineMetadata;
-
+/**
+ * Factory of StateMachine
+ */
public class StateMachineFactory {
private StateMachineFactory(){
-
+ throw new IllegalAccessError("StateMachineFactory");
}
public static StateMachine getStateMachine(StateMachineMetadata metadata){
diff --git a/appc-lifecycle-management/state-machine-lib/src/main/java/org/openecomp/appc/statemachine/impl/StateMachineImpl.java b/appc-lifecycle-management/state-machine-lib/src/main/java/org/openecomp/appc/statemachine/impl/StateMachineImpl.java
index 9fc1233cd..f0cb4919b 100644
--- a/appc-lifecycle-management/state-machine-lib/src/main/java/org/openecomp/appc/statemachine/impl/StateMachineImpl.java
+++ b/appc-lifecycle-management/state-machine-lib/src/main/java/org/openecomp/appc/statemachine/impl/StateMachineImpl.java
@@ -36,11 +36,14 @@ import org.openecomp.appc.statemachine.objects.StateMachineMetadata;
import org.openecomp.appc.statemachine.objects.StateMachineResponse;
import org.openecomp.appc.statemachine.objects.Transition;
-
+/**
+ * Implementation of StateMachine
+ */
public class StateMachineImpl implements StateMachine {
+ private final String invalidInputFormat = "VNF State or incoming event is invalid. State = %s event = %s";
+ final String toStringFormat = "StateMachineImpl{states=%s, events=%s}";
private final Set<State> states;
-
private final Set<Event> events;
StateMachineImpl(StateMachineMetadata metadata){
@@ -50,14 +53,16 @@ public class StateMachineImpl implements StateMachine {
this.events.addAll(metadata.getEvents());
}
+ @Override
public StateMachineResponse handleEvent(State inputState, Event event) throws InvalidInputException{
if(!validateInputs(inputState,event)){
- throw new InvalidInputException("VNF State or incoming event is invalid. State = " +inputState + " event = " + event );
+ throw new InvalidInputException(String.format(invalidInputFormat, inputState, event));
}
StateMachineResponse response = new StateMachineResponse();
- State currentState = null,nextState = null;
+ State currentState = null;
+ State nextState = null;
for(State stateInSet:states){
if(stateInSet.equals(inputState)){
currentState = stateInSet;
@@ -84,15 +89,15 @@ public class StateMachineImpl implements StateMachine {
return response;
}
- private boolean validateInputs(State state,Event event) {
- return state != null && event != null && this.states.contains(state) && this.events.contains(event);
+ boolean validateInputs(State state,Event event) {
+ return state != null
+ && event != null
+ && this.states.contains(state)
+ && this.events.contains(event);
}
@Override
public String toString() {
- return "StateMachineImpl{" +
- "states=" + states +
- ", events=" + events +
- '}';
+ return String.format(toStringFormat, states, events);
}
}
diff --git a/appc-lifecycle-management/state-machine-lib/src/main/java/org/openecomp/appc/statemachine/impl/readers/AppcOamMetaDataReader.java b/appc-lifecycle-management/state-machine-lib/src/main/java/org/openecomp/appc/statemachine/impl/readers/AppcOamMetaDataReader.java
index 3c1f0945d..637136bed 100644
--- a/appc-lifecycle-management/state-machine-lib/src/main/java/org/openecomp/appc/statemachine/impl/readers/AppcOamMetaDataReader.java
+++ b/appc-lifecycle-management/state-machine-lib/src/main/java/org/openecomp/appc/statemachine/impl/readers/AppcOamMetaDataReader.java
@@ -29,8 +29,14 @@ import org.openecomp.appc.statemachine.objects.Event;
import org.openecomp.appc.statemachine.objects.State;
import org.openecomp.appc.statemachine.objects.StateMachineMetadata;
+/**
+ * Reader for APPC OAM MetaData
+ */
public class AppcOamMetaDataReader implements StateMetaDataReader {
+ /**
+ * APPC Operation Enum
+ */
public enum AppcOperation {
MaintenanceMode,
Restart,
@@ -40,67 +46,67 @@ public class AppcOamMetaDataReader implements StateMetaDataReader {
@Override
public StateMachineMetadata readMetadata() {
- State NOT_INSTANTIATED = new State(AppcOamStates.NotInstantiated.toString());
- State INSTANTIATED = new State(AppcOamStates.Instantiated.toString());
- State RESTARTING = new State(AppcOamStates.Restarting.toString());
- State STARTING = new State(AppcOamStates.Starting.toString());
- State STARTED = new State(AppcOamStates.Started.toString());
- State ENTERING_MAINTENANCE_MODE = new State(AppcOamStates.EnteringMaintenanceMode.toString());
- State MAINTENANCE_MODE = new State(AppcOamStates.MaintenanceMode.toString());
- State ERROR = new State(AppcOamStates.Error.toString());
- State UNKNOWN = new State(AppcOamStates.Unknown.toString());
- State STOPPING = new State(AppcOamStates.Stopping.toString());
- State STOPPED = new State(AppcOamStates.Stopped.toString());
+ State notInstantiated = new State(AppcOamStates.NotInstantiated.toString());
+ State instantiated = new State(AppcOamStates.Instantiated.toString());
+ State restarting = new State(AppcOamStates.Restarting.toString());
+ State starting = new State(AppcOamStates.Starting.toString());
+ State started = new State(AppcOamStates.Started.toString());
+ State enteringMaintenanceMode = new State(AppcOamStates.EnteringMaintenanceMode.toString());
+ State maintenanceMode = new State(AppcOamStates.MaintenanceMode.toString());
+ State error = new State(AppcOamStates.Error.toString());
+ State unknown = new State(AppcOamStates.Unknown.toString());
+ State stopping = new State(AppcOamStates.Stopping.toString());
+ State stopped = new State(AppcOamStates.Stopped.toString());
- Event START = new Event(AppcOperation.Start.toString());
- Event STOP = new Event(AppcOperation.Stop.toString());
- Event MAINTENANCE_MODE_EVENT = new Event(AppcOperation.MaintenanceMode.toString());
- Event RESTART = new Event(AppcOperation.Restart.toString());
+ Event start = new Event(AppcOperation.Start.toString());
+ Event stop = new Event(AppcOperation.Stop.toString());
+ Event maintenanceModeEvent = new Event(AppcOperation.MaintenanceMode.toString());
+ Event restart = new Event(AppcOperation.Restart.toString());
StateMachineMetadata.StateMachineMetadataBuilder builder = new StateMachineMetadata
.StateMachineMetadataBuilder();
- builder = builder.addState(NOT_INSTANTIATED);
- builder = builder.addState(INSTANTIATED);
- builder = builder.addState(STARTING);
- builder = builder.addState(STARTED);
- builder = builder.addState(ERROR);
- builder = builder.addState(UNKNOWN);
- builder = builder.addState(STOPPING);
- builder = builder.addState(STOPPED);
- builder = builder.addState(ENTERING_MAINTENANCE_MODE);
- builder = builder.addState(MAINTENANCE_MODE);
- builder = builder.addState(RESTARTING);
+ builder = builder.addState(notInstantiated);
+ builder = builder.addState(instantiated);
+ builder = builder.addState(starting);
+ builder = builder.addState(started);
+ builder = builder.addState(error);
+ builder = builder.addState(unknown);
+ builder = builder.addState(stopping);
+ builder = builder.addState(stopped);
+ builder = builder.addState(enteringMaintenanceMode);
+ builder = builder.addState(maintenanceMode);
+ builder = builder.addState(restarting);
- builder = builder.addEvent(START);
- builder = builder.addEvent(STOP);
- builder = builder.addEvent(RESTART);
- builder = builder.addEvent(MAINTENANCE_MODE_EVENT);
+ builder = builder.addEvent(start);
+ builder = builder.addEvent(stop);
+ builder = builder.addEvent(restart);
+ builder = builder.addEvent(maintenanceModeEvent);
/*
* for addTransition:
* param 1: current state; param 2: received command/request; param 3: new transition state
*/
// start
- builder = builder.addTransition(STOPPED, START, STARTING);
- builder = builder.addTransition(MAINTENANCE_MODE, START, STARTING);
- builder = builder.addTransition(ERROR, START, STARTING);
+ builder = builder.addTransition(stopped, start, starting);
+ builder = builder.addTransition(maintenanceMode, start, starting);
+ builder = builder.addTransition(error, start, starting);
// stop
- builder = builder.addTransition(STARTED, STOP, STOPPING);
- builder = builder.addTransition(STARTING, STOP, STOPPING);
- builder = builder.addTransition(ENTERING_MAINTENANCE_MODE, STOP, STOPPING);
- builder = builder.addTransition(MAINTENANCE_MODE, STOP, STOPPING);
- builder = builder.addTransition(ERROR, STOP, STOPPING);
+ builder = builder.addTransition(started, stop, stopping);
+ builder = builder.addTransition(starting, stop, stopping);
+ builder = builder.addTransition(enteringMaintenanceMode, stop, stopping);
+ builder = builder.addTransition(maintenanceMode, stop, stopping);
+ builder = builder.addTransition(error, stop, stopping);
// maintenance mode
builder = builder.addTransition(
- STARTED, MAINTENANCE_MODE_EVENT, ENTERING_MAINTENANCE_MODE);
+ started, maintenanceModeEvent, enteringMaintenanceMode);
// restart
- builder = builder.addTransition(STOPPED, RESTART, RESTARTING);
- builder = builder.addTransition(STARTING, RESTART, RESTARTING);
- builder = builder.addTransition(STARTED, RESTART, RESTARTING);
- builder = builder.addTransition(ENTERING_MAINTENANCE_MODE, RESTART, RESTARTING);
- builder = builder.addTransition(MAINTENANCE_MODE, RESTART, RESTARTING);
- builder = builder.addTransition(ERROR, RESTART, RESTARTING);
+ builder = builder.addTransition(stopped, restart, restarting);
+ builder = builder.addTransition(starting, restart, restarting);
+ builder = builder.addTransition(started, restart, restarting);
+ builder = builder.addTransition(enteringMaintenanceMode, restart, restarting);
+ builder = builder.addTransition(maintenanceMode, restart, restarting);
+ builder = builder.addTransition(error, restart, restarting);
return builder.build();
}
diff --git a/appc-lifecycle-management/state-machine-lib/src/main/java/org/openecomp/appc/statemachine/impl/readers/VnfMetaDataReader.java b/appc-lifecycle-management/state-machine-lib/src/main/java/org/openecomp/appc/statemachine/impl/readers/VnfMetaDataReader.java
index 8f2a69f84..cd573918b 100644
--- a/appc-lifecycle-management/state-machine-lib/src/main/java/org/openecomp/appc/statemachine/impl/readers/VnfMetaDataReader.java
+++ b/appc-lifecycle-management/state-machine-lib/src/main/java/org/openecomp/appc/statemachine/impl/readers/VnfMetaDataReader.java
@@ -30,8 +30,14 @@ import org.openecomp.appc.statemachine.objects.Event;
import org.openecomp.appc.statemachine.objects.State;
import org.openecomp.appc.statemachine.objects.StateMachineMetadata;
+/**
+ * Reader for VNF MetaData
+ */
public class VnfMetaDataReader implements StateMetaDataReader {
+ /**
+ * VNF Operations
+ */
public enum VNFOperation {
Configure, Test, HealthCheck, Start, Terminate, Restart, Rebuild, Stop, ConfigModify,
@@ -51,10 +57,15 @@ public class VnfMetaDataReader implements StateMetaDataReader {
}
}
- private enum VNFStates {
- Not_Instantiated, Instantiated, Configuring, Configured, Testing, Tested, Rebuilding, Restarting, Starting,
+ /**
+ * VNF States
+ */
+ enum VNFStates {
+ Not_Instantiated, Instantiated, Configuring, Configured, Testing, Tested,
+ Rebuilding, Restarting, Starting,
Error, Running, Unknown, Terminating, Stopping, Stopped,
- Backing_Up, Snapshotting, Software_Uploading, Upgrading, Rollbacking, Licensing, Migrating, Evacuating,
+ Backing_Up, Snapshotting, Software_Uploading, Upgrading,
+ Rollbacking, Licensing, Migrating, Evacuating,
NOT_ORCHESTRATED("NOT ORCHESTRATED"), Created;
String stateName;
@@ -73,411 +84,410 @@ public class VnfMetaDataReader implements StateMetaDataReader {
}
}
+ @Override
public StateMachineMetadata readMetadata() {
- {
- State NOT_INSTANTIATED = new State(VNFStates.Not_Instantiated.toString());
- State INSTANTIATED = new State(VNFStates.Instantiated.toString());
- State CONFIGURING = new State(VNFStates.Configuring.toString());
- State CONFIGURED = new State(VNFStates.Configured.toString());
- State TESTING = new State(VNFStates.Testing.toString());
- State TESTED = new State(VNFStates.Tested.toString());
- State REBUILDING = new State(VNFStates.Rebuilding.toString());
- State RESTARTING = new State(VNFStates.Restarting.toString());
- State STARTING = new State(VNFStates.Starting.toString());
- State ERROR = new State(VNFStates.Error.toString());
- State RUNNING = new State(VNFStates.Running.toString());
- State UNKNOWN = new State(VNFStates.Unknown.toString());
- State TERMINATING = new State(VNFStates.Terminating.toString());
- State STOPPING = new State(VNFStates.Stopping.toString());
- State STOPPED = new State(VNFStates.Stopped.toString());
- State NOT_ORCHESTRATED = new State(VNFStates.NOT_ORCHESTRATED.toString());
-
- State BACKING_UP = new State(VNFStates.Backing_Up.toString());
- State SNAPSHOTTING = new State(VNFStates.Snapshotting.toString());
- State SOFTWARE_UPLOADING = new State(VNFStates.Software_Uploading.toString());
- State UPGRADING = new State(VNFStates.Upgrading.toString());
- State ROLLBACKING = new State(VNFStates.Rollbacking.toString());
-
- State MIGRATING = new State(VNFStates.Migrating.toString());
- State EVACUATING = new State(VNFStates.Evacuating.toString());
- State CREATED= new State(VNFStates.Created.toString());
-
- Event START_APPLICATION = new Event(VNFOperation.StartApplication.toString());
- Event CONFIGURE = new Event(VNFOperation.Configure.toString());
- Event HEALTHCHECK = new Event(VNFOperation.HealthCheck.toString());
- Event TEST = new Event(VNFOperation.Test.toString());
- Event START = new Event(VNFOperation.Start.toString());
- Event TERMINATE = new Event(VNFOperation.Terminate.toString());
- Event RESTART = new Event(VNFOperation.Restart.toString());
- Event REBUILD = new Event(VNFOperation.Rebuild.toString());
- Event STOP = new Event(VNFOperation.Stop.toString());
- Event CONFIG_MODIFY = new Event(VNFOperation.ConfigModify.toString());
- Event CONFIG_SCALEOUT = new Event(VNFOperation.ConfigScaleOut.toString());
- Event CONFIG_RESTORE = new Event(VNFOperation.ConfigRestore.toString());
- Event BACKUP = new Event(VNFOperation.Backup.toString());
- Event SNAPSHOT = new Event(VNFOperation.Snapshot.toString());
- Event SOFTWARE_UPLOAD = new Event(VNFOperation.SoftwareUpload.toString());
- Event LIVE_UPGRADE = new Event(VNFOperation.LiveUpgrade.toString());
- Event ROLLBACK = new Event(VNFOperation.Rollback.toString());
- Event SYNC = new Event(VNFOperation.Sync.toString());
- Event AUDIT = new Event(VNFOperation.Audit.toString());
- Event MIGRATE = new Event(VNFOperation.Migrate.toString());
- Event EVACUATE = new Event(VNFOperation.Evacuate.toString());
- Event CONFIG_BACKUP = new Event(VNFOperation.ConfigBackup.toString());
- Event CONFIG_BACKUP_DELETE = new Event(VNFOperation.ConfigBackupDelete.toString());
- Event CONFIG_EXPORT = new Event(VNFOperation.ConfigExport.toString());
- Event STOP_APPLICATION= new Event(VNFOperation.StopApplication.toString());
-
- Event LOCK = new Event(VNFOperation.Lock.toString());
- Event UNLOCK = new Event(VNFOperation.Unlock.toString());
- Event CHECKLOCK = new Event(VNFOperation.CheckLock.toString());
-
- Event SUCCESS = new Event(VNFOperationOutcome.SUCCESS.toString());
- Event FAILURE = new Event(VNFOperationOutcome.FAILURE.toString());
-
-
- StateMachineMetadata.StateMachineMetadataBuilder builder = new StateMachineMetadata.StateMachineMetadataBuilder();
-
- builder = builder.addState(NOT_INSTANTIATED);
- builder = builder.addState(INSTANTIATED);
- builder = builder.addState(CONFIGURING);
- builder = builder.addState(CONFIGURED);
- builder = builder.addState(TESTING);
- builder = builder.addState(TESTED);
- builder = builder.addState(REBUILDING);
- builder = builder.addState(RESTARTING);
- builder = builder.addState(STARTING);
- builder = builder.addState(ERROR);
- builder = builder.addState(RUNNING);
- builder = builder.addState(UNKNOWN);
- builder = builder.addState(TERMINATING);
- builder = builder.addState(STOPPING);
- builder = builder.addState(STOPPED);
-
- builder = builder.addState(BACKING_UP);
- builder = builder.addState(SNAPSHOTTING);
- builder = builder.addState(SOFTWARE_UPLOADING);
- builder = builder.addState(UPGRADING);
- builder = builder.addState(ROLLBACKING);
- builder = builder.addState(MIGRATING);
- builder = builder.addState(EVACUATING);
- builder = builder.addState(NOT_ORCHESTRATED);
- builder = builder.addState(CREATED);
- builder = builder.addEvent(START_APPLICATION);
- builder = builder.addEvent(CONFIGURE);
- builder = builder.addEvent(TEST);
- builder = builder.addEvent(START);
- builder = builder.addEvent(TERMINATE);
- builder = builder.addEvent(RESTART);
- builder = builder.addEvent(REBUILD);
- builder = builder.addEvent(SUCCESS);
- builder = builder.addEvent(FAILURE);
- builder = builder.addEvent(STOP);
- builder = builder.addEvent(CONFIG_MODIFY);
- builder = builder.addEvent(CONFIG_SCALEOUT);
- builder = builder.addEvent(CONFIG_RESTORE);
- builder = builder.addEvent(HEALTHCHECK);
- builder = builder.addEvent(BACKUP);
- builder = builder.addEvent(SNAPSHOT);
- builder = builder.addEvent(SOFTWARE_UPLOAD);
- builder = builder.addEvent(LIVE_UPGRADE);
- builder = builder.addEvent(ROLLBACK);
- builder = builder.addEvent(SYNC);
- builder = builder.addEvent(AUDIT);
- builder = builder.addEvent(MIGRATE);
- builder = builder.addEvent(EVACUATE);
- builder = builder.addEvent(LOCK);
- builder = builder.addEvent(UNLOCK);
- builder = builder.addEvent(CHECKLOCK);
- builder = builder.addEvent(CONFIG_BACKUP);
- builder = builder.addEvent(CONFIG_BACKUP_DELETE);
- builder = builder.addEvent(CONFIG_EXPORT);
- builder = builder.addEvent(STOP_APPLICATION);
-
- builder = builder.addTransition(NOT_ORCHESTRATED,CONFIGURE,CONFIGURING);
- builder = builder.addTransition(NOT_ORCHESTRATED,TEST,TESTING);
- builder = builder.addTransition(NOT_ORCHESTRATED,START,STARTING);
- builder = builder.addTransition(NOT_ORCHESTRATED,TERMINATE,TERMINATING);
- builder = builder.addTransition(NOT_ORCHESTRATED,RESTART,RESTARTING);
- builder = builder.addTransition(NOT_ORCHESTRATED,REBUILD,REBUILDING);
- builder = builder.addTransition(NOT_ORCHESTRATED,STOP,STOPPING);
- builder = builder.addTransition(NOT_ORCHESTRATED,CONFIG_MODIFY,CONFIGURING);
- builder = builder.addTransition(NOT_ORCHESTRATED,CONFIG_SCALEOUT,CONFIGURING);
- builder = builder.addTransition(NOT_ORCHESTRATED,CONFIG_RESTORE,CONFIGURING);
- builder = builder.addTransition(NOT_ORCHESTRATED,HEALTHCHECK,TESTING);
- builder = builder.addTransition(NOT_ORCHESTRATED,BACKUP,BACKING_UP);
- builder = builder.addTransition(NOT_ORCHESTRATED,SNAPSHOT,SNAPSHOTTING);
- builder = builder.addTransition(NOT_ORCHESTRATED,SOFTWARE_UPLOAD,SOFTWARE_UPLOADING);
- builder = builder.addTransition(NOT_ORCHESTRATED,LIVE_UPGRADE,UPGRADING);
- builder = builder.addTransition(NOT_ORCHESTRATED,ROLLBACK,ROLLBACKING);
- builder = builder.addTransition(NOT_ORCHESTRATED,MIGRATE,MIGRATING);
- builder = builder.addTransition(NOT_ORCHESTRATED,EVACUATE,EVACUATING);
- builder = builder.addTransition(NOT_ORCHESTRATED,LOCK,NOT_ORCHESTRATED);
- builder = builder.addTransition(NOT_ORCHESTRATED,UNLOCK,NOT_ORCHESTRATED);
- builder = builder.addTransition(NOT_ORCHESTRATED,CHECKLOCK,NOT_ORCHESTRATED);
- builder = builder.addTransition(NOT_ORCHESTRATED,START_APPLICATION,STARTING);
- builder = builder.addTransition(NOT_ORCHESTRATED,STOP_APPLICATION,STOPPING);
- builder = builder.addTransition(NOT_ORCHESTRATED,CONFIG_BACKUP,NOT_ORCHESTRATED);
-
- builder = builder.addTransition(CREATED,CONFIGURE,CONFIGURING);
- builder = builder.addTransition(CREATED,TEST,TESTING);
- builder = builder.addTransition(CREATED,START,STARTING);
- builder = builder.addTransition(CREATED,TERMINATE,TERMINATING);
- builder = builder.addTransition(CREATED,RESTART,RESTARTING);
- builder = builder.addTransition(CREATED,REBUILD,REBUILDING);
- builder = builder.addTransition(CREATED,STOP,STOPPING);
- builder = builder.addTransition(CREATED,CONFIG_MODIFY,CONFIGURING);
- builder = builder.addTransition(CREATED,CONFIG_SCALEOUT,CONFIGURING);
- builder = builder.addTransition(CREATED,CONFIG_RESTORE,CONFIGURING);
- builder = builder.addTransition(CREATED,HEALTHCHECK,TESTING);
- builder = builder.addTransition(CREATED,BACKUP,BACKING_UP);
- builder = builder.addTransition(CREATED,SNAPSHOT,SNAPSHOTTING);
- builder = builder.addTransition(CREATED,SOFTWARE_UPLOAD,SOFTWARE_UPLOADING);
- builder = builder.addTransition(CREATED,LIVE_UPGRADE,UPGRADING);
- builder = builder.addTransition(CREATED,ROLLBACK,ROLLBACKING);
- builder = builder.addTransition(CREATED,MIGRATE,MIGRATING);
- builder = builder.addTransition(CREATED,EVACUATE,EVACUATING);
- builder = builder.addTransition(CREATED,LOCK,CREATED);
- builder = builder.addTransition(CREATED,UNLOCK,CREATED);
- builder = builder.addTransition(CREATED,CHECKLOCK,CREATED);
- builder = builder.addTransition(CREATED,START_APPLICATION,STARTING);
- builder = builder.addTransition(CREATED,STOP_APPLICATION,STOPPING);
- builder = builder.addTransition(CREATED,CONFIG_BACKUP,CREATED);
-
- builder = builder.addTransition(INSTANTIATED,CONFIGURE,CONFIGURING);
- builder = builder.addTransition(INSTANTIATED,TEST,TESTING);
- builder = builder.addTransition(INSTANTIATED,START,STARTING);
- builder = builder.addTransition(INSTANTIATED,TERMINATE,TERMINATING);
- builder = builder.addTransition(INSTANTIATED,RESTART,RESTARTING);
- builder = builder.addTransition(INSTANTIATED,REBUILD,REBUILDING);
- builder = builder.addTransition(INSTANTIATED,STOP,STOPPING);
- builder = builder.addTransition(INSTANTIATED,CONFIG_MODIFY,CONFIGURING);
- builder = builder.addTransition(INSTANTIATED,CONFIG_SCALEOUT,CONFIGURING);
- builder = builder.addTransition(INSTANTIATED,CONFIG_RESTORE,CONFIGURING);
- builder = builder.addTransition(INSTANTIATED,HEALTHCHECK,TESTING);
- builder = builder.addTransition(INSTANTIATED,BACKUP,BACKING_UP);
- builder = builder.addTransition(INSTANTIATED,SNAPSHOT,SNAPSHOTTING);
- builder = builder.addTransition(INSTANTIATED,SOFTWARE_UPLOAD,SOFTWARE_UPLOADING);
- builder = builder.addTransition(INSTANTIATED,LIVE_UPGRADE,UPGRADING);
- builder = builder.addTransition(INSTANTIATED,ROLLBACK,ROLLBACKING);
- builder = builder.addTransition(INSTANTIATED,MIGRATE,MIGRATING);
- builder = builder.addTransition(INSTANTIATED,EVACUATE,EVACUATING);
- builder = builder.addTransition(INSTANTIATED,LOCK,INSTANTIATED);
- builder = builder.addTransition(INSTANTIATED,UNLOCK,INSTANTIATED);
- builder = builder.addTransition(INSTANTIATED,CHECKLOCK,INSTANTIATED);
-
- builder = builder.addTransition(CONFIGURED,CONFIGURE,CONFIGURING);
- builder = builder.addTransition(CONFIGURED,TEST,TESTING);
- builder = builder.addTransition(CONFIGURED,START,STARTING);
- builder = builder.addTransition(CONFIGURED,TERMINATE,TERMINATING);
- builder = builder.addTransition(CONFIGURED,RESTART,RESTARTING);
- builder = builder.addTransition(CONFIGURED,REBUILD,REBUILDING);
- builder = builder.addTransition(CONFIGURED,STOP,STOPPING);
- builder = builder.addTransition(CONFIGURED,CONFIG_MODIFY,CONFIGURING);
- builder = builder.addTransition(CONFIGURED,CONFIG_SCALEOUT,CONFIGURING);
- builder = builder.addTransition(CONFIGURED,CONFIG_RESTORE,CONFIGURING);
- builder = builder.addTransition(CONFIGURED,HEALTHCHECK,TESTING);
- builder = builder.addTransition(CONFIGURED,BACKUP,BACKING_UP);
- builder = builder.addTransition(CONFIGURED,SNAPSHOT,SNAPSHOTTING);
- builder = builder.addTransition(CONFIGURED,SOFTWARE_UPLOAD,SOFTWARE_UPLOADING);
- builder = builder.addTransition(CONFIGURED,LIVE_UPGRADE,UPGRADING);
- builder = builder.addTransition(CONFIGURED,ROLLBACK,ROLLBACKING);
- builder = builder.addTransition(CONFIGURED,SYNC,CONFIGURED);
- builder = builder.addTransition(CONFIGURED,AUDIT,CONFIGURED);
- builder = builder.addTransition(CONFIGURED,MIGRATE,MIGRATING);
- builder = builder.addTransition(CONFIGURED,EVACUATE,EVACUATING);
- builder = builder.addTransition(CONFIGURED,LOCK,CONFIGURED);
- builder = builder.addTransition(CONFIGURED,UNLOCK,CONFIGURED);
- builder = builder.addTransition(CONFIGURED,CHECKLOCK,CONFIGURED);
- builder = builder.addTransition(CONFIGURED,CONFIG_BACKUP,CONFIGURED);
- builder = builder.addTransition(CONFIGURED,CONFIG_BACKUP_DELETE,CONFIGURED);
- builder = builder.addTransition(CONFIGURED,CONFIG_EXPORT,CONFIGURED);
- builder = builder.addTransition(CONFIGURED,STOP_APPLICATION,STOPPING);
-
- builder = builder.addTransition(TESTED,CONFIGURE,CONFIGURING);
- builder = builder.addTransition(TESTED,TEST,TESTING);
- builder = builder.addTransition(TESTED,START,STARTING);
- builder = builder.addTransition(TESTED,TERMINATE,TERMINATING);
- builder = builder.addTransition(TESTED,RESTART,RESTARTING);
- builder = builder.addTransition(TESTED,REBUILD,REBUILDING);
- builder = builder.addTransition(TESTED,STOP,STOPPING);
- builder = builder.addTransition(TESTED,CONFIG_MODIFY,CONFIGURING);
- builder = builder.addTransition(TESTED,CONFIG_SCALEOUT,CONFIGURING);
- builder = builder.addTransition(TESTED,CONFIG_RESTORE,CONFIGURING);
- builder = builder.addTransition(TESTED,HEALTHCHECK,TESTING);
- builder = builder.addTransition(TESTED,BACKUP,BACKING_UP);
- builder = builder.addTransition(TESTED,SNAPSHOT,SNAPSHOTTING);
- builder = builder.addTransition(TESTED,SOFTWARE_UPLOAD,SOFTWARE_UPLOADING);
- builder = builder.addTransition(TESTED,LIVE_UPGRADE,UPGRADING);
- builder = builder.addTransition(TESTED,ROLLBACK,ROLLBACKING);
- builder = builder.addTransition(TESTED,SYNC,TESTED);
- builder = builder.addTransition(TESTED,AUDIT,TESTED);
- builder = builder.addTransition(TESTED,MIGRATE,MIGRATING);
- builder = builder.addTransition(TESTED,EVACUATE,EVACUATING);
- builder = builder.addTransition(TESTED,LOCK,TESTED);
- builder = builder.addTransition(TESTED,UNLOCK,TESTED);
- builder = builder.addTransition(TESTED,CHECKLOCK,TESTED);
- builder = builder.addTransition(TESTED,CONFIG_BACKUP,TESTED);
- builder = builder.addTransition(TESTED,CONFIG_BACKUP_DELETE,TESTED);
- builder = builder.addTransition(TESTED,CONFIG_EXPORT,TESTED);
- builder = builder.addTransition(TESTED,STOP_APPLICATION,STOPPING);
-
- builder = builder.addTransition(RUNNING,CONFIGURE,CONFIGURING);
- builder = builder.addTransition(RUNNING,TEST,TESTING);
- builder = builder.addTransition(RUNNING,START,STARTING);
- builder = builder.addTransition(RUNNING,TERMINATE,TERMINATING);
- builder = builder.addTransition(RUNNING,RESTART,RESTARTING);
- builder = builder.addTransition(RUNNING,REBUILD,REBUILDING);
- builder = builder.addTransition(RUNNING,STOP,STOPPING);
- builder = builder.addTransition(RUNNING,CONFIG_MODIFY,CONFIGURING);
- builder = builder.addTransition(RUNNING,CONFIG_SCALEOUT,CONFIGURING);
- builder = builder.addTransition(RUNNING,CONFIG_RESTORE,CONFIGURING);
- builder = builder.addTransition(RUNNING,HEALTHCHECK,TESTING);
- builder = builder.addTransition(RUNNING,BACKUP,BACKING_UP);
- builder = builder.addTransition(RUNNING,SNAPSHOT,SNAPSHOTTING);
- builder = builder.addTransition(RUNNING,SOFTWARE_UPLOAD,SOFTWARE_UPLOADING);
- builder = builder.addTransition(RUNNING,LIVE_UPGRADE,UPGRADING);
- builder = builder.addTransition(RUNNING,ROLLBACK,ROLLBACKING);
- builder = builder.addTransition(RUNNING,SYNC,RUNNING);
- builder = builder.addTransition(RUNNING,AUDIT,RUNNING);
- builder = builder.addTransition(RUNNING,MIGRATE,MIGRATING);
- builder = builder.addTransition(RUNNING,EVACUATE,EVACUATING);
- builder = builder.addTransition(RUNNING,LOCK,RUNNING);
- builder = builder.addTransition(RUNNING,UNLOCK,RUNNING);
- builder = builder.addTransition(RUNNING,CHECKLOCK,RUNNING);
- builder = builder.addTransition(RUNNING,CONFIG_BACKUP,RUNNING);
- builder = builder.addTransition(RUNNING,CONFIG_BACKUP_DELETE,RUNNING);
- builder = builder.addTransition(RUNNING,CONFIG_EXPORT,RUNNING);
- builder = builder.addTransition(RUNNING,STOP_APPLICATION,STOPPING);
-
- builder = builder.addTransition(ERROR,CONFIGURE,CONFIGURING);
- builder = builder.addTransition(ERROR,TEST,TESTING);
- builder = builder.addTransition(ERROR,START,STARTING);
- builder = builder.addTransition(ERROR,TERMINATE,TERMINATING);
- builder = builder.addTransition(ERROR,RESTART,RESTARTING);
- builder = builder.addTransition(ERROR,REBUILD,REBUILDING);
- builder = builder.addTransition(ERROR,STOP,STOPPING);
- builder = builder.addTransition(ERROR,CONFIG_MODIFY,CONFIGURING);
- builder = builder.addTransition(ERROR,CONFIG_SCALEOUT,CONFIGURING);
- builder = builder.addTransition(ERROR,CONFIG_RESTORE,CONFIGURING);
- builder = builder.addTransition(ERROR,HEALTHCHECK,TESTING);
- builder = builder.addTransition(ERROR,BACKUP,BACKING_UP);
- builder = builder.addTransition(ERROR,SNAPSHOT,SNAPSHOTTING);
- builder = builder.addTransition(ERROR,SOFTWARE_UPLOAD,SOFTWARE_UPLOADING);
- builder = builder.addTransition(ERROR,LIVE_UPGRADE,UPGRADING);
- builder = builder.addTransition(ERROR,ROLLBACK,ROLLBACKING);
- builder = builder.addTransition(ERROR,SYNC,ERROR);
- builder = builder.addTransition(ERROR,AUDIT,ERROR);
- builder = builder.addTransition(ERROR,MIGRATE,MIGRATING);
- builder = builder.addTransition(ERROR,EVACUATE,EVACUATING);
- builder = builder.addTransition(ERROR,LOCK,ERROR);
- builder = builder.addTransition(ERROR,UNLOCK,ERROR);
- builder = builder.addTransition(ERROR,CHECKLOCK,ERROR);
- builder = builder.addTransition(ERROR,CONFIG_BACKUP,ERROR);
- builder = builder.addTransition(ERROR,CONFIG_BACKUP_DELETE,ERROR);
- builder = builder.addTransition(ERROR,CONFIG_EXPORT,ERROR);
- builder = builder.addTransition(ERROR,STOP_APPLICATION,STOPPING);
-
- builder = builder.addTransition(UNKNOWN,CONFIGURE,CONFIGURING);
- builder = builder.addTransition(UNKNOWN,TEST,TESTING);
- builder = builder.addTransition(UNKNOWN,START,STARTING);
- builder = builder.addTransition(UNKNOWN,TERMINATE,TERMINATING);
- builder = builder.addTransition(UNKNOWN,RESTART,RESTARTING);
- builder = builder.addTransition(UNKNOWN,REBUILD,REBUILDING);
- builder = builder.addTransition(UNKNOWN,STOP,STOPPING);
- builder = builder.addTransition(UNKNOWN,CONFIG_MODIFY,CONFIGURING);
- builder = builder.addTransition(UNKNOWN,CONFIG_SCALEOUT,CONFIGURING);
- builder = builder.addTransition(UNKNOWN,CONFIG_RESTORE,CONFIGURING);
- builder = builder.addTransition(UNKNOWN,HEALTHCHECK,TESTING);
- builder = builder.addTransition(UNKNOWN,BACKUP,BACKING_UP);
- builder = builder.addTransition(UNKNOWN,SNAPSHOT,SNAPSHOTTING);
- builder = builder.addTransition(UNKNOWN,SOFTWARE_UPLOAD,SOFTWARE_UPLOADING);
- builder = builder.addTransition(UNKNOWN,LIVE_UPGRADE,UPGRADING);
- builder = builder.addTransition(UNKNOWN,ROLLBACK,ROLLBACKING);
- builder = builder.addTransition(UNKNOWN,SYNC,UNKNOWN);
- builder = builder.addTransition(UNKNOWN,AUDIT,UNKNOWN);
- builder = builder.addTransition(UNKNOWN,MIGRATE,MIGRATING);
- builder = builder.addTransition(UNKNOWN,EVACUATE,EVACUATING);
- builder = builder.addTransition(UNKNOWN,LOCK,UNKNOWN);
- builder = builder.addTransition(UNKNOWN,UNLOCK,UNKNOWN);
- builder = builder.addTransition(UNKNOWN,CHECKLOCK,UNKNOWN);
- builder = builder.addTransition(UNKNOWN,CONFIG_BACKUP,UNKNOWN);
- builder = builder.addTransition(UNKNOWN,CONFIG_BACKUP_DELETE,UNKNOWN);
- builder = builder.addTransition(UNKNOWN,CONFIG_EXPORT,UNKNOWN);
- builder = builder.addTransition(UNKNOWN,STOP_APPLICATION,STOPPING);
-
- builder = builder.addTransition(STOPPED,CONFIGURE,CONFIGURING);
- builder = builder.addTransition(STOPPED,TEST,TESTING);
- builder = builder.addTransition(STOPPED,START,STARTING);
- builder = builder.addTransition(STOPPED,TERMINATE,TERMINATING);
- builder = builder.addTransition(STOPPED,RESTART,RESTARTING);
- builder = builder.addTransition(STOPPED,REBUILD,REBUILDING);
- builder = builder.addTransition(STOPPED,CONFIG_MODIFY,CONFIGURING);
- builder = builder.addTransition(STOPPED,CONFIG_SCALEOUT,CONFIGURING);
- builder = builder.addTransition(STOPPED,CONFIG_RESTORE,CONFIGURING);
- builder = builder.addTransition(STOPPED,HEALTHCHECK,TESTING);
- builder = builder.addTransition(STOPPED,BACKUP,BACKING_UP);
- builder = builder.addTransition(STOPPED,SNAPSHOT,SNAPSHOTTING);
- builder = builder.addTransition(STOPPED,SOFTWARE_UPLOAD,SOFTWARE_UPLOADING);
- builder = builder.addTransition(STOPPED,LIVE_UPGRADE,UPGRADING);
- builder = builder.addTransition(STOPPED,ROLLBACK,ROLLBACKING);
- builder = builder.addTransition(STOPPED,MIGRATE,MIGRATING);
- builder = builder.addTransition(STOPPED,EVACUATE,EVACUATING);
- builder = builder.addTransition(STOPPED,LOCK,STOPPED);
- builder = builder.addTransition(STOPPED,UNLOCK,STOPPED);
- builder = builder.addTransition(STOPPED,CHECKLOCK,STOPPED);
-
- builder = builder.addTransition(CONFIGURING,SUCCESS,CONFIGURED);
- builder = builder.addTransition(CONFIGURING,FAILURE,ERROR);
-
- builder = builder.addTransition(TESTING,SUCCESS,TESTED);
- builder = builder.addTransition(TESTING,FAILURE,ERROR);
-
- builder = builder.addTransition(RESTARTING,SUCCESS,RUNNING);
- builder = builder.addTransition(RESTARTING,FAILURE,ERROR);
-
- builder = builder.addTransition(STARTING,SUCCESS,RUNNING);
- builder = builder.addTransition(STARTING,FAILURE,ERROR);
-
- builder = builder.addTransition(TERMINATING,SUCCESS,NOT_INSTANTIATED);
- builder = builder.addTransition(TERMINATING,FAILURE,ERROR);
-
- builder = builder.addTransition(REBUILDING,SUCCESS,RUNNING);
- builder = builder.addTransition(REBUILDING,FAILURE,ERROR);
-
- builder = builder.addTransition(STOPPING,SUCCESS,STOPPED);
- builder = builder.addTransition(STOPPING,FAILURE,ERROR);
-
- builder = builder.addTransition(BACKING_UP,SUCCESS,RUNNING);
- builder = builder.addTransition(BACKING_UP,FAILURE,ERROR);
-
- builder = builder.addTransition(SNAPSHOTTING,SUCCESS,RUNNING);
- builder = builder.addTransition(SNAPSHOTTING,FAILURE,ERROR);
-
- builder = builder.addTransition(SOFTWARE_UPLOADING,SUCCESS,RUNNING);
- builder = builder.addTransition(SOFTWARE_UPLOADING,FAILURE,ERROR);
-
- builder = builder.addTransition(UPGRADING,SUCCESS,RUNNING);
- builder = builder.addTransition(UPGRADING,FAILURE,ERROR);
-
- builder = builder.addTransition(ROLLBACKING,SUCCESS,RUNNING);
- builder = builder.addTransition(ROLLBACKING,FAILURE,ERROR);
-
- builder = builder.addTransition(MIGRATING,SUCCESS,RUNNING);
- builder = builder.addTransition(MIGRATING,FAILURE,ERROR);
-
- builder = builder.addTransition(EVACUATING,SUCCESS,RUNNING);
- builder = builder.addTransition(EVACUATING,FAILURE,ERROR);
-
-
- builder = builder.addTransition(CONFIGURED,START_APPLICATION,STARTING);
- builder = builder.addTransition(TESTED,START_APPLICATION,STARTING);
- builder = builder.addTransition(ERROR,START_APPLICATION,STARTING);
- builder = builder.addTransition(UNKNOWN,START_APPLICATION,STARTING);
- builder = builder.addTransition(RUNNING,START_APPLICATION,STARTING);
-
- return builder.build();
-
- }
+ State notInstantiated = new State(VNFStates.Not_Instantiated.toString());
+ State instantiated = new State(VNFStates.Instantiated.toString());
+ State configuring = new State(VNFStates.Configuring.toString());
+ State configured = new State(VNFStates.Configured.toString());
+ State testing = new State(VNFStates.Testing.toString());
+ State tested = new State(VNFStates.Tested.toString());
+ State rebuilding = new State(VNFStates.Rebuilding.toString());
+ State restarting = new State(VNFStates.Restarting.toString());
+ State starting = new State(VNFStates.Starting.toString());
+ State error = new State(VNFStates.Error.toString());
+ State running = new State(VNFStates.Running.toString());
+ State unknown = new State(VNFStates.Unknown.toString());
+ State terminating = new State(VNFStates.Terminating.toString());
+ State stopping = new State(VNFStates.Stopping.toString());
+ State stopped = new State(VNFStates.Stopped.toString());
+ State notOrchestrated = new State(VNFStates.NOT_ORCHESTRATED.toString());
+
+ State backingUp = new State(VNFStates.Backing_Up.toString());
+ State snapshotting = new State(VNFStates.Snapshotting.toString());
+ State softwareUploading = new State(VNFStates.Software_Uploading.toString());
+ State upgrading = new State(VNFStates.Upgrading.toString());
+ State rollbacking = new State(VNFStates.Rollbacking.toString());
+
+ State migrating = new State(VNFStates.Migrating.toString());
+ State evacuating = new State(VNFStates.Evacuating.toString());
+ State created= new State(VNFStates.Created.toString());
+
+ Event startApplication = new Event(VNFOperation.StartApplication.toString());
+ Event configure = new Event(VNFOperation.Configure.toString());
+ Event healthcheck = new Event(VNFOperation.HealthCheck.toString());
+ Event test = new Event(VNFOperation.Test.toString());
+ Event start = new Event(VNFOperation.Start.toString());
+ Event terminate = new Event(VNFOperation.Terminate.toString());
+ Event restart = new Event(VNFOperation.Restart.toString());
+ Event rebuild = new Event(VNFOperation.Rebuild.toString());
+ Event stop = new Event(VNFOperation.Stop.toString());
+ Event configModify = new Event(VNFOperation.ConfigModify.toString());
+ Event configScaleout = new Event(VNFOperation.ConfigScaleOut.toString());
+ Event configRestore = new Event(VNFOperation.ConfigRestore.toString());
+ Event backup = new Event(VNFOperation.Backup.toString());
+ Event snapshot = new Event(VNFOperation.Snapshot.toString());
+ Event softwareUpload = new Event(VNFOperation.SoftwareUpload.toString());
+ Event liveUpgrade = new Event(VNFOperation.LiveUpgrade.toString());
+ Event rollback = new Event(VNFOperation.Rollback.toString());
+ Event sync = new Event(VNFOperation.Sync.toString());
+ Event audit = new Event(VNFOperation.Audit.toString());
+ Event migrate = new Event(VNFOperation.Migrate.toString());
+ Event evacuate = new Event(VNFOperation.Evacuate.toString());
+ Event configBackup = new Event(VNFOperation.ConfigBackup.toString());
+ Event configBackupDelete = new Event(VNFOperation.ConfigBackupDelete.toString());
+ Event configExport = new Event(VNFOperation.ConfigExport.toString());
+ Event stopApplication= new Event(VNFOperation.StopApplication.toString());
+
+ Event lock = new Event(VNFOperation.Lock.toString());
+ Event unlock = new Event(VNFOperation.Unlock.toString());
+ Event checklock = new Event(VNFOperation.CheckLock.toString());
+
+ Event success = new Event(VNFOperationOutcome.SUCCESS.toString());
+ Event failure = new Event(VNFOperationOutcome.FAILURE.toString());
+
+
+ StateMachineMetadata.StateMachineMetadataBuilder builder =
+ new StateMachineMetadata.StateMachineMetadataBuilder();
+
+ builder = builder.addState(notInstantiated);
+ builder = builder.addState(instantiated);
+ builder = builder.addState(configuring);
+ builder = builder.addState(configured);
+ builder = builder.addState(testing);
+ builder = builder.addState(tested);
+ builder = builder.addState(rebuilding);
+ builder = builder.addState(restarting);
+ builder = builder.addState(starting);
+ builder = builder.addState(error);
+ builder = builder.addState(running);
+ builder = builder.addState(unknown);
+ builder = builder.addState(terminating);
+ builder = builder.addState(stopping);
+ builder = builder.addState(stopped);
+
+ builder = builder.addState(backingUp);
+ builder = builder.addState(snapshotting);
+ builder = builder.addState(softwareUploading);
+ builder = builder.addState(upgrading);
+ builder = builder.addState(rollbacking);
+ builder = builder.addState(migrating);
+ builder = builder.addState(evacuating);
+ builder = builder.addState(notOrchestrated);
+ builder = builder.addState(created);
+ builder = builder.addEvent(startApplication);
+ builder = builder.addEvent(configure);
+ builder = builder.addEvent(test);
+ builder = builder.addEvent(start);
+ builder = builder.addEvent(terminate);
+ builder = builder.addEvent(restart);
+ builder = builder.addEvent(rebuild);
+ builder = builder.addEvent(success);
+ builder = builder.addEvent(failure);
+ builder = builder.addEvent(stop);
+ builder = builder.addEvent(configModify);
+ builder = builder.addEvent(configScaleout);
+ builder = builder.addEvent(configRestore);
+ builder = builder.addEvent(healthcheck);
+ builder = builder.addEvent(backup);
+ builder = builder.addEvent(snapshot);
+ builder = builder.addEvent(softwareUpload);
+ builder = builder.addEvent(liveUpgrade);
+ builder = builder.addEvent(rollback);
+ builder = builder.addEvent(sync);
+ builder = builder.addEvent(audit);
+ builder = builder.addEvent(migrate);
+ builder = builder.addEvent(evacuate);
+ builder = builder.addEvent(lock);
+ builder = builder.addEvent(unlock);
+ builder = builder.addEvent(checklock);
+ builder = builder.addEvent(configBackup);
+ builder = builder.addEvent(configBackupDelete);
+ builder = builder.addEvent(configExport);
+ builder = builder.addEvent(stopApplication);
+
+ builder = builder.addTransition(notOrchestrated,configure,configuring);
+ builder = builder.addTransition(notOrchestrated,test,testing);
+ builder = builder.addTransition(notOrchestrated,start,starting);
+ builder = builder.addTransition(notOrchestrated,terminate,terminating);
+ builder = builder.addTransition(notOrchestrated,restart,restarting);
+ builder = builder.addTransition(notOrchestrated,rebuild,rebuilding);
+ builder = builder.addTransition(notOrchestrated,stop,stopping);
+ builder = builder.addTransition(notOrchestrated,configModify,configuring);
+ builder = builder.addTransition(notOrchestrated,configScaleout,configuring);
+ builder = builder.addTransition(notOrchestrated,configRestore,configuring);
+ builder = builder.addTransition(notOrchestrated,healthcheck,testing);
+ builder = builder.addTransition(notOrchestrated,backup,backingUp);
+ builder = builder.addTransition(notOrchestrated,snapshot,snapshotting);
+ builder = builder.addTransition(notOrchestrated,softwareUpload,softwareUploading);
+ builder = builder.addTransition(notOrchestrated,liveUpgrade,upgrading);
+ builder = builder.addTransition(notOrchestrated,rollback,rollbacking);
+ builder = builder.addTransition(notOrchestrated,migrate,migrating);
+ builder = builder.addTransition(notOrchestrated,evacuate,evacuating);
+ builder = builder.addTransition(notOrchestrated,lock,notOrchestrated);
+ builder = builder.addTransition(notOrchestrated,unlock,notOrchestrated);
+ builder = builder.addTransition(notOrchestrated,checklock,notOrchestrated);
+ builder = builder.addTransition(notOrchestrated,startApplication,starting);
+ builder = builder.addTransition(notOrchestrated,stopApplication,stopping);
+ builder = builder.addTransition(notOrchestrated,configBackup,notOrchestrated);
+
+ builder = builder.addTransition(created,configure,configuring);
+ builder = builder.addTransition(created,test,testing);
+ builder = builder.addTransition(created,start,starting);
+ builder = builder.addTransition(created,terminate,terminating);
+ builder = builder.addTransition(created,restart,restarting);
+ builder = builder.addTransition(created,rebuild,rebuilding);
+ builder = builder.addTransition(created,stop,stopping);
+ builder = builder.addTransition(created,configModify,configuring);
+ builder = builder.addTransition(created,configScaleout,configuring);
+ builder = builder.addTransition(created,configRestore,configuring);
+ builder = builder.addTransition(created,healthcheck,testing);
+ builder = builder.addTransition(created,backup,backingUp);
+ builder = builder.addTransition(created,snapshot,snapshotting);
+ builder = builder.addTransition(created,softwareUpload,softwareUploading);
+ builder = builder.addTransition(created,liveUpgrade,upgrading);
+ builder = builder.addTransition(created,rollback,rollbacking);
+ builder = builder.addTransition(created,migrate,migrating);
+ builder = builder.addTransition(created,evacuate,evacuating);
+ builder = builder.addTransition(created,lock,created);
+ builder = builder.addTransition(created,unlock,created);
+ builder = builder.addTransition(created,checklock,created);
+ builder = builder.addTransition(created,startApplication,starting);
+ builder = builder.addTransition(created,stopApplication,stopping);
+ builder = builder.addTransition(created,configBackup,created);
+
+ builder = builder.addTransition(instantiated,configure,configuring);
+ builder = builder.addTransition(instantiated,test,testing);
+ builder = builder.addTransition(instantiated,start,starting);
+ builder = builder.addTransition(instantiated,terminate,terminating);
+ builder = builder.addTransition(instantiated,restart,restarting);
+ builder = builder.addTransition(instantiated,rebuild,rebuilding);
+ builder = builder.addTransition(instantiated,stop,stopping);
+ builder = builder.addTransition(instantiated,configModify,configuring);
+ builder = builder.addTransition(instantiated,configScaleout,configuring);
+ builder = builder.addTransition(instantiated,configRestore,configuring);
+ builder = builder.addTransition(instantiated,healthcheck,testing);
+ builder = builder.addTransition(instantiated,backup,backingUp);
+ builder = builder.addTransition(instantiated,snapshot,snapshotting);
+ builder = builder.addTransition(instantiated,softwareUpload,softwareUploading);
+ builder = builder.addTransition(instantiated,liveUpgrade,upgrading);
+ builder = builder.addTransition(instantiated,rollback,rollbacking);
+ builder = builder.addTransition(instantiated,migrate,migrating);
+ builder = builder.addTransition(instantiated,evacuate,evacuating);
+ builder = builder.addTransition(instantiated,lock,instantiated);
+ builder = builder.addTransition(instantiated,unlock,instantiated);
+ builder = builder.addTransition(instantiated,checklock,instantiated);
+
+ builder = builder.addTransition(configured,configure,configuring);
+ builder = builder.addTransition(configured,test,testing);
+ builder = builder.addTransition(configured,start,starting);
+ builder = builder.addTransition(configured,terminate,terminating);
+ builder = builder.addTransition(configured,restart,restarting);
+ builder = builder.addTransition(configured,rebuild,rebuilding);
+ builder = builder.addTransition(configured,stop,stopping);
+ builder = builder.addTransition(configured,configModify,configuring);
+ builder = builder.addTransition(configured,configScaleout,configuring);
+ builder = builder.addTransition(configured,configRestore,configuring);
+ builder = builder.addTransition(configured,healthcheck,testing);
+ builder = builder.addTransition(configured,backup,backingUp);
+ builder = builder.addTransition(configured,snapshot,snapshotting);
+ builder = builder.addTransition(configured,softwareUpload,softwareUploading);
+ builder = builder.addTransition(configured,liveUpgrade,upgrading);
+ builder = builder.addTransition(configured,rollback,rollbacking);
+ builder = builder.addTransition(configured,sync,configured);
+ builder = builder.addTransition(configured,audit,configured);
+ builder = builder.addTransition(configured,migrate,migrating);
+ builder = builder.addTransition(configured,evacuate,evacuating);
+ builder = builder.addTransition(configured,lock,configured);
+ builder = builder.addTransition(configured,unlock,configured);
+ builder = builder.addTransition(configured,checklock,configured);
+ builder = builder.addTransition(configured,configBackup,configured);
+ builder = builder.addTransition(configured,configBackupDelete,configured);
+ builder = builder.addTransition(configured,configExport,configured);
+ builder = builder.addTransition(configured,stopApplication,stopping);
+
+ builder = builder.addTransition(tested,configure,configuring);
+ builder = builder.addTransition(tested,test,testing);
+ builder = builder.addTransition(tested,start,starting);
+ builder = builder.addTransition(tested,terminate,terminating);
+ builder = builder.addTransition(tested,restart,restarting);
+ builder = builder.addTransition(tested,rebuild,rebuilding);
+ builder = builder.addTransition(tested,stop,stopping);
+ builder = builder.addTransition(tested,configModify,configuring);
+ builder = builder.addTransition(tested,configScaleout,configuring);
+ builder = builder.addTransition(tested,configRestore,configuring);
+ builder = builder.addTransition(tested,healthcheck,testing);
+ builder = builder.addTransition(tested,backup,backingUp);
+ builder = builder.addTransition(tested,snapshot,snapshotting);
+ builder = builder.addTransition(tested,softwareUpload,softwareUploading);
+ builder = builder.addTransition(tested,liveUpgrade,upgrading);
+ builder = builder.addTransition(tested,rollback,rollbacking);
+ builder = builder.addTransition(tested,sync,tested);
+ builder = builder.addTransition(tested,audit,tested);
+ builder = builder.addTransition(tested,migrate,migrating);
+ builder = builder.addTransition(tested,evacuate,evacuating);
+ builder = builder.addTransition(tested,lock,tested);
+ builder = builder.addTransition(tested,unlock,tested);
+ builder = builder.addTransition(tested,checklock,tested);
+ builder = builder.addTransition(tested,configBackup,tested);
+ builder = builder.addTransition(tested,configBackupDelete,tested);
+ builder = builder.addTransition(tested,configExport,tested);
+ builder = builder.addTransition(tested,stopApplication,stopping);
+
+ builder = builder.addTransition(running,configure,configuring);
+ builder = builder.addTransition(running,test,testing);
+ builder = builder.addTransition(running,start,starting);
+ builder = builder.addTransition(running,terminate,terminating);
+ builder = builder.addTransition(running,restart,restarting);
+ builder = builder.addTransition(running,rebuild,rebuilding);
+ builder = builder.addTransition(running,stop,stopping);
+ builder = builder.addTransition(running,configModify,configuring);
+ builder = builder.addTransition(running,configScaleout,configuring);
+ builder = builder.addTransition(running,configRestore,configuring);
+ builder = builder.addTransition(running,healthcheck,testing);
+ builder = builder.addTransition(running,backup,backingUp);
+ builder = builder.addTransition(running,snapshot,snapshotting);
+ builder = builder.addTransition(running,softwareUpload,softwareUploading);
+ builder = builder.addTransition(running,liveUpgrade,upgrading);
+ builder = builder.addTransition(running,rollback,rollbacking);
+ builder = builder.addTransition(running,sync,running);
+ builder = builder.addTransition(running,audit,running);
+ builder = builder.addTransition(running,migrate,migrating);
+ builder = builder.addTransition(running,evacuate,evacuating);
+ builder = builder.addTransition(running,lock,running);
+ builder = builder.addTransition(running,unlock,running);
+ builder = builder.addTransition(running,checklock,running);
+ builder = builder.addTransition(running,configBackup,running);
+ builder = builder.addTransition(running,configBackupDelete,running);
+ builder = builder.addTransition(running,configExport,running);
+ builder = builder.addTransition(running,stopApplication,stopping);
+
+ builder = builder.addTransition(error,configure,configuring);
+ builder = builder.addTransition(error,test,testing);
+ builder = builder.addTransition(error,start,starting);
+ builder = builder.addTransition(error,terminate,terminating);
+ builder = builder.addTransition(error,restart,restarting);
+ builder = builder.addTransition(error,rebuild,rebuilding);
+ builder = builder.addTransition(error,stop,stopping);
+ builder = builder.addTransition(error,configModify,configuring);
+ builder = builder.addTransition(error,configScaleout,configuring);
+ builder = builder.addTransition(error,configRestore,configuring);
+ builder = builder.addTransition(error,healthcheck,testing);
+ builder = builder.addTransition(error,backup,backingUp);
+ builder = builder.addTransition(error,snapshot,snapshotting);
+ builder = builder.addTransition(error,softwareUpload,softwareUploading);
+ builder = builder.addTransition(error,liveUpgrade,upgrading);
+ builder = builder.addTransition(error,rollback,rollbacking);
+ builder = builder.addTransition(error,sync,error);
+ builder = builder.addTransition(error,audit,error);
+ builder = builder.addTransition(error,migrate,migrating);
+ builder = builder.addTransition(error,evacuate,evacuating);
+ builder = builder.addTransition(error,lock,error);
+ builder = builder.addTransition(error,unlock,error);
+ builder = builder.addTransition(error,checklock,error);
+ builder = builder.addTransition(error,configBackup,error);
+ builder = builder.addTransition(error,configBackupDelete,error);
+ builder = builder.addTransition(error,configExport,error);
+ builder = builder.addTransition(error,stopApplication,stopping);
+
+ builder = builder.addTransition(unknown,configure,configuring);
+ builder = builder.addTransition(unknown,test,testing);
+ builder = builder.addTransition(unknown,start,starting);
+ builder = builder.addTransition(unknown,terminate,terminating);
+ builder = builder.addTransition(unknown,restart,restarting);
+ builder = builder.addTransition(unknown,rebuild,rebuilding);
+ builder = builder.addTransition(unknown,stop,stopping);
+ builder = builder.addTransition(unknown,configModify,configuring);
+ builder = builder.addTransition(unknown,configScaleout,configuring);
+ builder = builder.addTransition(unknown,configRestore,configuring);
+ builder = builder.addTransition(unknown,healthcheck,testing);
+ builder = builder.addTransition(unknown,backup,backingUp);
+ builder = builder.addTransition(unknown,snapshot,snapshotting);
+ builder = builder.addTransition(unknown,softwareUpload,softwareUploading);
+ builder = builder.addTransition(unknown,liveUpgrade,upgrading);
+ builder = builder.addTransition(unknown,rollback,rollbacking);
+ builder = builder.addTransition(unknown,sync,unknown);
+ builder = builder.addTransition(unknown,audit,unknown);
+ builder = builder.addTransition(unknown,migrate,migrating);
+ builder = builder.addTransition(unknown,evacuate,evacuating);
+ builder = builder.addTransition(unknown,lock,unknown);
+ builder = builder.addTransition(unknown,unlock,unknown);
+ builder = builder.addTransition(unknown,checklock,unknown);
+ builder = builder.addTransition(unknown,configBackup,unknown);
+ builder = builder.addTransition(unknown,configBackupDelete,unknown);
+ builder = builder.addTransition(unknown,configExport,unknown);
+ builder = builder.addTransition(unknown,stopApplication,stopping);
+
+ builder = builder.addTransition(stopped,configure,configuring);
+ builder = builder.addTransition(stopped,test,testing);
+ builder = builder.addTransition(stopped,start,starting);
+ builder = builder.addTransition(stopped,terminate,terminating);
+ builder = builder.addTransition(stopped,restart,restarting);
+ builder = builder.addTransition(stopped,rebuild,rebuilding);
+ builder = builder.addTransition(stopped,configModify,configuring);
+ builder = builder.addTransition(stopped,configScaleout,configuring);
+ builder = builder.addTransition(stopped,configRestore,configuring);
+ builder = builder.addTransition(stopped,healthcheck,testing);
+ builder = builder.addTransition(stopped,backup,backingUp);
+ builder = builder.addTransition(stopped,snapshot,snapshotting);
+ builder = builder.addTransition(stopped,softwareUpload,softwareUploading);
+ builder = builder.addTransition(stopped,liveUpgrade,upgrading);
+ builder = builder.addTransition(stopped,rollback,rollbacking);
+ builder = builder.addTransition(stopped,migrate,migrating);
+ builder = builder.addTransition(stopped,evacuate,evacuating);
+ builder = builder.addTransition(stopped,lock,stopped);
+ builder = builder.addTransition(stopped,unlock,stopped);
+ builder = builder.addTransition(stopped,checklock,stopped);
+
+ builder = builder.addTransition(configuring,success,configured);
+ builder = builder.addTransition(configuring,failure,error);
+
+ builder = builder.addTransition(testing,success,tested);
+ builder = builder.addTransition(testing,failure,error);
+
+ builder = builder.addTransition(restarting,success,running);
+ builder = builder.addTransition(restarting,failure,error);
+
+ builder = builder.addTransition(starting,success,running);
+ builder = builder.addTransition(starting,failure,error);
+
+ builder = builder.addTransition(terminating,success,notInstantiated);
+ builder = builder.addTransition(terminating,failure,error);
+
+ builder = builder.addTransition(rebuilding,success,running);
+ builder = builder.addTransition(rebuilding,failure,error);
+
+ builder = builder.addTransition(stopping,success,stopped);
+ builder = builder.addTransition(stopping,failure,error);
+
+ builder = builder.addTransition(backingUp,success,running);
+ builder = builder.addTransition(backingUp,failure,error);
+
+ builder = builder.addTransition(snapshotting,success,running);
+ builder = builder.addTransition(snapshotting,failure,error);
+
+ builder = builder.addTransition(softwareUploading,success,running);
+ builder = builder.addTransition(softwareUploading,failure,error);
+
+ builder = builder.addTransition(upgrading,success,running);
+ builder = builder.addTransition(upgrading,failure,error);
+
+ builder = builder.addTransition(rollbacking,success,running);
+ builder = builder.addTransition(rollbacking,failure,error);
+
+ builder = builder.addTransition(migrating,success,running);
+ builder = builder.addTransition(migrating,failure,error);
+
+ builder = builder.addTransition(evacuating,success,running);
+ builder = builder.addTransition(evacuating,failure,error);
+
+
+ builder = builder.addTransition(configured,startApplication,starting);
+ builder = builder.addTransition(tested,startApplication,starting);
+ builder = builder.addTransition(error,startApplication,starting);
+ builder = builder.addTransition(unknown,startApplication,starting);
+ builder = builder.addTransition(running,startApplication,starting);
+
+ return builder.build();
}
}
diff --git a/appc-lifecycle-management/state-machine-lib/src/main/java/org/openecomp/appc/statemachine/objects/Event.java b/appc-lifecycle-management/state-machine-lib/src/main/java/org/openecomp/appc/statemachine/objects/Event.java
index 33de6077d..c6e5fcb6c 100644
--- a/appc-lifecycle-management/state-machine-lib/src/main/java/org/openecomp/appc/statemachine/objects/Event.java
+++ b/appc-lifecycle-management/state-machine-lib/src/main/java/org/openecomp/appc/statemachine/objects/Event.java
@@ -24,21 +24,28 @@
package org.openecomp.appc.statemachine.objects;
+/**
+ * Event Object
+ */
public class Event{
+ private final String eventName;
+ private final int hashCode;
- private String eventName;
-
- private Event(){
- // do nothing
+ /**
+ * Constructor
+ * @param eventName String of the event name
+ */
+ public Event(String eventName) {
+ this.eventName = eventName;
+ this.hashCode = this.eventName.toLowerCase().hashCode();
}
@Override
- public int hashCode(){
- return this.eventName.hashCode();
+ public int hashCode() {
+ return hashCode;
}
-
@Override
- public boolean equals(Object obj){
+ public boolean equals(Object obj) {
if(obj == null){
return false;
}
@@ -46,15 +53,10 @@ public class Event{
return false;
}
Event event = (Event)obj;
- return this.eventName.equals(event.getEventName());
- }
-
- public Event(String eventName){
- this();
- this.eventName = eventName;
+ return this.eventName.equalsIgnoreCase(event.getEventName());
}
- private String getEventName() {
+ public String getEventName() {
return eventName;
}
diff --git a/appc-lifecycle-management/state-machine-lib/src/main/java/org/openecomp/appc/statemachine/objects/Response.java b/appc-lifecycle-management/state-machine-lib/src/main/java/org/openecomp/appc/statemachine/objects/Response.java
index 36201204f..283bbfba4 100644
--- a/appc-lifecycle-management/state-machine-lib/src/main/java/org/openecomp/appc/statemachine/objects/Response.java
+++ b/appc-lifecycle-management/state-machine-lib/src/main/java/org/openecomp/appc/statemachine/objects/Response.java
@@ -24,8 +24,15 @@
package org.openecomp.appc.statemachine.objects;
+/**
+ * Response object
+ */
public enum Response {
- NO_TRANSITION_DEFINED,NO_STATE_CHANGE,VALID_TRANSITION;
+ NO_TRANSITION_DEFINED,
+ NO_STATE_CHANGE,
+ VALID_TRANSITION;
+
+ @Override
public String toString(){
return this.name();
}
diff --git a/appc-lifecycle-management/state-machine-lib/src/main/java/org/openecomp/appc/statemachine/objects/State.java b/appc-lifecycle-management/state-machine-lib/src/main/java/org/openecomp/appc/statemachine/objects/State.java
index 8dc8c3ccf..20d3c59e2 100644
--- a/appc-lifecycle-management/state-machine-lib/src/main/java/org/openecomp/appc/statemachine/objects/State.java
+++ b/appc-lifecycle-management/state-machine-lib/src/main/java/org/openecomp/appc/statemachine/objects/State.java
@@ -27,42 +27,46 @@ package org.openecomp.appc.statemachine.objects;
import java.util.ArrayList;
import java.util.List;
-public class State{
- private String stateName;
- private List<Transition> transitions;
-
- private State(){
- // do nothing
- }
+/**
+ * State Object
+ */
+public class State {
+ private final String stateName;
+ private final int hashCode;
+ private final List<Transition> transitions;
- public State(String state){
- this();
- this.stateName = state;
+ /**
+ * Constructor
+ * @param stateName String of the state name
+ */
+ public State(String stateName) {
+ this.stateName = stateName;
+ this.hashCode = stateName.toLowerCase().hashCode();
this.transitions = new ArrayList<>();
}
@Override
- public int hashCode(){
- return this.stateName.hashCode();
+ public int hashCode() {
+ return hashCode;
}
@Override
- public boolean equals(Object obj){
- if(obj == null){
+ public boolean equals(Object obj) {
+ if (obj == null) {
return false;
}
- if(!(obj instanceof State)){
+ if (!(obj instanceof State)) {
return false;
}
State state = (State)obj;
return this.stateName.equalsIgnoreCase(state.getStateName());
}
- public String getStateName(){
+ public String getStateName() {
return stateName;
}
- void addTransition(Transition transition){
+ void addTransition(Transition transition) {
this.transitions.add(transition);
}
@@ -71,7 +75,7 @@ public class State{
}
@Override
- public String toString(){
+ public String toString() {
return this.stateName;
}
}
diff --git a/appc-lifecycle-management/state-machine-lib/src/main/java/org/openecomp/appc/statemachine/objects/Transition.java b/appc-lifecycle-management/state-machine-lib/src/main/java/org/openecomp/appc/statemachine/objects/Transition.java
index d777ef8a5..5bdf64980 100644
--- a/appc-lifecycle-management/state-machine-lib/src/main/java/org/openecomp/appc/statemachine/objects/Transition.java
+++ b/appc-lifecycle-management/state-machine-lib/src/main/java/org/openecomp/appc/statemachine/objects/Transition.java
@@ -24,16 +24,19 @@
package org.openecomp.appc.statemachine.objects;
+/**
+ * Transition Object
+ */
public class Transition {
private Event event;
private State nextState;
- private Transition(){
- // do nothing
- }
-
- Transition(Event event, State nextState){
- this();
+ /**
+ * Constructor
+ * @param event which triggers the transition
+ * @param nextState of State which indicates the transition targeted state
+ */
+ Transition(Event event, State nextState) {
this.event = event;
this.nextState = nextState;
}
diff --git a/appc-lifecycle-management/state-machine-lib/src/test/java/org/openecomp/appc/statemachine/impl/StateMachineFactoryTest.java b/appc-lifecycle-management/state-machine-lib/src/test/java/org/openecomp/appc/statemachine/impl/StateMachineFactoryTest.java
new file mode 100644
index 000000000..f75e04d6a
--- /dev/null
+++ b/appc-lifecycle-management/state-machine-lib/src/test/java/org/openecomp/appc/statemachine/impl/StateMachineFactoryTest.java
@@ -0,0 +1,59 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP : APPC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Copyright (C) 2017 Amdocs
+ * =============================================================================
+ * 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.
+ *
+ * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.appc.statemachine.impl;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.openecomp.appc.statemachine.StateMachine;
+import org.openecomp.appc.statemachine.objects.Event;
+import org.openecomp.appc.statemachine.objects.State;
+import org.openecomp.appc.statemachine.objects.StateMachineMetadata;
+
+public class StateMachineFactoryTest {
+ private StateMachineMetadata metadata;
+
+ @Before
+ public void setUp() throws Exception {
+ StateMachineMetadata.StateMachineMetadataBuilder builder =
+ new StateMachineMetadata.StateMachineMetadataBuilder();
+ builder.addEvent(new Event("TestingEvent1"));
+ builder.addEvent(new Event("TestingEvent2"));
+ builder.addState(new State("TestingState1"));
+ builder.addState(new State("TestingState2"));
+ builder.addState(new State("TestingState3"));
+ builder.addTransition(
+ new State("TestingState1"), new Event("TestingEvent1"), new State("TestingState2"));
+
+ metadata = builder.build();
+ }
+
+ @Test
+ public void testGetStateMachine() throws Exception {
+ StateMachine stateMachine = StateMachineFactory.getStateMachine(metadata);
+ Assert.assertTrue("Should return StateMachineImpl", stateMachine instanceof StateMachineImpl);
+ }
+
+}
diff --git a/appc-lifecycle-management/state-machine-lib/src/test/java/org/openecomp/appc/statemachine/impl/StateMachineImplTest.java b/appc-lifecycle-management/state-machine-lib/src/test/java/org/openecomp/appc/statemachine/impl/StateMachineImplTest.java
new file mode 100644
index 000000000..16a489aca
--- /dev/null
+++ b/appc-lifecycle-management/state-machine-lib/src/test/java/org/openecomp/appc/statemachine/impl/StateMachineImplTest.java
@@ -0,0 +1,107 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP : APPC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Copyright (C) 2017 Amdocs
+ * =============================================================================
+ * 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.
+ *
+ * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.appc.statemachine.impl;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.internal.util.reflection.Whitebox;
+import org.openecomp.appc.exceptions.InvalidInputException;
+import org.openecomp.appc.statemachine.objects.Event;
+import org.openecomp.appc.statemachine.objects.Response;
+import org.openecomp.appc.statemachine.objects.State;
+import org.openecomp.appc.statemachine.objects.StateMachineMetadata;
+import org.openecomp.appc.statemachine.objects.StateMachineResponse;
+
+public class StateMachineImplTest {
+ private StateMachineMetadata metadata;
+ private StateMachineImpl stateMachine;
+
+ private State state1 = new State("TestingState1");
+ private State state2 = new State("TestingState2");
+ private Event event1 = new Event("TestingEvent1");
+ private Event event2 = new Event("TestingEvent2");
+
+ @Before
+ public void setUp() throws Exception {
+ StateMachineMetadata.StateMachineMetadataBuilder builder =
+ new StateMachineMetadata.StateMachineMetadataBuilder();
+ builder.addEvent(event1);
+ builder.addEvent(event2);
+ builder.addState(state1);
+ builder.addState(state2);
+ builder.addState(new State("TestingState3"));
+ builder.addTransition(state1, event1, state2);
+
+ metadata = builder.build();
+
+ stateMachine = new StateMachineImpl(metadata);
+ }
+
+ @Test
+ public void testConstructor() throws Exception {
+ StateMachineImpl stateMachine = new StateMachineImpl(metadata);
+ Assert.assertEquals("Should have set internal states",
+ metadata.getStates(), Whitebox.getInternalState(stateMachine, "states"));
+ Assert.assertEquals("Should have set internal events",
+ metadata.getEvents(), Whitebox.getInternalState(stateMachine, "events"));
+ }
+
+ @Test(expected = InvalidInputException.class)
+ public void testHandleEventThrowsInvalidInputException() throws Exception {
+ stateMachine.handleEvent(null, null);
+ }
+
+ @Test
+ public void testHandleEvent() throws Exception {
+ StateMachineResponse response = stateMachine.handleEvent(state1, event1);
+ Assert.assertEquals(Response.VALID_TRANSITION, response.getResponse());
+ Assert.assertEquals(state2, response.getNextState());
+
+ response = stateMachine.handleEvent(state2, event1);
+ Assert.assertEquals(Response.NO_TRANSITION_DEFINED, response.getResponse());
+ Assert.assertTrue(response.getNextState() == null);
+ }
+
+ @Test
+ public void testValidateInputs() {
+ Assert.assertFalse(stateMachine.validateInputs(null, null));
+ Assert.assertFalse(stateMachine.validateInputs(new State("state1"), null));
+ Assert.assertFalse(stateMachine.validateInputs(null, new Event("event1")));
+ Assert.assertFalse(stateMachine.validateInputs(new State("state1"), new Event("event1")));
+ Assert.assertFalse(stateMachine.validateInputs(state1, new Event("event1")));
+ Assert.assertFalse(stateMachine.validateInputs(new State("state1"), event1));
+ Assert.assertTrue(stateMachine.validateInputs(state1, event1));
+
+ }
+
+ @Test
+ public void testToString() throws Exception {
+ Assert.assertEquals(
+ String.format(stateMachine.toStringFormat, metadata.getStates(), metadata.getEvents()),
+ stateMachine.toString());
+ }
+
+}
diff --git a/appc-lifecycle-management/state-machine-lib/src/test/java/org/openecomp/appc/statemachine/impl/readers/AppcOamMetaDataReaderTest.java b/appc-lifecycle-management/state-machine-lib/src/test/java/org/openecomp/appc/statemachine/impl/readers/AppcOamMetaDataReaderTest.java
new file mode 100644
index 000000000..6073caa52
--- /dev/null
+++ b/appc-lifecycle-management/state-machine-lib/src/test/java/org/openecomp/appc/statemachine/impl/readers/AppcOamMetaDataReaderTest.java
@@ -0,0 +1,74 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP : APPC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Copyright (C) 2017 Amdocs
+ * =============================================================================
+ * 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.
+ *
+ * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.appc.statemachine.impl.readers;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.openecomp.appc.statemachine.objects.Event;
+import org.openecomp.appc.statemachine.objects.State;
+import org.openecomp.appc.statemachine.objects.StateMachineMetadata;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+
+public class AppcOamMetaDataReaderTest {
+ private List<String> expectedStateNames = new ArrayList<>();
+ private List<String> expectedEventNames = new ArrayList<>();
+
+ private StateMachineMetadata stateMachineMetadata = new AppcOamMetaDataReader().readMetadata();
+
+ @Before
+ public void setUp() throws Exception {
+ for (AppcOamStates appcOamStates : AppcOamStates.values()) {
+ expectedStateNames.add(appcOamStates.toString());
+ }
+ for (AppcOamMetaDataReader.AppcOperation appcOperation : AppcOamMetaDataReader.AppcOperation.values()) {
+ expectedEventNames.add(appcOperation.toString());
+ }
+ }
+
+ @Test
+ public void testReadMetadataForState() throws Exception {
+ Set<State> stateSet = stateMachineMetadata.getStates();
+ for (State state : stateSet) {
+ String eventName = state.getStateName();
+ Assert.assertTrue(String.format("Event(%s) should exist in expectedEventNames", eventName),
+ expectedStateNames.contains(eventName));
+ }
+ }
+
+ @Test
+ public void testReadMetadataForEvent() throws Exception {
+ Set<Event> eventSet = stateMachineMetadata.getEvents();
+ for (Event event : eventSet) {
+ String eventName = event.getEventName();
+ Assert.assertTrue(String.format("Event(%s) should exist in expectedEventNames", eventName),
+ expectedEventNames.contains(eventName));
+ }
+ }
+
+}
diff --git a/appc-lifecycle-management/state-machine-lib/src/test/java/org/openecomp/appc/statemachine/impl/readers/VnfMetaDataReaderTest.java b/appc-lifecycle-management/state-machine-lib/src/test/java/org/openecomp/appc/statemachine/impl/readers/VnfMetaDataReaderTest.java
new file mode 100644
index 000000000..b8b623f12
--- /dev/null
+++ b/appc-lifecycle-management/state-machine-lib/src/test/java/org/openecomp/appc/statemachine/impl/readers/VnfMetaDataReaderTest.java
@@ -0,0 +1,79 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP : APPC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Copyright (C) 2017 Amdocs
+ * =============================================================================
+ * 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.
+ *
+ * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.appc.statemachine.impl.readers;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.openecomp.appc.lifecyclemanager.objects.VNFOperationOutcome;
+import org.openecomp.appc.statemachine.objects.Event;
+import org.openecomp.appc.statemachine.objects.State;
+import org.openecomp.appc.statemachine.objects.StateMachineMetadata;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+
+
+public class VnfMetaDataReaderTest {
+ private List<String> expectedStateNames = new ArrayList<>();
+ private List<String> expectedEventNames = new ArrayList<>();
+
+ private StateMachineMetadata stateMachineMetadata = new VnfMetaDataReader().readMetadata();
+
+ @Before
+ public void setUp() throws Exception {
+ for (VnfMetaDataReader.VNFStates vnfStates : VnfMetaDataReader.VNFStates.values()) {
+ expectedStateNames.add(vnfStates.toString());
+ }
+ for (VnfMetaDataReader.VNFOperation vnfOperation : VnfMetaDataReader.VNFOperation.values()) {
+ expectedEventNames.add(vnfOperation.toString());
+ }
+ for (VNFOperationOutcome vnfOperationOutcome : VNFOperationOutcome.values()) {
+ expectedEventNames.add(vnfOperationOutcome.toString());
+ }
+ }
+
+ @Test
+ public void testReadMetadataForState() throws Exception {
+ Set<State> stateSet = stateMachineMetadata.getStates();
+ for (State state : stateSet) {
+ String eventName = state.getStateName();
+ Assert.assertTrue(String.format("Event(%s) should exist in expectedEventNames", eventName),
+ expectedStateNames.contains(eventName));
+ }
+ }
+
+ @Test
+ public void testReadMetadataForEvent() throws Exception {
+ Set<Event> eventSet = stateMachineMetadata.getEvents();
+ for (Event event : eventSet) {
+ String eventName = event.getEventName();
+ Assert.assertTrue(String.format("Event(%s) should exist in expectedEventNames", eventName),
+ expectedEventNames.contains(eventName));
+ }
+ }
+
+}
diff --git a/appc-lifecycle-management/state-machine-lib/src/test/java/org/openecomp/appc/statemachine/objects/EventTest.java b/appc-lifecycle-management/state-machine-lib/src/test/java/org/openecomp/appc/statemachine/objects/EventTest.java
new file mode 100644
index 000000000..e646bd260
--- /dev/null
+++ b/appc-lifecycle-management/state-machine-lib/src/test/java/org/openecomp/appc/statemachine/objects/EventTest.java
@@ -0,0 +1,70 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP : APPC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Copyright (C) 2017 Amdocs
+ * =============================================================================
+ * 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.
+ *
+ * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.appc.statemachine.objects;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.mockito.internal.util.reflection.Whitebox;
+
+public class EventTest {
+ private final String EVENT_NAME = "Testing Event";
+ private Event event = new Event(EVENT_NAME);
+
+ @Test
+ public void testConstructor() {
+ Event event = new Event(EVENT_NAME);
+ Assert.assertEquals("Should set eventName",
+ EVENT_NAME, Whitebox.getInternalState(event, "eventName"));
+ Assert.assertEquals("Should set hash code",
+ EVENT_NAME.toLowerCase().hashCode(), (int)Whitebox.getInternalState(event, "hashCode"));
+ }
+
+ @Test
+ public void testHashCode() throws Exception {
+ Assert.assertEquals("Should return proper hash code",
+ EVENT_NAME.toLowerCase().hashCode(), event.hashCode());
+ }
+
+ @Test
+ public void testEquals() throws Exception {
+ Assert.assertFalse("should return false for null", event.equals(null));
+ Assert.assertFalse("should return false for object", event.equals(new State(EVENT_NAME)));
+ Assert.assertFalse("should return false for different event",
+ event.equals(new Event("Another")));
+ Assert.assertTrue("should return true", event.equals(new Event(EVENT_NAME)));
+ Assert.assertTrue("should return true (lower case)", event.equals(new Event(EVENT_NAME.toLowerCase())));
+ }
+
+ @Test
+ public void testGetEventName() throws Exception {
+ Assert.assertEquals("Should return EVENT_NAME", EVENT_NAME, event.getEventName());
+ }
+
+ @Test
+ public void testToString() throws Exception {
+ Assert.assertEquals("Should return EVENT_NAME", EVENT_NAME, event.toString());
+ }
+
+}
diff --git a/appc-lifecycle-management/state-machine-lib/src/test/java/org/openecomp/appc/statemachine/objects/ResponseTest.java b/appc-lifecycle-management/state-machine-lib/src/test/java/org/openecomp/appc/statemachine/objects/ResponseTest.java
new file mode 100644
index 000000000..b9f955f0d
--- /dev/null
+++ b/appc-lifecycle-management/state-machine-lib/src/test/java/org/openecomp/appc/statemachine/objects/ResponseTest.java
@@ -0,0 +1,40 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP : APPC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Copyright (C) 2017 Amdocs
+ * =============================================================================
+ * 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.
+ *
+ * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.appc.statemachine.objects;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+public class ResponseTest {
+
+ @Test
+ public void testToString() throws Exception {
+ for (Response response : Response.values()) {
+ Assert.assertEquals("Should return the same as name",
+ response.name(), response.toString());
+ }
+ }
+
+}
diff --git a/appc-lifecycle-management/state-machine-lib/src/test/java/org/openecomp/appc/statemachine/objects/StateMachineMetadataTest.java b/appc-lifecycle-management/state-machine-lib/src/test/java/org/openecomp/appc/statemachine/objects/StateMachineMetadataTest.java
new file mode 100644
index 000000000..96c411061
--- /dev/null
+++ b/appc-lifecycle-management/state-machine-lib/src/test/java/org/openecomp/appc/statemachine/objects/StateMachineMetadataTest.java
@@ -0,0 +1,61 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP : APPC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Copyright (C) 2017 Amdocs
+ * =============================================================================
+ * 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.
+ *
+ * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.appc.statemachine.objects;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.internal.util.reflection.Whitebox;
+
+public class StateMachineMetadataTest {
+ private StateMachineMetadata.StateMachineMetadataBuilder builder;
+ private StateMachineMetadata metadata;
+ @Before
+ public void setUp() throws Exception {
+ builder = new StateMachineMetadata.StateMachineMetadataBuilder();
+ builder.addEvent(new Event("TestingEvent1"));
+ builder.addEvent(new Event("TestingEvent2"));
+ builder.addState(new State("TestingState1"));
+ builder.addState(new State("TestingState2"));
+ builder.addState(new State("TestingState3"));
+ builder.addTransition(
+ new State("TestingState1"), new Event("TestingEvent1"), new State("TestingState2"));
+
+ metadata = builder.build();
+ }
+
+ @Test
+ public void getStates() throws Exception {
+ Assert.assertEquals("Should return proper States",
+ Whitebox.getInternalState(builder, "states"), metadata.getStates());
+ }
+
+ @Test
+ public void getEvents() throws Exception {
+ Assert.assertEquals("Should return proper Events",
+ Whitebox.getInternalState(builder, "events"), metadata.getEvents());
+ }
+
+}
diff --git a/appc-lifecycle-management/state-machine-lib/src/test/java/org/openecomp/appc/statemachine/objects/StateMachineResponseTest.java b/appc-lifecycle-management/state-machine-lib/src/test/java/org/openecomp/appc/statemachine/objects/StateMachineResponseTest.java
new file mode 100644
index 000000000..c974ea067
--- /dev/null
+++ b/appc-lifecycle-management/state-machine-lib/src/test/java/org/openecomp/appc/statemachine/objects/StateMachineResponseTest.java
@@ -0,0 +1,71 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP : APPC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Copyright (C) 2017 Amdocs
+ * =============================================================================
+ * 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.
+ *
+ * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.appc.statemachine.objects;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.mockito.internal.util.reflection.Whitebox;
+
+public class StateMachineResponseTest {
+ private StateMachineResponse stateMachineResponse = new StateMachineResponse();
+
+ @Test
+ public void testConstructor() {
+ StateMachineResponse stateMachineResponse = new StateMachineResponse();
+ Assert.assertTrue("Do not: no change to nextState",
+ Whitebox.getInternalState(stateMachineResponse, "nextState") == null);
+ Assert.assertTrue("Do not: no change to response",
+ Whitebox.getInternalState(stateMachineResponse, "response") == null);
+ }
+
+ @Test
+ public void testGetAndSetNextState() throws Exception {
+ stateMachineResponse.setNextState(null);
+ Assert.assertTrue("internal nextState should be null",
+ Whitebox.getInternalState(stateMachineResponse, "nextState") == null);
+ Assert.assertTrue("should return null", stateMachineResponse.getNextState() == null);
+
+ State state = new State("TestingState");
+ stateMachineResponse.setNextState(state);
+ Assert.assertEquals("internal nextState should be the state",
+ state, Whitebox.getInternalState(stateMachineResponse, "nextState"));
+ Assert.assertEquals("should return the state", state, stateMachineResponse.getNextState());
+ }
+
+ @Test
+ public void testGetAndSetResponse() throws Exception {
+ stateMachineResponse.setResponse(null);
+ Assert.assertTrue("internal response should be null",
+ Whitebox.getInternalState(stateMachineResponse, "response") == null);
+ Assert.assertTrue("should return null", stateMachineResponse.getResponse() == null);
+
+ Response response = Response.NO_STATE_CHANGE;
+ stateMachineResponse.setResponse(response);
+ Assert.assertEquals("internal response should be the response",
+ response, Whitebox.getInternalState(stateMachineResponse, "response"));
+ Assert.assertEquals("should return the response", response, stateMachineResponse.getResponse());
+ }
+
+}
diff --git a/appc-lifecycle-management/state-machine-lib/src/test/java/org/openecomp/appc/statemachine/objects/StateTest.java b/appc-lifecycle-management/state-machine-lib/src/test/java/org/openecomp/appc/statemachine/objects/StateTest.java
new file mode 100644
index 000000000..4e95d0a90
--- /dev/null
+++ b/appc-lifecycle-management/state-machine-lib/src/test/java/org/openecomp/appc/statemachine/objects/StateTest.java
@@ -0,0 +1,91 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP : APPC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Copyright (C) 2017 Amdocs
+ * =============================================================================
+ * 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.
+ *
+ * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.appc.statemachine.objects;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.mockito.internal.util.reflection.Whitebox;
+
+import java.util.List;
+
+public class StateTest {
+ private final String STATE_NAME = "Starting";
+ private State state = new State(STATE_NAME);
+
+ @SuppressWarnings("unchecked")
+ @Test
+ public void testConstructor() {
+ State state = new State(STATE_NAME);
+ Assert.assertEquals("Should set stateName",
+ STATE_NAME, Whitebox.getInternalState(state, "stateName"));
+ Assert.assertEquals("Should set hash code",
+ STATE_NAME.toLowerCase().hashCode(), (int)Whitebox.getInternalState(state, "hashCode"));
+ List<Transition> transitions = (List<Transition>) Whitebox.getInternalState(state, "transitions");
+ Assert.assertTrue("Should initialized transtiions",
+ transitions != null && transitions.isEmpty());
+ }
+
+ @Test
+ public void testHashCode() throws Exception {
+ Assert.assertEquals("Should return proper hash code",
+ STATE_NAME.toLowerCase().hashCode(), state.hashCode());
+ }
+
+ @Test
+ public void testEquals() throws Exception {
+ Assert.assertFalse("should return false for null", state.equals(null));
+ Assert.assertFalse("should return false for object", state.equals(new Event(STATE_NAME)));
+ Assert.assertFalse("should return false for different event",
+ state.equals(new Event("Another")));
+ Assert.assertTrue("should return true", state.equals(new State(STATE_NAME)));
+ Assert.assertTrue("should return true (lower case)", state.equals(new State(STATE_NAME.toLowerCase())));
+ }
+
+ @Test
+ public void testGetStateName() throws Exception {
+ Assert.assertEquals("Should return STATE_NAME", STATE_NAME, state.getStateName());
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test
+ public void testAddAndGetTransition() throws Exception {
+ Transition transition1 = new Transition(new Event("event1"), new State("state2"));
+ List<Transition> transitions = (List<Transition>) Whitebox.getInternalState(state, "transitions");
+ Assert.assertFalse("should not have transition1", transitions.contains(transition1));
+ state.addTransition(transition1);
+ transitions = (List<Transition>) Whitebox.getInternalState(state, "transitions");
+ Assert.assertTrue("should have added transition1", transitions.contains(transition1));
+ Assert.assertEquals("Should return transitions", transitions, state.getTransitions());
+
+ state.addTransition(null);
+ Assert.assertEquals("Should not change transitions", transitions,
+ Whitebox.getInternalState(state, "transitions"));
+ }
+
+ @Test
+ public void testToString() throws Exception {
+ Assert.assertEquals("Should return STATE_NAME", STATE_NAME, state.toString());
+ }
+}
diff --git a/appc-lifecycle-management/state-machine-lib/src/test/java/org/openecomp/appc/statemachine/objects/TransitionTest.java b/appc-lifecycle-management/state-machine-lib/src/test/java/org/openecomp/appc/statemachine/objects/TransitionTest.java
new file mode 100644
index 000000000..d948c15e4
--- /dev/null
+++ b/appc-lifecycle-management/state-machine-lib/src/test/java/org/openecomp/appc/statemachine/objects/TransitionTest.java
@@ -0,0 +1,57 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP : APPC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Copyright (C) 2017 Amdocs
+ * =============================================================================
+ * 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.
+ *
+ * ECOMP is a trademark and service mark of AT&T Intellectual Property.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.appc.statemachine.objects;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.mockito.internal.util.reflection.Whitebox;
+
+public class TransitionTest {
+ private final State state = new State("TestingState");
+ private final Event event = new Event("TestingEvent");
+ private Transition transition = new Transition(event, state);
+
+ @Test
+ public void testConstructor() {
+ transition = new Transition(event, state);
+ Assert.assertEquals("Should set event",
+ event, Whitebox.getInternalState(transition, "event"));
+ Assert.assertEquals("Should set nextState",
+ state, Whitebox.getInternalState(transition, "nextState"));
+ }
+
+ @Test
+ public void testGetEvent() throws Exception {
+ Assert.assertEquals("Should return internal event",
+ Whitebox.getInternalState(transition, "event"), transition.getEvent());
+ }
+
+ @Test
+ public void testGetNextState() throws Exception {
+ Assert.assertEquals("Should return internal nextState",
+ Whitebox.getInternalState(transition, "nextState"), transition.getNextState());
+ }
+
+}