adding env. variable support in trigger feed (#732)

* adding env. variable support in trigger feed

* addin unit tests

* fixing typo in unit test

* adding comment
diff --git a/parsers/manifest_parser.go b/parsers/manifest_parser.go
index 88a3b03..b18118e 100644
--- a/parsers/manifest_parser.go
+++ b/parsers/manifest_parser.go
@@ -774,6 +774,10 @@
 			trigger.Feed = trigger.Source
 		}
 
+		// replacing env. variables here in the trigger feed name
+		// to support trigger feed with $READ_FROM_ENV_TRIGGER_FEED
+		trigger.Feed = wskenv.GetEnvVar(trigger.Feed).(string)
+
 		keyValArr := make(whisk.KeyValueArr, 0)
 		if trigger.Feed != "" {
 			var keyVal whisk.KeyValue
diff --git a/parsers/manifest_parser_test.go b/parsers/manifest_parser_test.go
index af906d1..1ac7b87 100644
--- a/parsers/manifest_parser_test.go
+++ b/parsers/manifest_parser_test.go
@@ -1280,6 +1280,9 @@
 }
 
 func TestComposeTriggers(t *testing.T) {
+	// set env variables needed for the trigger feed
+	os.Setenv("KAFKA_INSTANCE", "kafka-broker")
+	os.Setenv("SRC_TOPIC", "topic")
 	// read and parse manifest.yaml file located under ../tests folder
 	manifestFile := "../tests/dat/manifest_data_compose_triggers.yaml"
 	p := NewYAMLParser()
@@ -1293,7 +1296,7 @@
 		assert.Fail(t, "Failed to compose trigger")
 	}
 
-	assert.Equal(t, 2, len(triggerList), "Failed to get trigger list")
+	assert.Equal(t, 3, len(triggerList), "Failed to get trigger list")
 	for _, trigger := range triggerList {
 		switch trigger.Name {
 		case "trigger1":
@@ -1302,6 +1305,10 @@
 			assert.Equal(t, "feed", trigger.Annotations[0].Key, "Failed to set trigger annotation")
 			assert.Equal(t, "myfeed", trigger.Annotations[0].Value, "Failed to set trigger annotation")
 			assert.Equal(t, 2, len(trigger.Parameters), "Failed to set trigger parameters")
+		case "message-trigger":
+			assert.Equal(t, 2, len(trigger.Parameters), "Failed to set trigger parameters")
+			assert.Equal(t, "feed", trigger.Annotations[0].Key, "Failed to set trigger annotation")
+			assert.Equal(t, "Bluemix_kafka-broker_Credentials-1/messageHubFeed", trigger.Annotations[0].Value, "Failed to set trigger annotation")
 		}
 	}
 }
diff --git a/tests/dat/manifest_data_compose_triggers.yaml b/tests/dat/manifest_data_compose_triggers.yaml
index 9be02de..8fe02e3 100644
--- a/tests/dat/manifest_data_compose_triggers.yaml
+++ b/tests/dat/manifest_data_compose_triggers.yaml
@@ -26,3 +26,8 @@
       inputs:
         name: myname
         place: myplace
+    message-trigger:
+      feed: Bluemix_${KAFKA_INSTANCE}_Credentials-1/messageHubFeed
+      inputs:
+        isJSONData: true
+        topic: $SRC_TOPIC