This is an automated email from the ASF dual-hosted git repository. csantanapr pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-openwhisk-cli.git
commit c8ea3c7c25614d069b823dfc09dbe7175de35855 Author: James Dubee <jwdu...@us.ibm.com> AuthorDate: Fri Mar 24 16:12:33 2017 -0400 Allow Adding Annotations and Parameters During Action Copy (#2066) * Allow Adding Annotations and Parameters During Action Copy - Parameters and annotations can now be added through the create/update commands when copying an action * Add Test --- .../test/scala/system/basic/WskActionTests.scala | 67 +++++++++++++++++++++- 1 file changed, 66 insertions(+), 1 deletion(-) diff --git a/tests/src/test/scala/system/basic/WskActionTests.scala b/tests/src/test/scala/system/basic/WskActionTests.scala index dcb6dcd..d7b7dbe 100644 --- a/tests/src/test/scala/system/basic/WskActionTests.scala +++ b/tests/src/test/scala/system/basic/WskActionTests.scala @@ -136,7 +136,7 @@ class WskActionTests it should "copy an action and ensure exec, parameters, and annotations copied" in withAssetCleaner(wskprops) { (wp, assetHelper) => - val origActionName = "orignAction" + val origActionName = "origAction" val copiedActionName = "copiedAction" val params = Map("a" -> "A".toJson) val annots = Map("b" -> "B".toJson) @@ -159,6 +159,71 @@ class WskActionTests copiedAction.fields("version") shouldBe JsString("0.0.1") } + it should "add new parameters and annotations while copying an action" in withAssetCleaner(wskprops) { + (wp, assetHelper) => + val origName = "origAction" + val copiedName = "copiedAction" + val origParams = Map("origParam1" -> "origParamValue1".toJson, "origParam2" -> 999.toJson) + val copiedParams = Map("copiedParam1" -> "copiedParamValue1".toJson, "copiedParam2" -> 123.toJson) + val origAnnots = Map("origAnnot1" -> "origAnnotValue1".toJson, "origAnnot2" -> true.toJson) + val copiedAnnots = Map("copiedAnnot1" -> "copiedAnnotValue1".toJson, "copiedAnnot2" -> false.toJson) + val resParams = Seq( + JsObject( + "key" -> JsString("copiedParam1"), + "value" -> JsString("copiedParamValue1") + ), + JsObject( + "key" -> JsString("copiedParam2"), + "value" -> JsNumber(123) + ), + JsObject( + "key" -> JsString("origParam1"), + "value" -> JsString("origParamValue1") + ), + JsObject( + "key" -> JsString("origParam2"), + "value" -> JsNumber(999) + ) + ) + val resAnnots = Seq( + JsObject( + "key" -> JsString("origAnnot1"), + "value" -> JsString("origAnnotValue1") + ), + JsObject( + "key" -> JsString("copiedAnnot2"), + "value" -> JsBoolean(false) + ), + JsObject( + "key" -> JsString("copiedAnnot1"), + "value" -> JsString("copiedAnnotValue1") + ), + JsObject( + "key" -> JsString("origAnnot2"), + "value" -> JsBoolean(true) + ), + JsObject( + "key" -> JsString("exec"), + "value" -> JsString("nodejs:6") + ) + ) + + assetHelper.withCleaner(wsk.action, origName) { + val file = Some(TestUtils.getTestActionFilename("echo.js")) + (action, _) => action.create(origName, file, parameters = origParams, annotations = origAnnots) + } + + assetHelper.withCleaner(wsk.action, copiedName) { + (action, _) => action.create(copiedName, Some(origName), Some("copy"), parameters = copiedParams, annotations = copiedAnnots) + } + + val copiedAction = getJSONFromCLIResponse(wsk.action.get(copiedName).stdout) + + // CLI does not guarantee order of annotations and parameters so do a diff to compare the values + copiedAction.fields("parameters").convertTo[Seq[JsObject]] diff resParams shouldBe List() + copiedAction.fields("annotations").convertTo[Seq[JsObject]] diff resAnnots shouldBe List() + } + it should "recreate and invoke a new action with different code" in withAssetCleaner(wskprops) { (wp, assetHelper) => val name = "recreatedAction" -- To stop receiving notification emails like this one, please contact "commits@openwhisk.apache.org" <commits@openwhisk.apache.org>.