X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/7653054635e3f4f84da3f2b6862cd2c02fbe3fd4..d8d6bca4b5db4851a29473f08dc600816c977a21:/sdk/go/arvados/resource_list_test.go diff --git a/sdk/go/arvados/resource_list_test.go b/sdk/go/arvados/resource_list_test.go index 4e09c5375d..b36e82c918 100644 --- a/sdk/go/arvados/resource_list_test.go +++ b/sdk/go/arvados/resource_list_test.go @@ -34,3 +34,40 @@ func TestMarshalFiltersWithNil(t *testing.T) { t.Errorf("Encoded as %q, expected %q", buf, expect) } } + +func TestUnmarshalFiltersWithNil(t *testing.T) { + buf := []byte(`["modified_at","=",null]`) + f := &Filter{} + err := f.UnmarshalJSON(buf) + if err != nil { + t.Fatal(err) + } + expect := Filter{Attr: "modified_at", Operator: "=", Operand: nil} + if f.Attr != expect.Attr || f.Operator != expect.Operator || f.Operand != expect.Operand { + t.Errorf("Decoded as %q, expected %q", f, expect) + } +} + +func TestMarshalFiltersWithBoolean(t *testing.T) { + buf, err := json.Marshal([]Filter{ + {Attr: "is_active", Operator: "=", Operand: true}}) + if err != nil { + t.Fatal(err) + } + if expect := []byte(`[["is_active","=",true]]`); 0 != bytes.Compare(buf, expect) { + t.Errorf("Encoded as %q, expected %q", buf, expect) + } +} + +func TestUnmarshalFiltersWithBoolean(t *testing.T) { + buf := []byte(`["is_active","=",true]`) + f := &Filter{} + err := f.UnmarshalJSON(buf) + if err != nil { + t.Fatal(err) + } + expect := Filter{Attr: "is_active", Operator: "=", Operand: true} + if f.Attr != expect.Attr || f.Operator != expect.Operator || f.Operand != expect.Operand { + t.Errorf("Decoded as %q, expected %q", f, expect) + } +}