This is an automated email from the ASF dual-hosted git repository.

houshengbo pushed a commit to branch master
in repository 
https://gitbox.apache.org/repos/asf/incubator-openwhisk-wskdeploy.git


The following commit(s) were added to refs/heads/master by this push:
     new 1b646cf  Use data files for manifest tests and simplify (#668)
1b646cf is described below

commit 1b646cf0fbe8056202f8aef93eefe2b9dd0300af
Author: Matt Rutkowski <[email protected]>
AuthorDate: Tue Dec 12 15:29:02 2017 -0600

    Use data files for manifest tests and simplify (#668)
    
    * Use data files for tests and simplify.
    
    * Use common function for basic manifest-action tests.
    
    * Further simplify tests using shared function.
    
    * Further simplify tests using shared function.
    
    * Further simplify tests.
    
    * Further simplify tests.
---
 cmd/add.go                                       |  29 +-
 cmd/root.go                                      |   7 +-
 parsers/manifest_parser_test.go                  | 675 ++++++++++++-----------
 parsers/yamlparser.go                            |  32 +-
 tests/dat/manifest_hello_java_jar.yaml           |   7 +
 tests/dat/manifest_hello_nodejs.yaml             |   6 +
 tests/dat/manifest_hello_nodejs_with_params.yaml |   9 +
 tests/dat/manifest_hello_python.yaml             |   6 +
 tests/dat/manifest_hello_swift.yaml              |   6 +
 tests/dat/manifest_invalid_package_missing.yaml  |   6 +
 wskderrors/wskdeployerror_test.go                |   5 -
 11 files changed, 435 insertions(+), 353 deletions(-)

diff --git a/cmd/add.go b/cmd/add.go
index dbf2574..d18a86d 100644
--- a/cmd/add.go
+++ b/cmd/add.go
@@ -44,25 +44,26 @@ var actionCmd = &cobra.Command{
             return err
         }
 
-               reader := bufio.NewReader(os.Stdin)
-               action := parsers.Action{}
+       reader := bufio.NewReader(os.Stdin)
+       action := parsers.Action{}
 
-               for {
-                       action.Name = utils.Ask(reader, "Name", "")
+       for {
+               action.Name = utils.Ask(reader, "Name", "")
 
-                       // Check action name is unique
-                       if _, ok := maniyaml.Package.Actions[action.Name]; !ok {
-                               break
-                       }
-                       fmt.Print(action.Name + " is already used. Pick another 
action name\n")
+               // Check action name is unique
+               if _, ok := maniyaml.Package.Actions[action.Name]; !ok {
+                       break
                }
+               fmt.Print(action.Name + " is already used. Pick another action 
name\n")
+       }
+
+       action.Runtime = utils.Ask(reader, "Runtime", "nodejs:6")
+       maniyaml.Package.Actions[action.Name] = action
 
-               action.Runtime = utils.Ask(reader, "Runtime", "nodejs:6")
-               maniyaml.Package.Actions[action.Name] = action
+       // Create directory structure before update manifest, as a way
+       // to check the action name is a valid path name
+       err = os.MkdirAll("actions/"+action.Name, 0777)
 
-               // Create directory structure before update manifest, as a way
-               // to check the action name is a valid path name
-               err = os.MkdirAll("actions/"+action.Name, 0777)
         if err != nil {
             return err
         }
diff --git a/cmd/root.go b/cmd/root.go
index d07005f..fd0642d 100644
--- a/cmd/root.go
+++ b/cmd/root.go
@@ -155,8 +155,8 @@ func setSupportedRuntimes(apiHost string) {
 func Deploy() error {
 
        whisk.SetVerbose(utils.Flags.Verbose)
-       // Verbose mode is the only mode for wskdeploy to turn on all the debug 
messages, so the currenty Verbose mode
-       // also set debug mode to true.
+       // Verbose mode is the only mode for wskdeploy to turn on all the debug 
messages,
+       // so set Verbose mode (and also debug mode) to true.
        whisk.SetDebug(utils.Flags.Verbose)
 
        project_Path := strings.TrimSpace(utils.Flags.ProjectPath)
@@ -181,6 +181,8 @@ func Deploy() error {
                        errString := wski18n.T("Missing {{.yaml}}/{{.yml}} 
file. Manifest file not found at path {{.projectPath}}.\n",
                                map[string]interface{}{"yaml": 
utils.ManifestFileNameYaml, "yml": utils.ManifestFileNameYml,
                                        "projectPath": projectPath})
+
+                       // TODO() print help on error
                        return 
wskderrors.NewErrorManifestFileNotFound(projectPath, errString)
                }
                whisk.Debug(whisk.DbgInfo, stdout)
@@ -230,6 +232,7 @@ func Deploy() error {
                }
 
                err = deployer.Deploy()
+
                if err != nil {
                        return err
                } else {
diff --git a/parsers/manifest_parser_test.go b/parsers/manifest_parser_test.go
index f31b55c..54d0a0d 100644
--- a/parsers/manifest_parser_test.go
+++ b/parsers/manifest_parser_test.go
@@ -33,172 +33,190 @@ import (
     "github.com/apache/incubator-openwhisk-wskdeploy/wskderrors"
 )
 
-// Test 1: validate manifest_parser:Unmarshal() method with a sample manifest 
in NodeJS
-// validate that manifest_parser is able to read and parse the manifest data
-func TestUnmarshalForHelloNodeJS(t *testing.T) {
-    data := `
-package:
-  name: helloworld
-  actions:
-    helloNodejs:
-      function: actions/hello.js
-      runtime: nodejs:6`
-    // set the zero value of struct YAML
+const (
+    // local test assert messages
+    TEST_MSG_PACKAGE_NAME_MISSING = "Package named [%s] missing."
+    TEST_MSG_PACKAGE_NAME_MISMATCH = "Package name mismatched."
+    TEST_MSG_ACTION_NUMBER_MISMATCH = "Number of Actions mismatched."
+    TEST_MSG_ACTION_NAME_MISSING = "Action named [%s] does not exist."
+    TEST_MSG_ACTION_FUNCTION_PATH_MISMATCH = "Action function path mismatched."
+    TEST_MSG_ACTION_FUNCTION_RUNTIME_MISMATCH = "Action function runtime 
mismatched."
+    TEST_MSG_ACTION_FUNCTION_MAIN_MISMATCH = "Action function main name 
mismatch."
+    TEST_MSG_ACTION_PARAMETER_TYPE_MISMATCH = "Action parameter [%s] had a 
type mismatch."
+    TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH = "Action parameter [%s] had a 
value mismatch."
+    TEST_MSG_PARAMETER_NUMBER_MISMATCH = "Number of Paramaters mismatched."
+    TEST_MSG_MANIFEST_UNMARSHALL_ERROR_EXPECTED = "Manifest [%s]: Expected 
Unmarshal error."
+
+    // local error messages
+    TEST_ERROR_MANIFEST_PARSE_FAILURE = "Manifest [%s]: Failed to parse."
+    TEST_ERROR_MANIFEST_READ_FAILURE = "Manifest [%s]: Failed to ReadFile()."
+    TEST_ERROR_MANIFEST_DATA_UNMARSHALL = "Manifest [%s]: Failed to Unmarshall 
manifest."
+)
+
+
+func testReadAndUnmarshalManifest(t *testing.T, pathManifest string)(YAML, 
error){
+    // Init YAML struct and attempt to Unmarshal YAML byte[] data
     m := YAML{}
-    // Unmarshal reads/parses manifest data and sets the values of YAML
-    // And returns an error if parsing a manifest data fails
-    err := NewYAMLParser().Unmarshal([]byte(data), &m)
-    if err == nil {
-        // YAML.Filepath does not get set by Parsers.Unmarshal
-        // as it takes manifest YAML data as a function parameter
-        // instead of file name of a manifest file, therefore there is
-        // no way for Unmarshal function to set YAML.Filepath field
-        // (TODO) Ideally we should change this functionality so that
-        // (TODO) filepath is set to the actual path of the manifest file
-        expectedResult := ""
-        actualResult := m.Filepath
-        assert.Equal(t, expectedResult, actualResult, "Expected filepath to be 
an empty" +
-            " string instead its set to " + actualResult + " which is invalid 
value")
-        // package name should be "helloworld"
-        expectedResult = "helloworld"
-        actualResult = m.Package.Packagename
-        assert.Equal(t, expectedResult, actualResult, "Expected package name " 
+ expectedResult + " but got " + actualResult)
-        // manifest should contain only one action
-        expectedResult = string(1)
-        actualResult = string(len(m.Package.Actions))
-        assert.Equal(t, expectedResult, actualResult, "Expected 1 but got " + 
actualResult)
-        // get the action payload from the map of actions which is stored in
-        // YAML.Package.Actions with the type of map[string]Action
-        actionName := "helloNodejs"
-        if action, ok := m.Package.Actions[actionName]; ok {
-            // location/function of an action should be "actions/hello.js"
-            expectedResult = "actions/hello.js"
-            actualResult = action.Function
-            assert.Equal(t, expectedResult, actualResult, "Expected action 
function " + expectedResult + " but got " + actualResult)
-            // runtime of an action should be "nodejs:6"
-            expectedResult = "nodejs:6"
-            actualResult = action.Runtime
-            assert.Equal(t, expectedResult, actualResult, "Expected action 
runtime " + expectedResult + " but got " + actualResult)
+
+    // read raw bytes of manifest.yaml file
+    data, err := ioutil.ReadFile(pathManifest)
+
+    if err != nil{
+        t.Error(fmt.Sprintf(TEST_ERROR_MANIFEST_READ_FAILURE, pathManifest))
+        return m, err
+    }
+
+    err = NewYAMLParser().Unmarshal([]byte(data), &m)
+    return m, err
+}
+
+
+/*
+    testUnmarshalManifestAndActionBasic
+
+    This function validates basic Manifest Package and Action keys including
+    - Package name mismatch (single "package" only)
+    - Number of Actions mismatch
+    - Action Function path mismatch
+    - Action runtime (name) mismatch
+
+    and optionally,
+    = Action function "main" name mismatch
+
+    Returns:
+    - N/A
+ */
+func testUnmarshalManifestAndActionBasic(t *testing.T,
+        pathManifest string,
+        namePackage string,
+        numActions int,
+        nameAction string,
+        pathFunction string,
+        nameRuntime string,
+        nameMain string) (YAML, error){
+
+    // Test that we are able to read the manifest file and unmarshall into 
YAML struct
+    m, err := testReadAndUnmarshalManifest(t, pathManifest)
+
+    // nothing to test if Unmarshal returns an err
+    if err != nil {
+        assert.Fail(t, fmt.Sprintf(TEST_ERROR_MANIFEST_DATA_UNMARSHALL, 
pathManifest))
+    } else {
+        // test package name
+        actualResult := m.Package.Packagename
+        assert.Equal(t, namePackage, actualResult, 
TEST_MSG_PACKAGE_NAME_MISMATCH)
+
+        // test # of actions in manifest
+        if numActions >0 {
+            actualResult = string(len(m.Package.Actions))
+            assert.Equal(t, string(numActions), actualResult, 
TEST_MSG_ACTION_NUMBER_MISMATCH)
+        }
+
+        // get an action from map of actions where key is action name and 
value is Action struct
+        if action, ok := m.Package.Actions[nameAction]; ok {
+
+            // test action's function path
+            assert.Equal(t, pathFunction, action.Function, 
TEST_MSG_ACTION_FUNCTION_PATH_MISMATCH)
+
+            // test action's runtime
+            assert.Equal(t, nameRuntime, action.Runtime, 
TEST_MSG_ACTION_FUNCTION_RUNTIME_MISMATCH)
+
+            // test action's "Main" function
+            if nameMain != "" {
+                assert.Equal(t, nameMain, action.Main, 
TEST_MSG_ACTION_FUNCTION_MAIN_MISMATCH)
+            }
+
         } else {
-            t.Error("Action named " + actionName + " does not exist.")
+            t.Error(fmt.Sprintf(TEST_MSG_ACTION_NAME_MISSING, nameAction))
         }
     }
+    return m, nil
+}
+
+// Test 1: validate manifest_parser:Unmarshal() method with a sample manifest 
in NodeJS
+// validate that manifest_parser is able to read and parse the manifest data
+func TestUnmarshalForHelloNodeJS(t *testing.T) {
+    testUnmarshalManifestAndActionBasic(t,
+        "../tests/dat/manifest_hello_nodejs.yaml",  // Manifest path
+        "helloworld",           // Package name
+        1,                      // # of Actions
+        "helloNodejs",          // Action name
+        "actions/hello.js",     // Function path
+        "nodejs:6",             // "Runtime
+        "")                     // "Main" function name
 }
 
 // Test 2: validate manifest_parser:Unmarshal() method with a sample manifest 
in Java
 // validate that manifest_parser is able to read and parse the manifest data
 func TestUnmarshalForHelloJava(t *testing.T) {
-    data := `
-package:
-  name: helloworld
-  actions:
-    helloJava:
-      function: actions/hello.jar
-      runtime: java
-      main: Hello`
-    m := YAML{}
-    err := NewYAMLParser().Unmarshal([]byte(data), &m)
-    // nothing to test if Unmarshal returns an err
-    if err == nil {
-        // get an action from map of actions where key is action name and
-        // value is Action struct
-        actionName := "helloJava"
-        if action, ok := m.Package.Actions[actionName]; ok {
-            // runtime of an action should be java
-            expectedResult := "java"
-            actualResult := action.Runtime
-            assert.Equal(t, expectedResult, actualResult, "Expected action 
runtime " + expectedResult + " but got " + actualResult)
-            // Main field should be set to "Hello"
-            expectedResult = action.Main
-            actualResult = "Hello"
-            assert.Equal(t, expectedResult, actualResult, "Expected action 
main function " + expectedResult + " but got " + actualResult)
-        } else {
-            t.Error("Expected action named " + actionName + " but does not 
exist.")
-        }
-    }
+    testUnmarshalManifestAndActionBasic(t,
+        "../tests/dat/manifest_hello_java_jar.yaml",  // Manifest path
+        "helloworld",           // Package name
+        1,                      // # of Actions
+        "helloJava",            // Action name
+        "actions/hello.jar",    // Function path
+        "java",                 // "Runtime
+        "Hello")                // "Main" function name
 }
 
 // Test 3: validate manifest_parser:Unmarshal() method with a sample manifest 
in Python
 // validate that manifest_parser is able to read and parse the manifest data
 func TestUnmarshalForHelloPython(t *testing.T) {
-    data := `
-package:
-  name: helloworld
-  actions:
-    helloPython:
-      function: actions/hello.py
-      runtime: python`
-    m := YAML{}
-    err := NewYAMLParser().Unmarshal([]byte(data), &m)
-    // nothing to test if Unmarshal returns an err
-    if err == nil {
-        // get an action from map of actions which is defined as 
map[string]Action{}
-        actionName := "helloPython"
-        if action, ok := m.Package.Actions[actionName]; ok {
-            // runtime of an action should be python
-            expectedResult := "python"
-            actualResult := action.Runtime
-            assert.Equal(t, expectedResult, actualResult, "Expected action 
runtime " + expectedResult + " but got " + actualResult)
-        } else {
-            t.Error("Expected action named " + actionName + " but does not 
exist.")
-        }
-    }
+    testUnmarshalManifestAndActionBasic(t,
+        "../tests/dat/manifest_hello_python.yaml",  // Manifest path
+        "helloworld",           // Package name
+        1,                      // # of Actions
+        "helloPython",          // Action name
+        "actions/hello.py",     // Function path
+        "python",               // "Runtime
+        "")                     // "Main" function name
 }
 
 // Test 4: validate manifest_parser:Unmarshal() method with a sample manifest 
in Swift
 // validate that manifest_parser is able to read and parse the manifest data
 func TestUnmarshalForHelloSwift(t *testing.T) {
-    data := `
-package:
-  name: helloworld
-  actions:
-    helloSwift:
-      function: actions/hello.swift
-      runtime: swift`
-    m := YAML{}
-    err := NewYAMLParser().Unmarshal([]byte(data), &m)
-    // nothing to test if Unmarshal returns an err
-    if err == nil {
-        // get an action from map of actions which is defined as 
map[string]Action{}
-        actionName := "helloSwift"
-        if action, ok := m.Package.Actions[actionName]; ok {
-            // runtime of an action should be swift
-            expectedResult := "swift"
-            actualResult := action.Runtime
-            assert.Equal(t, expectedResult, actualResult, "Expected action 
runtime " + expectedResult + " but got " + actualResult)
-        } else {
-            t.Error("Expected action named " + actionName + " but does not 
exist.")
-        }
-    }
+    testUnmarshalManifestAndActionBasic(t,
+        "../tests/dat/manifest_hello_swift.yaml",  // Manifest path
+        "helloworld",           // Package name
+        1,                      // # of Actions
+        "helloSwift",           // Action name
+        "actions/hello.swift",  // Function path
+        "swift",                // "Runtime
+        "")                     // "Main" function name
 }
 
 // Test 5: validate manifest_parser:Unmarshal() method for an action with 
parameters
 // validate that manifest_parser is able to read and parse the manifest data, 
specially
 // validate two input parameters and their values
 func TestUnmarshalForHelloWithParams(t *testing.T) {
-    var data = `
-package:
-   name: helloworld
-   actions:
-     helloWithParams:
-       function: actions/hello-with-params.js
-       runtime: nodejs:6
-       inputs:
-         name: Amy
-         place: Paris`
-    m := YAML{}
-    err := NewYAMLParser().Unmarshal([]byte(data), &m)
-    if err == nil {
-        actionName := "helloWithParams"
-        if action, ok := m.Package.Actions[actionName]; ok {
-            expectedResult := "Amy"
-            actualResult := action.Inputs["name"].Value.(string)
-            assert.Equal(t, expectedResult, actualResult,
-                "Expected input parameter " + expectedResult + " but got " + 
actualResult + "for name")
-            expectedResult = "Paris"
-            actualResult = action.Inputs["place"].Value.(string)
-            assert.Equal(t, expectedResult, actualResult,
-                "Expected input parameter " + expectedResult + " but got " + 
actualResult + "for place")
+
+    TEST_ACTION_NAME := "helloWithParams"
+    TEST_PARAM_NAME_1 := "name"
+    TEST_PARAM_VALUE_1 := "Amy"
+    TEST_PARAM_NAME_2 := "place"
+    TEST_PARAM_VALUE_2 := "Paris"
+
+    m, err := testUnmarshalManifestAndActionBasic(t,
+        "../tests/dat/manifest_hello_nodejs_with_params.yaml",  // Manifest 
path
+        "helloworld",                   // Package name
+        1,                              // # of Actions
+        TEST_ACTION_NAME,               // Action name
+        "actions/hello-with-params.js", // Function path
+        "nodejs:6",                     // "Runtime
+        "")                             // "Main" function name
+
+    if err != nil {
+        if action, ok := m.Package.Actions[TEST_ACTION_NAME]; ok {
+
+            // test action parameters
+            actualResult := action.Inputs[TEST_PARAM_NAME_1].Value.(string)
+            assert.Equal(t, TEST_PARAM_VALUE_1, actualResult,
+                fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, 
TEST_PARAM_NAME_1))
+
+            actualResult = action.Inputs[TEST_PARAM_NAME_2].Value.(string)
+            assert.Equal(t, TEST_PARAM_VALUE_2, actualResult,
+                fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, 
TEST_PARAM_NAME_2))
+
         }
     }
 }
@@ -206,20 +224,10 @@ package:
 // Test 6: validate manifest_parser:Unmarshal() method for an invalid manifest
 // manifest_parser should report an error when a package section is missing
 func TestUnmarshalForMissingPackage(t *testing.T) {
-    data := `
-  actions:
-    helloNodejs:
-      function: actions/hello.js
-      runtime: nodejs:6
-    helloJava:
-      function: actions/hello.java`
-    // set the zero value of struct YAML
-    m := YAML{}
-    // Unmarshal reads/parses manifest data and sets the values of YAML
-    // And returns an error if parsing a manifest data fails
-    err := NewYAMLParser().Unmarshal([]byte(data), &m)
-    assert.NotNil(t, err, "Expected some error from Unmarshal but got no 
error")
+    TEST_MANIFEST := "../tests/dat/manifest_invalid_package_missing.yaml"
 
+    _, err := testReadAndUnmarshalManifest(t, TEST_MANIFEST)
+    assert.NotNil(t, err, 
fmt.Sprintf(TEST_MSG_MANIFEST_UNMARSHALL_ERROR_EXPECTED, TEST_MANIFEST))
 }
 
 /*
@@ -231,39 +239,41 @@ func TestParseManifestForMultiLineParams(t *testing.T) {
     // manifest file is located under ../tests folder
     manifestFile := "../tests/dat/manifest_validate_multiline_params.yaml"
     // read and parse manifest.yaml file
-    m, _ := NewYAMLParser().ParseManifest(manifestFile)
+    m, err := NewYAMLParser().ParseManifest(manifestFile)
+
+    if err != nil {
+        assert.Fail(t, fmt.Sprintf(TEST_ERROR_MANIFEST_PARSE_FAILURE, 
manifestFile))
+    }
 
     // validate package name should be "validate"
     packageName := "validate"
-    assert.NotNil(t, m.Packages[packageName],
-        "Expected package named validate but got none")
 
     // validate this package contains one action
     expectedActionsCount := 1
     actualActionsCount := len(m.Packages[packageName].Actions)
-    assert.Equal(t, expectedActionsCount, actualActionsCount,
-        "Expected " + string(expectedActionsCount) + " but got " + 
string(actualActionsCount))
+    assert.Equal(t, expectedActionsCount, actualActionsCount, 
TEST_MSG_ACTION_NUMBER_MISMATCH)
 
     // here Package.Actions holds a map of map[string]Action
     // where string is the action name so in case you create two actions with
     // same name, will go unnoticed
     // also, the Action struct does not have name field set it to action name
     actionName := "validate_multiline_params"
+
     if action, ok := m.Packages[packageName].Actions[actionName]; ok {
-        // validate location/function of an action to be 
"actions/dump_params.js"
+        // test action function's path
         expectedResult := "actions/dump_params.js"
         actualResult := action.Function
-        assert.Equal(t, expectedResult, actualResult, "Expected action 
function " + expectedResult + " but got " + actualResult)
+        assert.Equal(t, expectedResult, actualResult, 
TEST_MSG_ACTION_FUNCTION_PATH_MISMATCH)
 
-        // validate runtime of an action to be "nodejs:6"
+        // test action's runtime
         expectedResult = "nodejs:6"
         actualResult = action.Runtime
-        assert.Equal(t, expectedResult, actualResult, "Expected action runtime 
" + expectedResult + " but got " + actualResult)
+        assert.Equal(t, expectedResult, actualResult, 
TEST_MSG_ACTION_FUNCTION_RUNTIME_MISMATCH)
 
-        // validate the number of inputs to this action
+        // test # input params
         expectedResult = strconv.FormatInt(10, 10)
         actualResult = strconv.FormatInt(int64(len(action.Inputs)), 10)
-        assert.Equal(t, expectedResult, actualResult, "Expected " + 
expectedResult + " but got " + actualResult)
+        assert.Equal(t, expectedResult, actualResult, 
TEST_MSG_PARAMETER_NUMBER_MISMATCH)
 
         // validate inputs to this action
         for input, param := range action.Inputs {
@@ -271,55 +281,55 @@ func TestParseManifestForMultiLineParams(t *testing.T) {
             case "param_string_value_only":
                 expectedResult = "foo"
                 actualResult = param.Value.(string)
-                assert.Equal(t, expectedResult, actualResult, "Expected " + 
expectedResult + " but got " + actualResult)
+                assert.Equal(t, expectedResult, actualResult, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, param))
             case "param_int_value_only":
                 expectedResult = strconv.FormatInt(123, 10)
                 actualResult = strconv.FormatInt(int64(param.Value.(int)), 10)
-                assert.Equal(t, expectedResult, actualResult, "Expected " + 
expectedResult + " but got " + actualResult)
+                assert.Equal(t, expectedResult, actualResult, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, param))
             case "param_float_value_only":
                 expectedResult = strconv.FormatFloat(3.14, 'f', -1, 64)
                 actualResult = strconv.FormatFloat(param.Value.(float64), 'f', 
-1, 64)
-                assert.Equal(t, expectedResult, actualResult, "Expected " + 
expectedResult + " but got " + actualResult)
+                assert.Equal(t, expectedResult, actualResult, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, param))
             case "param_string_type_and_value_only":
                 expectedResult = "foo"
                 actualResult = param.Value.(string)
-                assert.Equal(t, expectedResult, actualResult, "Expected " + 
expectedResult + " but got " + actualResult)
+                assert.Equal(t, expectedResult, actualResult, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, param))
                 expectedResult = "string"
                 actualResult = param.Type
-                assert.Equal(t, expectedResult, actualResult, "Expected " + 
expectedResult + " but got " + actualResult)
+                assert.Equal(t, expectedResult, actualResult, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, param))
             case "param_string_type_only":
                 expectedResult = "string"
                 actualResult = param.Type
-                assert.Equal(t, expectedResult, actualResult, "Expected " + 
expectedResult + " but got " + actualResult)
+                assert.Equal(t, expectedResult, actualResult, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, param))
             case "param_integer_type_only":
                 expectedResult = "integer"
                 actualResult = param.Type
-                assert.Equal(t, expectedResult, actualResult, "Expected " + 
expectedResult + " but got " + actualResult)
+                assert.Equal(t, expectedResult, actualResult, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, param))
             case "param_float_type_only":
                 expectedResult = "float"
                 actualResult = param.Type
-                assert.Equal(t, expectedResult, actualResult, "Expected " + 
expectedResult + " but got " + actualResult)
+                assert.Equal(t, expectedResult, actualResult, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, param))
             case "param_string_with_default":
                 expectedResult = "string"
                 actualResult = param.Type
-                assert.Equal(t, expectedResult, actualResult, "Expected " + 
expectedResult + " but got " + actualResult)
+                assert.Equal(t, expectedResult, actualResult, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, param))
                 expectedResult = "bar"
                 actualResult = param.Default.(string)
-                assert.Equal(t, expectedResult, actualResult, "Expected " + 
expectedResult + " but got " + actualResult)
+                assert.Equal(t, expectedResult, actualResult, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, param))
             case "param_integer_with_default":
                 expectedResult = "integer"
                 actualResult = param.Type
-                assert.Equal(t, expectedResult, actualResult, "Expected " + 
expectedResult + " but got " + actualResult)
+                assert.Equal(t, expectedResult, actualResult, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, param))
                 expectedResult = strconv.FormatInt(-1, 10)
                 actualResult = strconv.FormatInt(int64(param.Default.(int)), 
10)
-                assert.Equal(t, expectedResult, actualResult, "Expected " + 
expectedResult + " but got " + actualResult)
+                assert.Equal(t, expectedResult, actualResult, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, param))
             case "param_float_with_default":
                 expectedResult = "float"
                 actualResult = param.Type
-                assert.Equal(t, expectedResult, actualResult, "Expected " + 
expectedResult + " but got " + actualResult)
+                assert.Equal(t, expectedResult, actualResult, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_TYPE_MISMATCH, param))
                 expectedResult = strconv.FormatFloat(2.9, 'f', -1, 64)
                 actualResult = strconv.FormatFloat(param.Default.(float64), 
'f', -1, 64)
-                assert.Equal(t, expectedResult, actualResult, "Expected " + 
expectedResult + " but got " + actualResult)
+                assert.Equal(t, expectedResult, actualResult, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, param))
             }
         }
 
@@ -329,10 +339,10 @@ func TestParseManifestForMultiLineParams(t *testing.T) {
             case "payload":
                 expectedType := "string"
                 actualType := param.Type
-                assert.Equal(t, expectedType, actualType, "Expected Type: " + 
expectedType + ", but got: " + actualType)
+                assert.Equal(t, expectedType, actualType, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_TYPE_MISMATCH, param))
                 expectedDesc := "parameter dump"
                 actualDesc := param.Description
-                assert.Equal(t, expectedDesc, actualDesc, "Expected " + 
expectedDesc + " but got " + actualDesc)
+                assert.Equal(t, expectedDesc, actualDesc, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, param))
 
             }
         }
@@ -344,36 +354,38 @@ func TestParseManifestForMultiLineParams(t *testing.T) {
 func TestParseManifestForSingleLineParams(t *testing.T) {
     // manifest file is located under ../tests folder
     manifestFile := "../tests/dat/manifest_validate_singleline_params.yaml"
+
     // read and parse manifest.yaml file
-    m, _ := NewYAMLParser().ParseManifest(manifestFile)
+    m, err := NewYAMLParser().ParseManifest(manifestFile)
+
+    if err != nil {
+        assert.Fail(t, fmt.Sprintf(TEST_ERROR_MANIFEST_PARSE_FAILURE, 
manifestFile))
+    }
 
     // validate package name should be "validate"
     packageName := "validate"
-    assert.NotNil(t, m.Packages[packageName],
-        "Expected package named "+ packageName + " but got none")
 
     // validate this package contains one action
     expectedActionsCount := 1
     actualActionsCount := len(m.Packages[packageName].Actions)
-    assert.Equal(t, expectedActionsCount, actualActionsCount,
-        "Expected " + string(expectedActionsCount) + " but got " + 
string(actualActionsCount))
+    assert.Equal(t, expectedActionsCount, actualActionsCount, 
TEST_MSG_ACTION_NUMBER_MISMATCH)
 
     actionName := "validate_singleline_params"
     if action, ok := m.Packages[packageName].Actions[actionName]; ok {
-        // validate location/function of an action to be 
"actions/dump_params.js"
+        // test Action function's path
         expectedResult := "actions/dump_params.js"
         actualResult := action.Function
-        assert.Equal(t, expectedResult, actualResult, "Expected action 
function " + expectedResult + " but got " + actualResult)
+        assert.Equal(t, expectedResult, actualResult, 
TEST_MSG_ACTION_FUNCTION_PATH_MISMATCH)
 
-        // validate runtime of an action to be "nodejs:6"
+        // test Action runtime
         expectedResult = "nodejs:6"
         actualResult = action.Runtime
-        assert.Equal(t, expectedResult, actualResult, "Expected action runtime 
" + expectedResult + " but got " + actualResult)
+        assert.Equal(t, expectedResult, actualResult, 
TEST_MSG_ACTION_FUNCTION_RUNTIME_MISMATCH)
 
-        // validate the number of inputs to this action
+        // test # of inputs
         expectedResult = strconv.FormatInt(22, 10)
         actualResult = strconv.FormatInt(int64(len(action.Inputs)), 10)
-        assert.Equal(t, expectedResult, actualResult, "Expected " + 
expectedResult + " but got " + actualResult)
+        assert.Equal(t, expectedResult, actualResult, 
TEST_MSG_PARAMETER_NUMBER_MISMATCH)
 
         // validate Inputs to this action
         for input, param := range action.Inputs {
@@ -381,55 +393,55 @@ func TestParseManifestForSingleLineParams(t *testing.T) {
             case "param_simple_string":
                 expectedResult = "foo"
                 actualResult = param.Value.(string)
-                assert.Equal(t, expectedResult, actualResult, "Expected " + 
expectedResult + " but got " + actualResult)
+                assert.Equal(t, expectedResult, actualResult, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, param))
             case "param_simple_integer_1":
                 expectedResult = strconv.FormatInt(1, 10)
                 actualResult = strconv.FormatInt(int64(param.Value.(int)), 10)
-                assert.Equal(t, expectedResult, actualResult, "Expected " + 
expectedResult + " but got " + actualResult)
+                assert.Equal(t, expectedResult, actualResult, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, param))
             case "param_simple_integer_2":
                 expectedResult = strconv.FormatInt(0, 10)
                 actualResult = strconv.FormatInt(int64(param.Value.(int)), 10)
-                assert.Equal(t, expectedResult, actualResult, "Expected " + 
expectedResult + " but got " + actualResult)
+                assert.Equal(t, expectedResult, actualResult, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, param))
             case "param_simple_integer_3":
                 expectedResult = strconv.FormatInt(-1, 10)
                 actualResult = strconv.FormatInt(int64(param.Value.(int)), 10)
-                assert.Equal(t, expectedResult, actualResult, "Expected " + 
expectedResult + " but got " + actualResult)
+                assert.Equal(t, expectedResult, actualResult, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, param))
             case "param_simple_integer_4":
                 expectedResult = strconv.FormatInt(99999, 10)
                 actualResult = strconv.FormatInt(int64(param.Value.(int)), 10)
-                assert.Equal(t, expectedResult, actualResult, "Expected " + 
expectedResult + " but got " + actualResult)
+                assert.Equal(t, expectedResult, actualResult, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, param))
             case "param_simple_integer_5":
                 expectedResult = strconv.FormatInt(-99999, 10)
                 actualResult = strconv.FormatInt(int64(param.Value.(int)), 10)
-                assert.Equal(t, expectedResult, actualResult, "Expected " + 
expectedResult + " but got " + actualResult)
+                assert.Equal(t, expectedResult, actualResult, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, param))
             case "param_simple_float_1":
                 expectedResult = strconv.FormatFloat(1.1, 'f', -1, 64)
                 actualResult = strconv.FormatFloat(param.Value.(float64), 'f', 
-1, 64)
-                assert.Equal(t, expectedResult, actualResult, "Expected " + 
expectedResult + " but got " + actualResult)
+                assert.Equal(t, expectedResult, actualResult, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, param))
             case "param_simple_float_2":
                 expectedResult = strconv.FormatFloat(0.0, 'f', -1, 64)
                 actualResult = strconv.FormatFloat(param.Value.(float64), 'f', 
-1, 64)
-                assert.Equal(t, expectedResult, actualResult, "Expected " + 
expectedResult + " but got " + actualResult)
+                assert.Equal(t, expectedResult, actualResult, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, param))
             case "param_simple_float_3":
                 expectedResult = strconv.FormatFloat(-1.1, 'f', -1, 64)
                 actualResult = strconv.FormatFloat(param.Value.(float64), 'f', 
-1, 64)
-                assert.Equal(t, expectedResult, actualResult, "Expected " + 
expectedResult + " but got " + actualResult)
+                assert.Equal(t, expectedResult, actualResult, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, param))
             case "param_simple_env_var_1":
                 expectedResult = "$GOPATH"
                 actualResult = param.Value.(string)
-                assert.Equal(t, expectedResult, actualResult, "Expected " + 
expectedResult + " but got " + actualResult)
+                assert.Equal(t, expectedResult, actualResult, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, param))
             case "param_simple_invalid_env_var":
                 expectedResult = "$DollarSignNotInEnv"
                 actualResult = param.Value.(string)
-                assert.Equal(t, expectedResult, actualResult, "Expected " + 
expectedResult + " but got " + actualResult)
+                assert.Equal(t, expectedResult, actualResult, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, param))
             case "param_simple_implied_empty":
                 assert.Nil(t, param.Value, "Expected nil")
             case "param_simple_explicit_empty_1":
                 actualResult = param.Value.(string)
-                assert.Empty(t, actualResult, "Expected empty string but got " 
+ actualResult)
+                assert.Empty(t, actualResult)
             case "param_simple_explicit_empty_2":
                 actualResult = param.Value.(string)
-                assert.Empty(t, actualResult, "Expected empty string but got " 
+ actualResult)
+                assert.Empty(t, actualResult)
             }
         }
 
@@ -439,11 +451,11 @@ func TestParseManifestForSingleLineParams(t *testing.T) {
             case "payload":
                 expectedResult = "string"
                 actualResult = param.Type
-                assert.Equal(t, expectedResult, actualResult, "Expected " + 
expectedResult + " but got " + actualResult)
+                assert.Equal(t, expectedResult, actualResult, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_TYPE_MISMATCH, param))
 
                 expectedResult = "parameter dump"
                 actualResult = param.Description
-                assert.Equal(t, expectedResult, actualResult, "Expected " + 
expectedResult + " but got " + actualResult)
+                assert.Equal(t, expectedResult, actualResult, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, param))
             }
         }
     }
@@ -489,7 +501,7 @@ func TestComposeActionsForImplicitRuntimes(t *testing.T) {
                         expectedResult = "swift:3.1.1"
                     }
                     actualResult := actions[i].Action.Exec.Kind
-                    assert.Equal(t, expectedResult, actualResult, "Expected " 
+ expectedResult + " but got " + actualResult)
+                    assert.Equal(t, expectedResult, actualResult, 
TEST_MSG_ACTION_FUNCTION_RUNTIME_MISMATCH)
                 }
             }
 
@@ -521,9 +533,9 @@ func TestComposeActionsForInvalidRuntime(t *testing.T) {
             // (TODO) uncomment the following test case after issue #307 is 
fixed
             // (TODO) its failing right now as we are lacking check on invalid 
runtime
             // TODO() 
https://github.com/apache/incubator-openwhisk-wskdeploy/issues/608
-            // assert.NotNil(t, err, "Invalid runtime, ComposeActions should 
report an error")
+            //assert.NotNil(t, err, "Invalid runtime, ComposeActions should 
report an error")
             // (TODO) remove this print statement after uncommenting above 
test case
-            fmt.Println(err)
+            fmt.Println(fmt.Sprintf("!!! TODO(): Fix this testcase: 
error=[%v]", err))
         }
         tmpfile.Close()
     }
@@ -534,19 +546,21 @@ func TestComposeActionsForInvalidRuntime(t *testing.T) {
 func TestComposeActionsForSingleLineParams(t *testing.T) {
     // manifest file is located under ../tests folder
     manifestFile := "../tests/dat/manifest_validate_singleline_params.yaml"
+
     // read and parse manifest.yaml file
     p := NewYAMLParser()
     m, err := p.ParseManifest(manifestFile)
 
     if err != nil {
-        assert.Fail(t, "Failed to parse manifest: " + manifestFile )
+        assert.Fail(t, fmt.Sprintf(TEST_ERROR_MANIFEST_PARSE_FAILURE, 
manifestFile))
     }
 
+    // Call the method we are testing
     actions, err := p.ComposeActionsFromAllPackages(m, manifestFile, 
whisk.KeyValue{})
 
     if err == nil {
-        // assert that the actions variable has only one action
-        assert.Equal(t, 1, len(actions), "We have defined only one action but 
we got " + string(len(actions)))
+        // test # actions
+        assert.Equal(t, 1, len(actions), TEST_MSG_ACTION_NUMBER_MISMATCH)
 
         action := actions[0]
 
@@ -555,135 +569,158 @@ func TestComposeActionsForSingleLineParams(t 
*testing.T) {
          */
 
         // param_simple_string should value "foo"
+        paramName := "param_simple_string"
         expectedResult := "foo"
-        actualResult := 
action.Action.Parameters.GetValue("param_simple_string").(string)
-        assert.Equal(t, expectedResult, actualResult, "Expected " + 
expectedResult + " but got " + actualResult)
+        actualResult := action.Action.Parameters.GetValue(paramName).(string)
+        assert.Equal(t, expectedResult, actualResult, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, paramName))
 
         /*
          * Simple 'integer' value tests
          */
 
         // param_simple_integer_1 should have value 1
+        paramName = "param_simple_integer_1"
         expectedResult = strconv.FormatInt(1, 10)
-        actualResult = 
strconv.FormatInt(int64(action.Action.Parameters.GetValue("param_simple_integer_1").(int)),
 10)
-        assert.Equal(t, expectedResult, actualResult, "Expected " + 
expectedResult + " but got " + actualResult)
+        actualResult = 
strconv.FormatInt(int64(action.Action.Parameters.GetValue(paramName).(int)), 10)
+        assert.Equal(t, expectedResult, actualResult, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, paramName))
 
         // param_simple_integer_2 should have value 0
+        paramName = "param_simple_integer_2"
         expectedResult = strconv.FormatInt(0, 10)
-        actualResult = 
strconv.FormatInt(int64(action.Action.Parameters.GetValue("param_simple_integer_2").(int)),
 10)
-        assert.Equal(t, expectedResult, actualResult, "Expected " + 
expectedResult + " but got " + actualResult)
+        actualResult = 
strconv.FormatInt(int64(action.Action.Parameters.GetValue(paramName).(int)), 10)
+        assert.Equal(t, expectedResult, actualResult, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, paramName))
 
         // param_simple_integer_3 should have value -1
+        paramName = "param_simple_integer_3"
         expectedResult = strconv.FormatInt(-1, 10)
-        actualResult = 
strconv.FormatInt(int64(action.Action.Parameters.GetValue("param_simple_integer_3").(int)),
 10)
-        assert.Equal(t, expectedResult, actualResult, "Expected " + 
expectedResult + " but got " + actualResult)
+        actualResult = 
strconv.FormatInt(int64(action.Action.Parameters.GetValue(paramName).(int)), 10)
+        assert.Equal(t, expectedResult, actualResult, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, paramName))
 
         // param_simple_integer_4 should have value 99999
+        paramName = "param_simple_integer_4"
         expectedResult = strconv.FormatInt(99999, 10)
-        actualResult = 
strconv.FormatInt(int64(action.Action.Parameters.GetValue("param_simple_integer_4").(int)),
 10)
-        assert.Equal(t, expectedResult, actualResult, "Expected " + 
expectedResult + " but got " + actualResult)
+        actualResult = 
strconv.FormatInt(int64(action.Action.Parameters.GetValue(paramName).(int)), 10)
+        assert.Equal(t, expectedResult, actualResult, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, paramName))
 
         // param_simple_integer_5 should have value -99999
+        paramName = "param_simple_integer_5"
         expectedResult = strconv.FormatInt(-99999, 10)
-        actualResult = 
strconv.FormatInt(int64(action.Action.Parameters.GetValue("param_simple_integer_5").(int)),
 10)
-        assert.Equal(t, expectedResult, actualResult, "Expected " + 
expectedResult + " but got " + actualResult)
+        actualResult = 
strconv.FormatInt(int64(action.Action.Parameters.GetValue(paramName).(int)), 10)
+        assert.Equal(t, expectedResult, actualResult, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, paramName))
 
         /*
          * Simple 'float' value tests
          */
 
         // param_simple_float_1 should have value 1.1
+        paramName = "param_simple_float_1"
         expectedResult = strconv.FormatFloat(1.1, 'f', -1, 64)
-        actualResult = 
strconv.FormatFloat(action.Action.Parameters.GetValue("param_simple_float_1").(float64),
 'f', -1, 64)
-        assert.Equal(t, expectedResult, actualResult, "Expected " + 
expectedResult + " but got " + actualResult)
+        actualResult = 
strconv.FormatFloat(action.Action.Parameters.GetValue(paramName).(float64), 
'f', -1, 64)
+        assert.Equal(t, expectedResult, 
actualResult,fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, paramName))
 
         // param_simple_float_2 should have value 0.0
+        paramName = "param_simple_float_2"
         expectedResult = strconv.FormatFloat(0.0, 'f', -1, 64)
-        actualResult = 
strconv.FormatFloat(action.Action.Parameters.GetValue("param_simple_float_2").(float64),
 'f', -1, 64)
-        assert.Equal(t, expectedResult, actualResult, "Expected " + 
expectedResult + " but got " + actualResult)
+        actualResult = 
strconv.FormatFloat(action.Action.Parameters.GetValue(paramName).(float64), 
'f', -1, 64)
+        assert.Equal(t, expectedResult, actualResult, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, paramName))
 
         // param_simple_float_3 should have value -1.1
+        paramName = "param_simple_float_3"
         expectedResult = strconv.FormatFloat(-1.1, 'f', -1, 64)
-        actualResult = 
strconv.FormatFloat(action.Action.Parameters.GetValue("param_simple_float_3").(float64),
 'f', -1, 64)
-        assert.Equal(t, expectedResult, actualResult, "Expected " + 
expectedResult + " but got " + actualResult)
+        actualResult = 
strconv.FormatFloat(action.Action.Parameters.GetValue(paramName).(float64), 
'f', -1, 64)
+        assert.Equal(t, expectedResult, actualResult, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, paramName))
 
         /*
          * Environment Variable / dollar ($) notation tests
          */
 
         // param_simple_env_var_1 should have value of env. variable $GOPATH
+        paramName = "param_simple_env_var_1"
         expectedResult = os.Getenv("GOPATH")
-        actualResult = 
action.Action.Parameters.GetValue("param_simple_env_var_1").(string)
-        assert.Equal(t, expectedResult, actualResult, "Expected " + 
expectedResult + " but got " + actualResult)
+        actualResult = action.Action.Parameters.GetValue(paramName).(string)
+        assert.Equal(t, expectedResult, actualResult, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, paramName))
 
         // param_simple_env_var_2 should have value of env. variable $GOPATH
+        paramName = "param_simple_env_var_2"
         expectedResult = os.Getenv("GOPATH")
-        actualResult = 
action.Action.Parameters.GetValue("param_simple_env_var_2").(string)
-        assert.Equal(t, expectedResult, actualResult, "Expected " + 
expectedResult + " but got " + actualResult)
+        actualResult = action.Action.Parameters.GetValue(paramName).(string)
+        assert.Equal(t, expectedResult, actualResult, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, paramName))
 
         // param_simple_env_var_3 should have value of env. variable "${}"
+        paramName = "param_simple_env_var_3"
         expectedResult = "${}"
-        actualResult = 
action.Action.Parameters.GetValue("param_simple_env_var_3").(string)
-        assert.Equal(t, expectedResult, actualResult, "Expected " + 
expectedResult + " but got " + actualResult)
+        actualResult = action.Action.Parameters.GetValue(paramName).(string)
+        assert.Equal(t, expectedResult, actualResult, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, paramName))
 
         // param_simple_invalid_env_var should have value of ""
+        paramName = "param_simple_invalid_env_var"
         expectedResult = ""
-        actualResult = 
action.Action.Parameters.GetValue("param_simple_invalid_env_var").(string)
-        assert.Equal(t, expectedResult, actualResult, "Expected " + 
expectedResult + " but got " + actualResult)
+        actualResult = action.Action.Parameters.GetValue(paramName).(string)
+        assert.Equal(t, expectedResult, actualResult, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, paramName))
 
         /*
          * Environment Variable concatenation tests
          */
 
         // param_simple_env_var_concat_1 should have value of env. variable 
"$GOPTH/test" empty string
+        paramName = "param_simple_env_var_concat_1"
         expectedResult = os.Getenv("GOPATH") + "/test"
-        actualResult = 
action.Action.Parameters.GetValue("param_simple_env_var_concat_1").(string)
-        assert.Equal(t, expectedResult, actualResult, "Expected " + 
expectedResult + " but got " + actualResult)
+        actualResult = action.Action.Parameters.GetValue(paramName).(string)
+        assert.Equal(t, expectedResult, actualResult, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, paramName))
 
         // param_simple_env_var_concat_2 should have value of env. variable "" 
empty string
         // as the "/test" is treated as part of the environment var. and not 
concatenated.
+        paramName = "param_simple_env_var_concat_2"
         expectedResult = ""
-        actualResult = 
action.Action.Parameters.GetValue("param_simple_env_var_concat_2").(string)
-        assert.Equal(t, expectedResult, actualResult, "Expected " + 
expectedResult + " but got " + actualResult)
+        actualResult = action.Action.Parameters.GetValue(paramName).(string)
+        assert.Equal(t, expectedResult, actualResult, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, paramName))
 
         // param_simple_env_var_concat_3 should have value of env. variable "" 
empty string
+        paramName = "param_simple_env_var_concat_3"
         expectedResult = "ddd.ccc." + os.Getenv("GOPATH")
-        actualResult = 
action.Action.Parameters.GetValue("param_simple_env_var_concat_3").(string)
-        assert.Equal(t, expectedResult, actualResult, "Expected " + 
expectedResult + " but got " + actualResult)
+        actualResult = action.Action.Parameters.GetValue(paramName).(string)
+        assert.Equal(t, expectedResult, actualResult, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, paramName))
 
         /*
          * Empty string tests
          */
 
         // param_simple_implied_empty should be ""
-        actualResult = 
action.Action.Parameters.GetValue("param_simple_implied_empty").(string)
-        assert.Empty(t, "", "Expected empty string but got " + actualResult)
+        paramName = "param_simple_implied_empty"
+        actualResult = action.Action.Parameters.GetValue(paramName).(string)
+        assert.Empty(t, actualResult, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, paramName))
 
         // param_simple_explicit_empty_1 should be ""
-        actualResult = 
action.Action.Parameters.GetValue("param_simple_explicit_empty_1").(string)
-        assert.Empty(t, "", "Expected empty string but got " + actualResult)
+        paramName = "param_simple_explicit_empty_1"
+        actualResult = action.Action.Parameters.GetValue(paramName).(string)
+        assert.Empty(t, actualResult, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, paramName))
 
         // param_simple_explicit_empty_2 should be ""
-        actualResult = 
action.Action.Parameters.GetValue("param_simple_explicit_empty_2").(string)
-        assert.Empty(t, "", "Expected empty string but got " + actualResult)
+        paramName = "param_simple_explicit_empty_2"
+        actualResult = action.Action.Parameters.GetValue(paramName).(string)
+        assert.Empty(t, actualResult, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, paramName))
 
         /*
          * Test values that contain "Type names" (e.g., "string", "integer", 
"float, etc.)
          */
 
         // param_simple_type_string should be "" when value set to "string"
-        actualResult = 
action.Action.Parameters.GetValue("param_simple_type_string").(string)
-        assert.Empty(t, "", "Expected empty string but got " + actualResult)
+        paramName = "param_simple_type_string"
+        expectedResult = ""
+        actualResult = action.Action.Parameters.GetValue(paramName).(string)
+        assert.Equal(t, expectedResult, actualResult, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, paramName))
 
         // param_simple_type_integer should be 0.0 when value set to "integer"
+        paramName = "param_simple_type_integer"
         expectedResult = strconv.FormatInt(0, 10)
-        actualResult = 
strconv.FormatInt(int64(action.Action.Parameters.GetValue("param_simple_type_integer").(int)),
 10)
-        assert.Empty(t, 0, "Expected empty string but got " + actualResult)
+        actualResult = 
strconv.FormatInt(int64(action.Action.Parameters.GetValue(paramName).(int)), 10)
+        assert.Equal(t, expectedResult, actualResult, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, paramName))
 
         // param_simple_type_float should be 0 when value set to "float"
+        paramName = "param_simple_type_float"
         expectedResult = strconv.FormatFloat(0.0, 'f', -1, 64)
-        actualResult = 
strconv.FormatFloat(action.Action.Parameters.GetValue("param_simple_type_float").(float64),
 'f', -1, 64)
-        assert.Empty(t, 0.0, "Expected empty string but got " + actualResult)
+        actualResult = 
strconv.FormatFloat(action.Action.Parameters.GetValue(paramName).(float64), 
'f', -1, 64)
+        assert.Equal(t, expectedResult, actualResult, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, paramName))
 
     }
 }
@@ -693,72 +730,82 @@ func TestComposeActionsForSingleLineParams(t *testing.T) {
 func TestComposeActionsForMultiLineParams(t *testing.T) {
     // manifest file is located under ../tests folder
     manifestFile := "../tests/dat/manifest_validate_multiline_params.yaml"
+
     // read and parse manifest.yaml file
     p := NewYAMLParser()
     m, err := p.ParseManifest(manifestFile)
 
     if err != nil {
-        assert.Fail(t, "Failed to parse manifest: " + manifestFile )
+        assert.Fail(t, fmt.Sprintf(TEST_ERROR_MANIFEST_PARSE_FAILURE, 
manifestFile))
     }
 
+    // call the method we are testing
     actions, err := p.ComposeActionsFromAllPackages(m, manifestFile, 
whisk.KeyValue{})
 
     if err == nil {
-        // assert that the actions variable has only one action
-        assert.Equal(t, 1, len(actions), "We have defined only one action but 
we got " + string(len(actions)))
+        // test # actions
+        assert.Equal(t, 1, len(actions), TEST_MSG_ACTION_NUMBER_MISMATCH)
 
         action := actions[0]
 
-        fmt.Println(action.Action.Parameters)
-
         // param_string_value_only should be "foo"
+        paramName := "param_string_value_only"
         expectedResult := "foo"
-        actualResult := 
action.Action.Parameters.GetValue("param_string_value_only").(string)
-        assert.Equal(t, expectedResult, actualResult, "Expected " + 
expectedResult + " but got " + actualResult)
+        actualResult := action.Action.Parameters.GetValue(paramName).(string)
+        assert.Equal(t, expectedResult, actualResult, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, paramName))
 
         // param_int_value_only should be 123
+        paramName = "param_int_value_only"
         expectedResult = strconv.FormatInt(123, 10)
-        actualResult = 
strconv.FormatInt(int64(action.Action.Parameters.GetValue("param_int_value_only").(int)),
 10)
-        assert.Equal(t, expectedResult, actualResult, "Expected " + 
expectedResult + " but got " + actualResult)
+        actualResult = 
strconv.FormatInt(int64(action.Action.Parameters.GetValue(paramName).(int)), 10)
+        assert.Equal(t, expectedResult, actualResult, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, paramName))
 
         // param_float_value_only should be 3.14
+        paramName = "param_float_value_only"
         expectedResult = strconv.FormatFloat(3.14, 'f', -1, 64)
-        actualResult = 
strconv.FormatFloat(action.Action.Parameters.GetValue("param_float_value_only").(float64),
 'f', -1, 64)
-        assert.Equal(t, expectedResult, actualResult, "Expected " + 
expectedResult + " but got " + actualResult)
+        actualResult = 
strconv.FormatFloat(action.Action.Parameters.GetValue(paramName).(float64), 
'f', -1, 64)
+        assert.Equal(t, expectedResult, actualResult, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, paramName))
 
         // param_string_type_and_value_only should be foo
+        paramName = "param_string_type_and_value_only"
         expectedResult = "foo"
-        actualResult = 
action.Action.Parameters.GetValue("param_string_type_and_value_only").(string)
-        assert.Equal(t, expectedResult, actualResult, "Expected " + 
expectedResult + " but got " + actualResult)
+        actualResult = action.Action.Parameters.GetValue(paramName).(string)
+        assert.Equal(t, expectedResult, actualResult, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, paramName))
 
         // param_string_type_only should be ""
-        actualResult = 
action.Action.Parameters.GetValue("param_string_type_only").(string)
-        assert.Empty(t, actualResult, "Expected empty string but got " + 
actualResult)
+        paramName = "param_string_type_only"
+        actualResult = action.Action.Parameters.GetValue(paramName).(string)
+        assert.Empty(t, actualResult, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, paramName))
 
         // param_integer_type_only should be 0
+        paramName = "param_integer_type_only"
         expectedResult = strconv.FormatInt(0, 10)
-        actualResult = 
strconv.FormatInt(int64(action.Action.Parameters.GetValue("param_integer_type_only").(int)),
 10)
-        assert.Equal(t, expectedResult, actualResult, "Expected " + 
expectedResult + " but got " + actualResult)
+        actualResult = 
strconv.FormatInt(int64(action.Action.Parameters.GetValue(paramName).(int)), 10)
+        assert.Equal(t, expectedResult, actualResult, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, paramName))
 
         // param_float_type_only should be 0
+        paramName = "param_float_type_only"
         expectedResult = strconv.FormatFloat(0.0, 'f', -1, 64)
-        actualResult = 
strconv.FormatFloat(action.Action.Parameters.GetValue("param_float_type_only").(float64),
 'f', -1, 64)
-        assert.Equal(t, expectedResult, actualResult, "Expected " + 
expectedResult + " but got " + actualResult)
+        actualResult = 
strconv.FormatFloat(action.Action.Parameters.GetValue(paramName).(float64), 
'f', -1, 64)
+        assert.Equal(t, expectedResult, actualResult, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, paramName))
 
         // param_string_with_default should be "bar"
+        paramName = "param_string_with_default"
         expectedResult = "bar"
-        actualResult = 
action.Action.Parameters.GetValue("param_string_with_default").(string)
-        assert.Equal(t, expectedResult, actualResult, "Expected " + 
expectedResult + " but got " + actualResult)
+        actualResult = action.Action.Parameters.GetValue(paramName).(string)
+        assert.Equal(t, expectedResult, actualResult, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, paramName))
 
         // param_integer_with_default should be -1
+        paramName = "param_integer_with_default"
         expectedResult = strconv.FormatInt(-1, 10)
-        actualResult = 
strconv.FormatInt(int64(action.Action.Parameters.GetValue("param_integer_with_default").(int)),
 10)
-        assert.Equal(t, expectedResult, actualResult, "Expected " + 
expectedResult + " but got " + actualResult)
+        actualResult = 
strconv.FormatInt(int64(action.Action.Parameters.GetValue(paramName).(int)), 10)
+        assert.Equal(t, expectedResult, actualResult, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, paramName))
 
         // param_float_with_default should be 2.9
+        paramName = "param_float_with_default"
         expectedResult = strconv.FormatFloat(2.9, 'f', -1, 64)
-        actualResult = 
strconv.FormatFloat(action.Action.Parameters.GetValue("param_float_with_default").(float64),
 'f', -1, 64)
-        assert.Equal(t, expectedResult, actualResult, "Expected " + 
expectedResult + " but got " + actualResult)
+        actualResult = 
strconv.FormatFloat(action.Action.Parameters.GetValue(paramName).(float64), 
'f', -1, 64)
+        assert.Equal(t, expectedResult, actualResult, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, paramName))
     }
 }
 
@@ -893,28 +940,28 @@ func TestComposeActionsForWebActions(t *testing.T) {
 
 // Test 16: validate manifest_parser.ResolveParameter() method
 func TestResolveParameterForMultiLineParams(t *testing.T) {
-    p := "name"
+    paramName := "name"
     v := "foo"
     y := reflect.TypeOf(v).Name() // y := string
     d := "default_name"
 
     // type string - value only param
     param1 := Parameter{Value: v, multiline: true}
-    r1, _ := ResolveParameter(p, &param1, "")
-    assert.Equal(t, v, r1, "Expected value " + v + " but got " + r1.(string))
-    assert.IsType(t, v, r1, "Expected parameter %v of type %T but found %T", 
p, v, r1)
+    r1, _ := ResolveParameter(paramName, &param1, "")
+    assert.Equal(t, v, r1, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH,paramName))
+    assert.IsType(t, v, r1, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_TYPE_MISMATCH,paramName))
 
     // type string - type and value only param
     param2 := Parameter{Type: y, Value: v, multiline: true}
-    r2, _ := ResolveParameter(p, &param2, "")
-    assert.Equal(t, v, r2, "Expected value " + v + " but got " + r2.(string))
-    assert.IsType(t, v, r2, "Expected parameter %v of type %T but found %T", 
p, v, r2)
+    r2, _ := ResolveParameter(paramName, &param2, "")
+    assert.Equal(t, v, r2, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH,paramName))
+    assert.IsType(t, v, r2, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_TYPE_MISMATCH,paramName))
 
     // type string - type, no value, but default value param
     param3 := Parameter{Type: y, Default: d, multiline: true}
-    r3, _ := ResolveParameter(p, &param3, "")
-    assert.Equal(t, d, r3, "Expected value " + d + " but got " + r3.(string))
-    assert.IsType(t, d, r3, "Expected parameter %v of type %T but found %T", 
p, d, r3)
+    r3, _ := ResolveParameter(paramName, &param3, "")
+    assert.Equal(t, d, r3, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH,paramName))
+    assert.IsType(t, d, r3, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_TYPE_MISMATCH,paramName))
 
     // type string - type and value only param
     // type is "string" and value is of type "int"
@@ -924,13 +971,13 @@ func TestResolveParameterForMultiLineParams(t *testing.T) 
{
     // in this case, ResolveParameter returns value of type int
     v1 := 11
     param4 := Parameter{Type: y, Value: v1, multiline: true}
-    r4, _ := ResolveParameter(p, &param4, "")
-    assert.Equal(t, v1, r4, "Expected value " + strconv.FormatInt(int64(v1), 
10) + " but got " + strconv.FormatInt(int64(r4.(int)), 10))
-    assert.IsType(t, v1, r4, "Expected parameter %v of type %T but found %T", 
p, v1, r4)
+    r4, _ := ResolveParameter(paramName, &param4, "")
+    assert.Equal(t, v1, r4, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH,paramName))
+    assert.IsType(t, v1, r4, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_TYPE_MISMATCH,paramName))
 
     // type invalid - type only param
     param5 := Parameter{Type: "invalid", multiline: true}
-    _, err := ResolveParameter(p, &param5, "")
+    _, err := ResolveParameter(paramName, &param5, "")
     assert.NotNil(t, err, "Expected error saying Invalid type for parameter")
     switch errorType := err.(type) {
     default:
@@ -941,8 +988,9 @@ func TestResolveParameterForMultiLineParams(t *testing.T) {
 
     // type none - param without type, without value, and without default value
     param6 := Parameter{multiline: true}
-    r6, _ := ResolveParameter("none", &param6, "")
-    assert.Empty(t, r6, "Expected default value of empty string but found " + 
r6.(string))
+    paramName = "none"
+    r6, _ := ResolveParameter(paramName, &param6, "")
+    assert.Empty(t, r6, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH,paramName))
 
 }
 
@@ -954,37 +1002,32 @@ func TestParseManifestForJSONParams(t *testing.T) {
     m, err := NewYAMLParser().ParseManifest(manifestFile)
 
     if err != nil {
-        assert.Fail(t, "Failed to parse manifest: " + manifestFile )
+        assert.Fail(t, fmt.Sprintf(TEST_ERROR_MANIFEST_PARSE_FAILURE, 
manifestFile))
     }
 
     // validate package name should be "validate"
     packageName := "validate_json"
     actionName := "validate_json_params"
-    expectedActionsCount := 1
-
-    assert.NotNil(t, m.Packages[packageName],
-        "Expected package named "+ packageName + " but got none")
 
     // validate this package contains one action
     actualActionsCount := len(m.Packages[packageName].Actions)
-    assert.Equal(t, expectedActionsCount, actualActionsCount,
-        "Expected " + string(expectedActionsCount) + " but got " + 
string(actualActionsCount))
+    assert.Equal(t, 1, actualActionsCount, TEST_MSG_ACTION_NUMBER_MISMATCH)
 
     if action, ok := m.Packages[packageName].Actions[actionName]; ok {
-        // validate location/function of an action to be 
"actions/dump_params.js"
+        // test Action function's path
         expectedResult := "actions/dump_params.js"
         actualResult := action.Function
-        assert.Equal(t, expectedResult, actualResult, "Expected action 
function " + expectedResult + " but got " + actualResult)
+        assert.Equal(t, expectedResult, actualResult, 
TEST_MSG_ACTION_FUNCTION_PATH_MISMATCH)
 
         // validate runtime of an action to be "nodejs:6"
         expectedResult = "nodejs:6"
         actualResult = action.Runtime
-        assert.Equal(t, expectedResult, actualResult, "Expected action runtime 
" + expectedResult + " but got " + actualResult)
+        assert.Equal(t, expectedResult, actualResult, 
TEST_MSG_ACTION_FUNCTION_RUNTIME_MISMATCH)
 
         // validate the number of inputs to this action
         expectedResult = strconv.FormatInt(6, 10)
         actualResult = strconv.FormatInt(int64(len(action.Inputs)), 10)
-        assert.Equal(t, expectedResult, actualResult, "Expected " + 
expectedResult + " but got " + actualResult)
+        assert.Equal(t, expectedResult, actualResult, 
TEST_MSG_PARAMETER_NUMBER_MISMATCH)
 
         // validate inputs to this action
         for input, param := range action.Inputs {
@@ -994,27 +1037,27 @@ func TestParseManifestForJSONParams(t *testing.T) {
             case "member1":
                 actualResult1 := param.Value.(string)
                 expectedResult1 := "{ \"name\": \"Sam\", \"place\": \"Shire\" 
}"
-                assert.Equal(t, expectedResult1, actualResult1, "Expected " + 
expectedResult + " but got " + actualResult)
+                assert.Equal(t, expectedResult1, actualResult1, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, input))
             case "member2":
                 actualResult2 := param.Value.(map[interface{}]interface{})
                 expectedResult2 := map[interface{}]interface{}{"name": "Sam", 
"place": "Shire"}
-                assert.Equal(t, expectedResult2, actualResult2, "Expected " + 
expectedResult + " but got " + actualResult)
+                assert.Equal(t, expectedResult2, actualResult2, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, input))
             case "member3":
                 actualResult3 := param.Value.(map[interface{}]interface{})
                 expectedResult3 := map[interface{}]interface{}{"name": 
"Elrond", "place": "Rivendell"}
-                assert.Equal(t, expectedResult3, actualResult3, "Expected " + 
expectedResult + " but got " + actualResult)
+                assert.Equal(t, expectedResult3, actualResult3, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, input))
             case "member4":
                 actualResult4 := param.Value.(map[interface{}]interface{})
                 expectedResult4 := map[interface{}]interface{}{"name": 
"Gimli", "place": "Gondor", "age": 139, "children": 
map[interface{}]interface{}{ "<none>": "<none>" }}
-                assert.Equal(t, expectedResult4, actualResult4, "Expected " + 
expectedResult + " but got " + actualResult)
+                assert.Equal(t, expectedResult4, actualResult4, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, input))
             case "member5":
                 actualResult5 := param.Value.(map[interface{}]interface{})
                 expectedResult5 := map[interface{}]interface{}{"name": 
"Gloin", "place": "Gondor", "age": 235, "children": 
map[interface{}]interface{}{ "Gimli": "Son" }}
-                assert.Equal(t, expectedResult5, actualResult5, "Expected " + 
expectedResult + " but got " + actualResult)
+                assert.Equal(t, expectedResult5, actualResult5, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, input))
             case "member6":
                 actualResult6 := param.Value.(map[interface{}]interface{})
                 expectedResult6 := map[interface{}]interface{}{"name": 
"Frodo", "place": "Undying Lands", "items": []interface{}{"Sting", "Mithril 
mail"}}
-                assert.Equal(t, expectedResult6, actualResult6, "Expected " + 
expectedResult + " but got " + actualResult)
+                assert.Equal(t, expectedResult6, actualResult6, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_VALUE_MISMATCH, input))
             }
         }
 
@@ -1024,7 +1067,7 @@ func TestParseManifestForJSONParams(t *testing.T) {
             case "fellowship":
                 expectedType := "json"
                 actualType := param.Type
-                assert.Equal(t, expectedType, actualType, "Expected Type: " + 
expectedType + ", but got: " + actualType)
+                assert.Equal(t, expectedType, actualType, 
fmt.Sprintf(TEST_MSG_ACTION_PARAMETER_TYPE_MISMATCH, output))
             }
         }
     }
diff --git a/parsers/yamlparser.go b/parsers/yamlparser.go
index 172fa2c..f6e352c 100644
--- a/parsers/yamlparser.go
+++ b/parsers/yamlparser.go
@@ -27,22 +27,22 @@ func NewYAMLParser() *YAMLParser {
        return &YAMLParser{}
 }
 
-type ParseYaml interface {
-       Unmarshal(input []byte, deploy *YAML) error
-       Marshal(manifest *YAML) (output []byte, err error)
-
-       //Compose Package entity according to yaml content
-       ComposePackages(manifestpath string) ([]*whisk.Package, error)
-
-       // Compose Action entities according to yaml content
-       ComposeActions(manifestpath string) ([]*whisk.Action, error)
-
-       // Compose Trigger entities according to deployment and manifest yaml 
content
-       ComposeTriggers(manifestpath string, deploymentpath string) 
([]*whisk.Trigger, error)
-
-       // Compose Rule entities according to yaml content
-       ComposeRules(manifestpath string) ([]*whisk.Rule, error)
-}
+//type ParseYaml interface {
+//     Unmarshal(input []byte, deploy *YAML) error
+//     Marshal(manifest *YAML) (output []byte, err error)
+//
+//     //Compose Package entity according to yaml content
+//     ComposePackages(manifestpath string) ([]*whisk.Package, error)
+//
+//     // Compose Action entities according to yaml content
+//     ComposeActions(manifestpath string) ([]*whisk.Action, error)
+//
+//     // Compose Trigger entities according to deployment and manifest yaml 
content
+//     ComposeTriggers(manifestpath string, deploymentpath string) 
([]*whisk.Trigger, error)
+//
+//     // Compose Rule entities according to yaml content
+//     ComposeRules(manifestpath string) ([]*whisk.Rule, error)
+//}
 
 type YAMLParser struct {
        manifests []*YAML
diff --git a/tests/dat/manifest_hello_java_jar.yaml 
b/tests/dat/manifest_hello_java_jar.yaml
new file mode 100644
index 0000000..8a3a1d1
--- /dev/null
+++ b/tests/dat/manifest_hello_java_jar.yaml
@@ -0,0 +1,7 @@
+package:
+  name: helloworld
+  actions:
+    helloJava:
+      function: actions/hello.jar
+      runtime: java
+      main: Hello
diff --git a/tests/dat/manifest_hello_nodejs.yaml 
b/tests/dat/manifest_hello_nodejs.yaml
new file mode 100644
index 0000000..82bce71
--- /dev/null
+++ b/tests/dat/manifest_hello_nodejs.yaml
@@ -0,0 +1,6 @@
+package:
+  name: helloworld
+  actions:
+    helloNodejs:
+      function: actions/hello.js
+      runtime: nodejs:6
diff --git a/tests/dat/manifest_hello_nodejs_with_params.yaml 
b/tests/dat/manifest_hello_nodejs_with_params.yaml
new file mode 100644
index 0000000..c23f811
--- /dev/null
+++ b/tests/dat/manifest_hello_nodejs_with_params.yaml
@@ -0,0 +1,9 @@
+package:
+   name: helloworld
+   actions:
+     helloWithParams:
+       function: actions/hello-with-params.js
+       runtime: nodejs:6
+       inputs:
+         name: Amy
+         place: Paris
diff --git a/tests/dat/manifest_hello_python.yaml 
b/tests/dat/manifest_hello_python.yaml
new file mode 100644
index 0000000..527d838
--- /dev/null
+++ b/tests/dat/manifest_hello_python.yaml
@@ -0,0 +1,6 @@
+package:
+  name: helloworld
+  actions:
+    helloPython:
+      function: actions/hello.py
+      runtime: python
diff --git a/tests/dat/manifest_hello_swift.yaml 
b/tests/dat/manifest_hello_swift.yaml
new file mode 100644
index 0000000..aedcb1d
--- /dev/null
+++ b/tests/dat/manifest_hello_swift.yaml
@@ -0,0 +1,6 @@
+package:
+  name: helloworld
+  actions:
+    helloSwift:
+      function: actions/hello.swift
+      runtime: swift
diff --git a/tests/dat/manifest_invalid_package_missing.yaml 
b/tests/dat/manifest_invalid_package_missing.yaml
new file mode 100644
index 0000000..f2480d6
--- /dev/null
+++ b/tests/dat/manifest_invalid_package_missing.yaml
@@ -0,0 +1,6 @@
+  actions:
+    helloNodejs:
+      function: actions/hello.js
+      runtime: nodejs:6
+    helloJava:
+      function: actions/hello.java
diff --git a/wskderrors/wskdeployerror_test.go 
b/wskderrors/wskdeployerror_test.go
index 5c7507d..8bf153e 100644
--- a/wskderrors/wskdeployerror_test.go
+++ b/wskderrors/wskdeployerror_test.go
@@ -171,11 +171,6 @@ func TestCustomErrorOutputFormat(t *testing.T) {
         */
 
        // TODO add a unit test once we re-factor error related modules into a 
new package
-       // to avoid cyclic dependency errors in GoLang.
-       //manifestFile := "../tests/dat/manifest_bad_yaml_invalid_comment.yaml"
-       //m, err := parsers.NewYAMLParser().ParseManifest(manifestFile)
-       //fmt.Println(err)
-
        // TODO - use actual YAML files to generate actual errors for 
comparison with expected error output
        //var TEST_LINES    = []string{"40", STR_UNKNOWN, "123"}
        //var TEST_MESSAGES = []string{"did not find expected key", "did not 
find expected ',' or ']'", "found duplicate %YAML directive"}

-- 
To stop receiving notification emails like this one, please contact
['"[email protected]" <[email protected]>'].

Reply via email to