test: simple unit tests for the config package
This commit is contained in:
parent
c0fcf316b4
commit
44f0d2c130
3 changed files with 89 additions and 0 deletions
69
internal/config/config_test.go
Normal file
69
internal/config/config_test.go
Normal 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)
|
||||
}
|
10
internal/config/testdata/config-invalid.json
vendored
Normal file
10
internal/config/testdata/config-invalid.json
vendored
Normal 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"
|
||||
}
|
||||
}
|
||||
}
|
10
internal/config/testdata/config-valid.json
vendored
Normal file
10
internal/config/testdata/config-valid.json
vendored
Normal 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"
|
||||
}
|
||||
}
|
||||
}
|
Reference in a new issue