123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- package v2 // import "github.com/docker/docker/plugin/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)
- }
- }
- }
|