From 75b6199c1b0b04bac32abc6f18a1dc2e68da0242 Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Wed, 8 Feb 2017 21:44:51 +0100 Subject: [PATCH] feat context: Add deserialisation tests --- context/context_test.go | 83 ++++++++++++++++++++++++++ context/testdata/collections-test.yaml | 15 +++++ context/testdata/flat-test.yaml | 10 ++++ 3 files changed, 108 insertions(+) create mode 100644 context/context_test.go create mode 100644 context/testdata/collections-test.yaml create mode 100644 context/testdata/flat-test.yaml diff --git a/context/context_test.go b/context/context_test.go new file mode 100644 index 000000000..b34222ed4 --- /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 000000000..a619c8cfd --- /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 000000000..dd7804f71 --- /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