about summary refs log tree commit diff
path: root/context
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
parenta6eb4210575c3d81ebd449b0b89092e33abf3394 (diff)
feat context: Add deserialisation tests
Diffstat (limited to 'context')
-rw-r--r--context/context_test.go83
-rw-r--r--context/testdata/collections-test.yaml15
-rw-r--r--context/testdata/flat-test.yaml10
3 files changed, 108 insertions, 0 deletions
diff --git a/context/context_test.go b/context/context_test.go
new file mode 100644
index 000000000000..b34222ed4650
--- /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()
+	}
+
+}
diff --git a/context/testdata/collections-test.yaml b/context/testdata/collections-test.yaml
new file mode 100644
index 000000000000..a619c8cfddcc
--- /dev/null
+++ b/context/testdata/collections-test.yaml
@@ -0,0 +1,15 @@
+---
+context: k8s.prod.mydomain.com
+global:
+  globalVar: lizards
+include:
+  - name: some-api
+    values:
+      version: 1.0-0e6884d
+      importantFeature: true
+      apiPort: 4567
+  - name: collection
+    include:
+      - name: nested
+        values:
+          lizards: good
diff --git a/context/testdata/flat-test.yaml b/context/testdata/flat-test.yaml
new file mode 100644
index 000000000000..dd7804f719c3
--- /dev/null
+++ b/context/testdata/flat-test.yaml
@@ -0,0 +1,10 @@
+---
+context: k8s.prod.mydomain.com
+global:
+  globalVar: lizards
+include:
+  - name: some-api
+    values:
+      version: 1.0-0e6884d
+      importantFeature: true
+      apiPort: 4567