mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
39bcaee47b
* additional * ambiguous * anonymous * anything * application * because * before * building * capabilities * circumstances * commit * committer * compresses * concatenated * config * container * container's * current * definition * delimiter * disassociates * discovery * distributed * doesnotexist * downloads * duplicates * either * enhancing * enumerate * escapable * exactly * expect * expectations * expected * explicitly * false * filesystem * following * forbidden * git with * healthcheck * ignore * independent * inheritance * investigating * irrelevant * it * logging * looking * membership * mimic * minimum * modify * mountpoint * multiline * notifier * outputting * outside * overridden * override * parsable * plugins * precedence * propagation * provided * provides * registries * repositories * returning * settings * should * signals * someone * something * specifically * successfully * synchronize * they've * thinking * uninitialized * unintentionally * unmarshaling * unnamed * unreferenced * verify Signed-off-by: Josh Soref <jsoref@gmail.com> Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
91 lines
2.7 KiB
Go
91 lines
2.7 KiB
Go
package v2
|
|
|
|
import (
|
|
"reflect"
|
|
"testing"
|
|
)
|
|
|
|
func TestNewSettable(t *testing.T) {
|
|
contexts := []struct {
|
|
arg string
|
|
name string
|
|
field string
|
|
value string
|
|
err error
|
|
}{
|
|
{"name=value", "name", "", "value", nil},
|
|
{"name", "name", "", "", nil},
|
|
{"name.field=value", "name", "field", "value", nil},
|
|
{"name.field", "name", "field", "", nil},
|
|
{"=value", "", "", "", errInvalidFormat},
|
|
{"=", "", "", "", errInvalidFormat},
|
|
}
|
|
|
|
for _, c := range contexts {
|
|
s, err := newSettable(c.arg)
|
|
if err != c.err {
|
|
t.Fatalf("expected error to be %v, got %v", c.err, err)
|
|
}
|
|
|
|
if s.name != c.name {
|
|
t.Fatalf("expected name to be %q, got %q", c.name, s.name)
|
|
}
|
|
|
|
if s.field != c.field {
|
|
t.Fatalf("expected field to be %q, got %q", c.field, s.field)
|
|
}
|
|
|
|
if s.value != c.value {
|
|
t.Fatalf("expected value to be %q, got %q", c.value, s.value)
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
func TestIsSettable(t *testing.T) {
|
|
contexts := []struct {
|
|
allowedSettableFields []string
|
|
set settable
|
|
settable []string
|
|
result bool
|
|
err error
|
|
}{
|
|
{allowedSettableFieldsEnv, settable{}, []string{}, false, nil},
|
|
{allowedSettableFieldsEnv, settable{field: "value"}, []string{}, false, nil},
|
|
{allowedSettableFieldsEnv, settable{}, []string{"value"}, true, nil},
|
|
{allowedSettableFieldsEnv, settable{field: "value"}, []string{"value"}, true, nil},
|
|
{allowedSettableFieldsEnv, settable{field: "foo"}, []string{"value"}, false, nil},
|
|
{allowedSettableFieldsEnv, settable{field: "foo"}, []string{"foo"}, false, nil},
|
|
{allowedSettableFieldsEnv, settable{}, []string{"value1", "value2"}, false, errMultipleFields},
|
|
}
|
|
|
|
for _, c := range contexts {
|
|
if res, err := c.set.isSettable(c.allowedSettableFields, c.settable); res != c.result {
|
|
t.Fatalf("expected result to be %t, got %t", c.result, res)
|
|
} else if err != c.err {
|
|
t.Fatalf("expected error to be %v, got %v", c.err, err)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestUpdateSettingsEnv(t *testing.T) {
|
|
contexts := []struct {
|
|
env []string
|
|
set settable
|
|
newEnv []string
|
|
}{
|
|
{[]string{}, settable{name: "DEBUG", value: "1"}, []string{"DEBUG=1"}},
|
|
{[]string{"DEBUG=0"}, settable{name: "DEBUG", value: "1"}, []string{"DEBUG=1"}},
|
|
{[]string{"FOO=0"}, settable{name: "DEBUG", value: "1"}, []string{"FOO=0", "DEBUG=1"}},
|
|
{[]string{"FOO=0", "DEBUG=0"}, settable{name: "DEBUG", value: "1"}, []string{"FOO=0", "DEBUG=1"}},
|
|
{[]string{"FOO=0", "DEBUG=0", "BAR=1"}, settable{name: "DEBUG", value: "1"}, []string{"FOO=0", "DEBUG=1", "BAR=1"}},
|
|
}
|
|
|
|
for _, c := range contexts {
|
|
updateSettingsEnv(&c.env, &c.set)
|
|
|
|
if !reflect.DeepEqual(c.env, c.newEnv) {
|
|
t.Fatalf("expected env to be %q, got %q", c.newEnv, c.env)
|
|
}
|
|
}
|
|
}
|