Activity Spec Service - Flow Test

Change in URL and correct steps
Fixed review comments
Flow tests for Activity Spec
Currently the tests are commented since Activity Spec is not build and
deployed as of now as part of onboarding

Change-Id: I6d509ccfa88619f2d9574932f0315a3459a6e0b7
Issue-ID: SDC-1048
Signed-off-by: sheetalm <sheetal.mudholkar@amdocs.com>
diff --git a/openecomp-bdd/config.json b/openecomp-bdd/config.json
index 3806355..e1907a2 100644
--- a/openecomp-bdd/config.json
+++ b/openecomp-bdd/config.json
@@ -11,6 +11,6 @@
   },
   "activity_spec" : {
     "port" : 8080,
-    "prefix" : "sdc1/feProxy/activityspec-api/v1"
+    "prefix" : "activity-spec-api/v1.0"
   }
 }
\ No newline at end of file
diff --git a/openecomp-bdd/features/ActivitySpec/TestCreate.feature b/openecomp-bdd/features/ActivitySpec/TestCreate.feature
new file mode 100644
index 0000000..accae6a
--- /dev/null
+++ b/openecomp-bdd/features/ActivitySpec/TestCreate.feature
@@ -0,0 +1,70 @@
+#Feature: ActivitySpec Flow - Test Create Activity Spec
+#
+#Given Default prefix "activity_spec"
+#
+#  # SDC-6350
+#  Scenario: Test Create Activity Spec functionality
+#    #Create ActivitySpec
+#    When I want to set the input data to file "resources/json/createActivitySpec.json"
+#    Then I want to update the input property "name" with a random value
+#    When I want to create an ActivitySpec
+#    #Check id and versionId returned in response
+#    Then I want to check property "id" exists
+#    And I want to check property "versionId" exists
+#
+#    #List ActivitySpec
+#    And I want to list ActivitySpecs with status "Draft"
+#    And I want to check property "listCount" exists
+#
+#    #Get ActivitySpec and verify its status
+#    And I want to get the ActivitySpec for the current item
+#    And I want to check property "status" for value "Draft"
+#
+#    #Certify and Get ActivitySpec and verify its status
+#    And I want to call action "CERTIFY" on this ActivitySpec item
+#    And I want to get the ActivitySpec for the current item
+#    And I want to check property "status" for value "Certified"
+#
+#    #Deprecate and Get ActivitySpec and verify its status
+#    And I want to call action "DEPRECATE" on this ActivitySpec item
+#    And I want to get the ActivitySpec for the current item
+#    And I want to check property "status" for value "Deprecated"
+#
+#    #Delete and Get ActivitySpec and verify its status
+#    And I want to call action "DELETE" on this ActivitySpec item
+#    And I want to get the ActivitySpec for the current item
+#    And I want to check property "status" for value "Deleted"
+#
+#    #Pass Invalid Id to Get and verify error code
+#    Then I want to set property "item.id" to value "invalidId"
+#    Then I want the following to fail with error code "ACTIVITYSPEC_NOT_FOUND"
+#    And I want to get the ActivitySpec for the current item
+#
+#  # SDC-6353
+#  Scenario: Test Create Activity Spec With Duplicate Name
+#    #Create ActivitySpec with name "test"
+#    When I want to set the input data to file "resources/json/createActivitySpec.json"
+#    Then I want to update the input property "name" with value "test"
+#    When I want to create an ActivitySpec
+#    Then I want to check property "id" exists
+#    And I want to check property "versionId" exists
+#
+#    #Again Create ActivitySpec with name "test" and verify error code
+#    When I want to set the input data to file "resources/json/createActivitySpec.json"
+#    Then I want to update the input property "name" with value "test"
+#    Then I want the following to fail with error code "UNIQUE_VALUE_VIOLATION"
+#    When I want to create an ActivitySpec
+#
+#  # SDC-6354
+#  Scenario: Test Create Activity Spec With Invalid Name Format
+#    When I want to set the input data to file "resources/json/createActivitySpec.json"
+#    Then I want to update the input property "name" with value "test!@"
+#    Then I want the following to fail with error code "FIELD_VALIDATION_ERROR_ERR_ID"
+#    When I want to create an ActivitySpec
+#
+#  # SDC-6355
+#  Scenario: Test Create Activity Spec With Null/Blank Name
+#    When I want to set the input data to file "resources/json/createActivitySpec.json"
+#    Then I want to update the input property "name" with value ""
+#    Then I want the following to fail with error code "FIELD_VALIDATION_ERROR_ERR_ID"
+#    When I want to create an ActivitySpec
\ No newline at end of file
diff --git a/openecomp-bdd/features/ActivitySpec/TestInvalidStatusTransition.feature b/openecomp-bdd/features/ActivitySpec/TestInvalidStatusTransition.feature
new file mode 100644
index 0000000..1a94635
--- /dev/null
+++ b/openecomp-bdd/features/ActivitySpec/TestInvalidStatusTransition.feature
@@ -0,0 +1,29 @@
+#Feature: ActivitySpec Flow
+#
+#Given Default prefix "activity_spec"
+#
+#  Scenario: Test Invalid Status Transition for Activity Spec
+#    #Create Activity Spec
+#    When I want to set the input data to file "resources/json/createActivitySpec.json"
+#    Then I want to update the input property "name" with a random value
+#    When I want to create an ActivitySpec
+#    Then I want to check property "id" exists
+#    And I want to check property "versionId" exists
+#
+#    #Get Activity Spec and verify status
+#    When I want to get the ActivitySpec for the current item
+#    Then I want to check property "status" for value "Draft"
+#
+#    #Deprecate "Draft" activity status and verify error code
+#    Then I want the following to fail with error code "STATUS_NOT_CERTIFIED"
+#    When I want to call action "DEPRECATE" on this ActivitySpec item
+#
+#    #Delete "Draft" activity spec and verify error code
+#    Then I want the following to fail with error code "STATUS_NOT_DEPRECATED"
+#    When I want to call action "DELETE" on this ActivitySpec item
+#
+#    #Certify activity spec
+#    When I want to call action "CERTIFY" on this ActivitySpec item
+#    #Certify "certified" activity spec and verify error code
+#    Then I want the following to fail with error code "STATUS_NOT_DRAFT"
+#    When I want to call action "CERTIFY" on this ActivitySpec item
diff --git a/openecomp-bdd/resources/json/createActivitySpec.json b/openecomp-bdd/resources/json/createActivitySpec.json
new file mode 100644
index 0000000..8d5fc16
--- /dev/null
+++ b/openecomp-bdd/resources/json/createActivitySpec.json
@@ -0,0 +1,17 @@
+{
+  "name": "RANDOM",
+  "description": "Start Server",
+  "categoryList": [
+    "Server"
+  ],
+  "inputParameters": [{
+    "name": "host",
+    "type": "string",
+    "value": "10.1.2.3"
+  }],
+  "outputParameters": [{
+    "name": "status",
+    "type": "string",
+    "value": "started"
+  }]
+}
\ No newline at end of file
diff --git a/openecomp-bdd/stepDefinitions/ActivitySpec_steps.js b/openecomp-bdd/stepDefinitions/ActivitySpec_steps.js
new file mode 100644
index 0000000..7fe8ddf
--- /dev/null
+++ b/openecomp-bdd/stepDefinitions/ActivitySpec_steps.js
@@ -0,0 +1,47 @@
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
+ * 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.
+ */
+
+const {Then, When} = require('cucumber');
+const assert = require('assert');
+const util = require('./Utils.js');
+const _ = require('lodash');
+
+When('I want to create an ActivitySpec', function () {
+  let path = '/activity-spec';
+  return util.request(this.context, 'POST', path, this.context.inputData, false, 'activity_spec').then((result)=> {
+    this.context.item = {id : result.data.id, versionId: result.data.versionId};
+    this.context.activityspec = {id : result.data.id, versionId: result.data.versionId};
+  });
+});
+
+When('I want to list ActivitySpecs with status {string}', function (string) {
+  let path = '/activity-spec?status='+string;
+  return util.request(this.context, 'GET', path, null, false, 'activity_spec').then((result)=> {
+    this.context.listCount = result.data.listCount;
+  });
+});
+
+When('I want to get the ActivitySpec for the current item', function () {
+  let path = '/activity-spec/'+ this.context.item.id+'/versions/'+this.context.item.versionId ;
+  return util.request(this.context, 'GET', path, null, false, 'activity_spec').then((result)=> {
+  });
+});
+
+Then('I want to call action {string} on this ActivitySpec item', function(string)  {
+  let path = '/activity-spec/'+ this.context.item.id+'/versions/'+this.context.item.versionId+'/actions' ;
+  let inputData = JSON.parse('{"action" : "' +string+ '"}');
+  return util.request(this.context, 'PUT', path, inputData, false, 'activity_spec')
+});
\ No newline at end of file