test: simple unit tests for the config package

This commit is contained in:
Dan Anglin 2021-07-03 09:36:55 +01:00
parent c0fcf316b4
commit 44f0d2c130
Signed by: dananglin
GPG key ID: 0C1D44CFBEE68638
3 changed files with 89 additions and 0 deletions

View file

@ -0,0 +1,69 @@
package config
import (
"reflect"
"testing"
)
func TestValidConfig(t *testing.T) {
var testCase = struct {
name string
description string
file string
want Config
}{
name: "Test case: A valid Config",
description: "Testing the parsing of valid configuration.",
file: "./testdata/config-valid.json",
want: Config{
ProjectName: "forge-platform-test-config",
Docker: DockerConfig{
Network: DockerNetworkConfig{
Name: "forge-platform-test-netwwork",
Subnet: "172.17.1.0/24",
Driver: "default",
},
},
},
}
testFunc := func(t *testing.T) {
t.Log(testCase.description)
got, err := NewConfig(testCase.file)
if err != nil {
t.Fatalf("Unable to create the configuration from file: %v", err)
}
if !reflect.DeepEqual(got, testCase.want) {
t.Errorf("Unexpected Config value created. Got %v, want %v", got, testCase.want)
} else {
t.Log("Test passed.")
}
}
t.Run(testCase.name, testFunc)
}
func TestInvalidConfig(t *testing.T) {
var testCase = struct {
name string
description string
file string
}{
name: "Test case: An invalid Config",
description: "Testing the handling of invalid configuration.",
file: "./testdata/config-invalid.json",
}
testFunc := func(t *testing.T) {
t.Log(testCase.description)
_, err := NewConfig(testCase.file)
if err == nil {
t.Error("Expected an error with this invalid configuration.")
} else {
t.Log("Test passed.")
}
}
t.Run(testCase.name, testFunc)
}

View file

@ -0,0 +1,10 @@
{
"project": "forge-platform-test-config",
"docker": {
"network": {
"subnet": "172.17.1.0/24",
"name" "forge-platform-test-netwwork",
"driver": "default"
}
}
}

View file

@ -0,0 +1,10 @@
{
"project": "forge-platform-test-config",
"docker": {
"network": {
"subnet": "172.17.1.0/24",
"name": "forge-platform-test-netwwork",
"driver": "default"
}
}
}