Archive Item

Change-Id: Idd5eedc3b0ca9e3cc72f7de9fd432cdbbf77631d
Issue-ID: SDC-1086
Signed-off-by: ayalaben <ayala.benzvi@amdocs.com>
diff --git a/openecomp-bdd/stepDefinitions/General_Steps.js b/openecomp-bdd/stepDefinitions/General_Steps.js
index b9ea72f..b3fb0e9 100644
--- a/openecomp-bdd/stepDefinitions/General_Steps.js
+++ b/openecomp-bdd/stepDefinitions/General_Steps.js
@@ -22,6 +22,11 @@
 const fs = require('fs');
 const util = require('./Utils.js');
 
+function getPath(path, context) {
+	let compiled = _.template(path);
+	return compiled(context);
+}
+
 /**
  * @module ContextData
  * @description  Use with "Given". Use ONLY for local testing when you know the value of the Item you want to use
@@ -183,7 +188,8 @@
  **/
 Then('I want the following to fail with error message {string}', function(string)  {
 	this.context.shouldFail = true;
-	this.context.errorMessage = string;
+	let errorMessage = getPath(string, this.context);
+	this.context.errorMessage = errorMessage;
 });
 
 /**
@@ -228,4 +234,47 @@
 	let str = zip.files[string]._data;
 	this.context.responseData = JSON.parse(str);
 	callback();
+});
+
+/**
+ * @module ResponseData
+ * @description Check that the itemId from context exits in result of responseData
+ * exampleFile ArchiveItem.feature
+ * step I want to check that item exits in response
+ **/
+Then('I want to check that item exits in response', function() {
+
+  const id = this.context.item.id;
+  const results = this.context.responseData.results;
+  var testResult = false;
+
+  for(var i=0; i< results.length; i++){
+     if ( id == results[i].id){
+            testResult = true;
+     }
+  }
+
+   assert.equal(testResult,true);
+});
+
+
+/**
+ * @module ResponseData
+ * @description Check that the itemId from context does NOT exits in result of responseData
+ * exampleFile ArchiveItem.feature
+ * step I want to check that item does not exits in response
+ **/
+Then('I want to check that item does not exits in response', function() {
+
+  const id = this.context.item.id;
+  const results = this.context.responseData.results;
+  var testResult = false;
+
+  for(var i=0; i< results.length; i++){
+     if ( id == results[i].id){
+            testResult = true;
+     }
+  }
+
+   assert.equal(testResult,false);
 });
\ No newline at end of file
diff --git a/openecomp-bdd/stepDefinitions/Item_steps.js b/openecomp-bdd/stepDefinitions/Item_steps.js
index 165df6c..3ff7f20 100644
--- a/openecomp-bdd/stepDefinitions/Item_steps.js
+++ b/openecomp-bdd/stepDefinitions/Item_steps.js
@@ -65,3 +65,27 @@
 	return util.request(this.context, 'PUT', path, inputData);
 });
 
+
+/**
+ * @module Item
+ * @exampleFile ArchiveItem.feature
+ * @step I want to archive this item
+ **/
+Then('I want to archive this item', function()  {
+    let path = '/items/' + this.context.item.id + '/actions'
+    let inputData = {action: 'ARCHIVE'};
+	return util.request(this.context, 'PUT', path, inputData);
+});
+
+
+/**
+ * @module Item
+ * @exampleFile ArchiveItem.feature
+ * @step I want to restore this item
+ **/
+Then('I want to restore this item', function()  {
+    let path = '/items/' + this.context.item.id + '/actions'
+    let inputData = {action: 'RESTORE'};
+	return util.request(this.context, 'PUT', path, inputData);
+});
+
diff --git a/openecomp-bdd/stepDefinitions/VLM_steps.js b/openecomp-bdd/stepDefinitions/VLM_steps.js
index ea75313..35e78b2 100644
--- a/openecomp-bdd/stepDefinitions/VLM_steps.js
+++ b/openecomp-bdd/stepDefinitions/VLM_steps.js
@@ -55,3 +55,25 @@
 	return util.request(this.context, 'DELETE', path);
 });
 
+
+/**
+ * @module VLM
+ * @exampleFile ArchiveItem.feature
+ * @step I want to list Archived VLMs
+ **/
+Then('I want to list Archived VLMs', function()  {
+	let path = '/vendor-license-models/?Status=ARCHIVED';
+	return util.request(this.context, 'GET', path);
+});
+
+/**
+ * @module VLM
+ * @exampleFile ArchiveItem.feature
+ * @step I want to list Active VLMs
+ **/
+Then('I want to list Active VLMs', function()  {
+	let path = '/vendor-license-models';
+	return util.request(this.context, 'GET', path);
+});
+
+
diff --git a/openecomp-bdd/stepDefinitions/VSP_steps.js b/openecomp-bdd/stepDefinitions/VSP_steps.js
index bed8921..1f753fe 100644
--- a/openecomp-bdd/stepDefinitions/VSP_steps.js
+++ b/openecomp-bdd/stepDefinitions/VSP_steps.js
@@ -118,4 +118,65 @@
 Then('I want to delete this VSP', function()  {
 	let path = '/vendor-software-products/' + this.context.item.id ;
 	return util.request(this.context, 'DELETE', path);
+});
+
+/**
+ * @module VSP
+ * @exampleFile ArchiveItem.feature
+ * @step I want to list Archived VSPs
+ **/
+Then('I want to list Archived VSPs', function()  {
+	let path = '/vendor-software-products/?Status=ARCHIVED';
+	return util.request(this.context, 'GET', path);
+});
+
+/**
+ * @module VSP
+ * @exampleFile ArchiveItem.feature
+ * @step I want to list Active VSPs
+ **/
+Then('I want to list Active VSPs', function()  {
+	let path = '/vendor-software-products';
+	return util.request(this.context, 'GET', path);
+});
+
+
+/**
+ * @module VSP
+ * @exampleFile FilterArchivedVSPpackage.feature
+ * @step I want to list Archived VSPs packages
+ **/
+Then('I want to list Archived VSPs packages', function()  {
+	let path = '/vendor-software-products/packages?Status=ARCHIVED';
+	return util.request(this.context, 'GET', path);
+});
+
+/**
+ * @module VSP
+ * @exampleFile FilterArchivedVSPpackage.feature
+ * @step I want to list Active VSPs packages
+ **/
+Then('I want to list Active VSPs packages', function()  {
+	let path = '/vendor-software-products/packages';
+	return util.request(this.context, 'GET', path);
+
+});
+
+/**
+ * @module VSP
+ * @exampleFile FilterArchivedVSPpackage.feature
+ * @step I want to check that VSP package exits in response
+ **/
+Then('I want to check that VSP package exits in response', function()  {
+
+      const packages = this.context.responseData.results;
+      const id = this.context.item.id;
+      var testResult = false;
+
+      for(var i=0; i< packages.length; i++){
+          if (id == packages[i].packageId){
+               testResult = true;
+          }
+      }
+      assert.equal(testResult,true);
 });
\ No newline at end of file