feat context: Add deserialisation tests
This commit is contained in:
parent
a6eb421057
commit
75b6199c1b
3 changed files with 108 additions and 0 deletions
83
context/context_test.go
Normal file
83
context/context_test.go
Normal file
|
@ -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()
|
||||
}
|
||||
|
||||
}
|
15
context/testdata/collections-test.yaml
vendored
Normal file
15
context/testdata/collections-test.yaml
vendored
Normal file
|
@ -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
|
10
context/testdata/flat-test.yaml
vendored
Normal file
10
context/testdata/flat-test.yaml
vendored
Normal file
|
@ -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
|
Loading…
Reference in a new issue