Files
virtual-kubelet/vendor/github.com/hyperhq/libcompose/config/marshal_config_test.go
2017-12-05 17:53:58 -06:00

91 lines
2.1 KiB
Go

package config
import (
"testing"
yaml "github.com/cloudfoundry-incubator/candiedyaml"
yamlTypes "github.com/hyperhq/libcompose/yaml"
"github.com/stretchr/testify/assert"
)
type TestConfig struct {
SystemContainers map[string]*ServiceConfig
}
func newTestConfig() TestConfig {
return TestConfig{
SystemContainers: map[string]*ServiceConfig{
"udev": {
Image: "udev",
Restart: "always",
// NetworkMode: "host",
// Privileged: true,
// DNS: []string{"8.8.8.8", "8.8.4.4"},
Environment: yamlTypes.MaporEqualSlice([]string{
"DAEMON=true",
}),
Labels: yamlTypes.SliceorMap{
"io.rancher.os.detach": "true",
"io.rancher.os.scope": "system",
},
// VolumesFrom: []string{
// "system-volumes",
// },
// Ulimits: yamlTypes.Ulimits{
// Elements: []yamlTypes.Ulimit{
// yamlTypes.NewUlimit("nproc", 65557, 65557),
// },
// },
},
"system-volumes": {
Image: "state",
// NetworkMode: "none",
// ReadOnly: true,
// Privileged: true,
Labels: yamlTypes.SliceorMap{
"io.rancher.os.createonly": "true",
"io.rancher.os.scope": "system",
},
Volumes: []string{
"/dev:/host/dev",
"/var/lib/rancher/conf:/var/lib/rancher/conf",
"/etc/ssl/certs/ca-certificates.crt:/etc/ssl/certs/ca-certificates.crt.rancher",
"/lib/modules:/lib/modules",
"/lib/firmware:/lib/firmware",
"/var/run:/var/run",
"/var/log:/var/log",
},
// Logging: Log{
// Driver: "json-file",
//},
},
},
}
}
func TestMarshalConfig(t *testing.T) {
config := newTestConfig()
bytes, err := yaml.Marshal(config)
assert.Nil(t, err)
config2 := TestConfig{}
err = yaml.Unmarshal(bytes, &config2)
assert.Nil(t, err)
assert.Equal(t, config, config2)
}
func TestMarshalServiceConfig(t *testing.T) {
configPtr := newTestConfig().SystemContainers["udev"]
bytes, err := yaml.Marshal(configPtr)
assert.Nil(t, err)
configPtr2 := &ServiceConfig{}
err = yaml.Unmarshal(bytes, configPtr2)
assert.Nil(t, err)
assert.Equal(t, configPtr, configPtr2)
}