mirror of
https://github.com/moby/moby.git
synced 2026-08-10 17:15:06 +00:00
This method returns a deep-copy of the filter, which can be used in situations where the original filter must not be mutated, but additional filters need to be added for a specific request. Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
72 lines
1.9 KiB
Go
72 lines
1.9 KiB
Go
package client
|
|
|
|
import (
|
|
"net/url"
|
|
"testing"
|
|
|
|
"gotest.tools/v3/assert"
|
|
is "gotest.tools/v3/assert/cmp"
|
|
)
|
|
|
|
func TestFilters(t *testing.T) {
|
|
f := make(Filters).Add("foo", "bar", "baz", "bar").
|
|
Add("quux", "xyzzy").
|
|
Add("quux", "plugh")
|
|
f["lol"] = map[string]bool{"abc": true}
|
|
f.Add("lol", "def")
|
|
assert.Check(t, is.DeepEqual(f, Filters{
|
|
"foo": {"bar": true, "baz": true},
|
|
"quux": {"xyzzy": true, "plugh": true},
|
|
"lol": {"abc": true, "def": true},
|
|
}))
|
|
}
|
|
|
|
func TestFilters_UpdateURLValues(t *testing.T) {
|
|
v := url.Values{}
|
|
Filters(nil).updateURLValues(v)
|
|
assert.Check(t, is.DeepEqual(v, url.Values{}))
|
|
|
|
v = url.Values{"filters": []string{"bogus"}}
|
|
Filters(nil).updateURLValues(v)
|
|
assert.Check(t, is.DeepEqual(v, url.Values{}))
|
|
|
|
v = url.Values{}
|
|
Filters{}.updateURLValues(v)
|
|
assert.Check(t, is.DeepEqual(v, url.Values{}))
|
|
|
|
v = url.Values{"filters": []string{"bogus"}}
|
|
Filters{}.updateURLValues(v)
|
|
assert.Check(t, is.DeepEqual(v, url.Values{}))
|
|
|
|
v = url.Values{}
|
|
Filters{"foo": map[string]bool{"bar": true}}.updateURLValues(v)
|
|
assert.Check(t, is.DeepEqual(v, url.Values{"filters": []string{`{"foo":{"bar":true}}`}}))
|
|
|
|
v = url.Values{"filters": []string{"bogus"}}
|
|
Filters{"foo": map[string]bool{"bar": true}}.updateURLValues(v)
|
|
assert.Check(t, is.DeepEqual(v, url.Values{"filters": []string{`{"foo":{"bar":true}}`}}))
|
|
}
|
|
|
|
func TestFilters_Clone(t *testing.T) {
|
|
f1 := make(Filters).Add("foo", "one")
|
|
f2 := f1.Clone()
|
|
|
|
f2.Add("foo", "f2-extra").Add("f2", "f2-value")
|
|
assert.Check(t, is.DeepEqual(f1, Filters{"foo": {"one": true}}))
|
|
assert.Check(t, is.DeepEqual(f2, Filters{
|
|
"foo": {"one": true, "f2-extra": true},
|
|
"f2": {"f2-value": true},
|
|
}))
|
|
|
|
f1.Add("foo", "f1-extra").Add("f1", "f1-value")
|
|
assert.Check(t, is.DeepEqual(f1, Filters{
|
|
"foo": {"one": true, "f1-extra": true},
|
|
"f1": {"f1-value": true},
|
|
}))
|
|
|
|
assert.Check(t, is.DeepEqual(f2, Filters{
|
|
"foo": {"one": true, "f2-extra": true},
|
|
"f2": {"f2-value": true},
|
|
}))
|
|
}
|