about summary refs log tree commit diff
path: root/context/context_test.go
diff options
context:
space:
mode:
authorVincent Ambo <tazjin@gmail.com>2017-02-08T20·44+0100
committerVincent Ambo <tazjin@gmail.com>2017-02-08T21·12+0100
commit75b6199c1b0b04bac32abc6f18a1dc2e68da0242 (patch)
tree2f6aa7be86e108287f5915b5a924aca3c1095b12 /context/context_test.go
parenta6eb4210575c3d81ebd449b0b89092e33abf3394 (diff)
feat context: Add deserialisation tests
Diffstat (limited to 'context/context_test.go')
-rw-r--r--context/context_test.go83
1 files changed, 83 insertions, 0 deletions
diff --git a/context/context_test.go b/context/context_test.go
new file mode 100644
index 0000000000..b34222ed46
--- /dev/null
+++ b/context/context_test.go
@@ -0,0 +1,83 @@
+package context
+
+import (
+	"reflect"
+	"testing"
+)
+
+func TestLoadFlatContextFromFile(t *testing.T) {
+	ctx, err := LoadContextFromFile("testdata/flat-test.yaml")
+
+	if err != nil {
+		t.Error(err)
+		t.Fail()
+	}
+
+	expected := Context{
+		Name: "k8s.prod.mydomain.com",
+		Global: map[string]interface{}{
+			"globalVar": "lizards",
+		},
+		ResourceSets: []ResourceSet{
+			{
+				Name: "some-api",
+				Values: map[string]interface{}{
+					"apiPort":          float64(4567), // yep!
+					"importantFeature": true,
+					"version":          "1.0-0e6884d",
+				},
+				Include: nil,
+				Parent:  "",
+			},
+		},
+		BaseDir: "testdata",
+	}
+
+	if !reflect.DeepEqual(*ctx, expected) {
+		t.Error("Loaded context and expected context did not match")
+		t.Fail()
+	}
+}
+
+func TestLoadContextWithResourceSetCollections(t *testing.T) {
+	ctx, err := LoadContextFromFile("testdata/collections-test.yaml")
+
+	if err != nil {
+		t.Error(err)
+		t.Fail()
+	}
+
+	expected := Context{
+		Name: "k8s.prod.mydomain.com",
+		Global: map[string]interface{}{
+			"globalVar": "lizards",
+		},
+		ResourceSets: []ResourceSet{
+			{
+				Name: "some-api",
+				Values: map[string]interface{}{
+					"apiPort":          float64(4567), // yep!
+					"importantFeature": true,
+					"version":          "1.0-0e6884d",
+				},
+				Include: nil,
+				Parent:  "",
+			},
+			{
+				Name: "collection/nested",
+				Values: map[string]interface{}{
+					"lizards": "good",
+				},
+				Include: nil,
+				Parent:  "collection",
+			},
+		},
+		BaseDir: "testdata",
+	}
+
+	if !reflect.DeepEqual(*ctx, expected) {
+		t.Error("Loaded context and expected context did not match")
+		t.Fail()
+	}
+
+}