opts: rename logOptsValidator, fix unhandled errors in tests

This validator was not specific to "log options", so renaming it to make this
clearer; also updating values used in the tests to make it clear they're not
"actual" valid values, just for testing, and while updating, also fixed some
unhandled errors in tests.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
Sebastiaan van Stijn 2022-12-27 16:14:50 +01:00
parent d84256132d
commit a473c5b38a
No known key found for this signature in database
GPG Key ID: 76698F39D527CE8C
1 changed files with 46 additions and 23 deletions

View File

@ -32,24 +32,30 @@ func TestValidateIPAddress(t *testing.T) {
func TestMapOpts(t *testing.T) { func TestMapOpts(t *testing.T) {
tmpMap := make(map[string]string) tmpMap := make(map[string]string)
o := NewMapOpts(tmpMap, logOptsValidator) o := NewMapOpts(tmpMap, sampleValidator)
o.Set("max-size=1") err := o.Set("valid-option=1")
if o.String() != "map[max-size:1]" { if err != nil {
t.Errorf("%s != [map[max-size:1]", o.String()) t.Error(err)
}
if o.String() != "map[valid-option:1]" {
t.Errorf("%s != [map[valid-option:1]", o.String())
} }
o.Set("max-file=2") err = o.Set("valid-option2=2")
if err != nil {
t.Error(err)
}
if len(tmpMap) != 2 { if len(tmpMap) != 2 {
t.Errorf("map length %d != 2", len(tmpMap)) t.Errorf("map length %d != 2", len(tmpMap))
} }
if tmpMap["max-file"] != "2" { if tmpMap["valid-option"] != "1" {
t.Errorf("max-file = %s != 2", tmpMap["max-file"]) t.Errorf("valid-option = %s != 1", tmpMap["valid-option"])
}
if tmpMap["valid-option2"] != "2" {
t.Errorf("valid-option2 = %s != 2", tmpMap["valid-option2"])
} }
if tmpMap["max-size"] != "1" {
t.Errorf("max-size = %s != 1", tmpMap["max-size"])
}
if o.Set("dummy-val=3") == nil { if o.Set("dummy-val=3") == nil {
t.Error("validator is not being called") t.Error("validator is not being called")
} }
@ -57,15 +63,24 @@ func TestMapOpts(t *testing.T) {
func TestListOptsWithoutValidator(t *testing.T) { func TestListOptsWithoutValidator(t *testing.T) {
o := NewListOpts(nil) o := NewListOpts(nil)
o.Set("foo") err := o.Set("foo")
if err != nil {
t.Error(err)
}
if o.String() != "[foo]" { if o.String() != "[foo]" {
t.Errorf("%s != [foo]", o.String()) t.Errorf("%s != [foo]", o.String())
} }
o.Set("bar") err = o.Set("bar")
if err != nil {
t.Error(err)
}
if o.Len() != 2 { if o.Len() != 2 {
t.Errorf("%d != 2", o.Len()) t.Errorf("%d != 2", o.Len())
} }
o.Set("bar") err = o.Set("bar")
if err != nil {
t.Error(err)
}
if o.Len() != 3 { if o.Len() != 3 {
t.Errorf("%d != 3", o.Len()) t.Errorf("%d != 3", o.Len())
} }
@ -90,27 +105,35 @@ func TestListOptsWithoutValidator(t *testing.T) {
} }
func TestListOptsWithValidator(t *testing.T) { func TestListOptsWithValidator(t *testing.T) {
// Re-using logOptsvalidator (used by MapOpts) o := NewListOpts(sampleValidator)
o := NewListOpts(logOptsValidator) err := o.Set("foo")
o.Set("foo") if err == nil {
t.Error(err)
}
if o.String() != "" { if o.String() != "" {
t.Errorf(`%s != ""`, o.String()) t.Errorf(`%s != ""`, o.String())
} }
o.Set("foo=bar") err = o.Set("foo=bar")
if err == nil {
t.Error(err)
}
if o.String() != "" { if o.String() != "" {
t.Errorf(`%s != ""`, o.String()) t.Errorf(`%s != ""`, o.String())
} }
o.Set("max-file=2") err = o.Set("valid-option2=2")
if err != nil {
t.Error(err)
}
if o.Len() != 1 { if o.Len() != 1 {
t.Errorf("%d != 1", o.Len()) t.Errorf("%d != 1", o.Len())
} }
if !o.Get("max-file=2") { if !o.Get("valid-option2=2") {
t.Error("o.Get(\"max-file=2\") == false") t.Error(`o.Get("valid-option2=2") == false`)
} }
if o.Get("baz") { if o.Get("baz") {
t.Error("o.Get(\"baz\") == true") t.Error(`o.Get("baz") == true`)
} }
o.Delete("max-file=2") o.Delete("valid-option2=2")
if o.String() != "" { if o.String() != "" {
t.Errorf(`%s != ""`, o.String()) t.Errorf(`%s != ""`, o.String())
} }
@ -277,7 +300,7 @@ func TestValidateLabel(t *testing.T) {
} }
} }
func logOptsValidator(val string) (string, error) { func sampleValidator(val string) (string, error) {
allowedKeys := map[string]string{"max-size": "1", "max-file": "2"} allowedKeys := map[string]string{"max-size": "1", "max-file": "2"}
vals := strings.Split(val, "=") vals := strings.Split(val, "=")
if allowedKeys[vals[0]] != "" { if allowedKeys[vals[0]] != "" {