diff --git a/pkg/registry/thirdpartyresourcedata/codec.go b/pkg/registry/thirdpartyresourcedata/codec.go index 74a8a51a16b..8fedc1027ad 100644 --- a/pkg/registry/thirdpartyresourcedata/codec.go +++ b/pkg/registry/thirdpartyresourcedata/codec.go @@ -42,7 +42,8 @@ type thirdPartyResourceDataMapper struct { var _ meta.RESTMapper = &thirdPartyResourceDataMapper{} func (t *thirdPartyResourceDataMapper) isThirdPartyResource(resource string) bool { - return resource == strings.ToLower(t.kind)+"s" + plural, _ := meta.KindToResource(t.kind, false) + return resource == plural } func (t *thirdPartyResourceDataMapper) KindFor(resource string) (unversioned.GroupVersionKind, error) { diff --git a/pkg/registry/thirdpartyresourcedata/codec_test.go b/pkg/registry/thirdpartyresourcedata/codec_test.go index a83dad36cbf..62125c1467d 100644 --- a/pkg/registry/thirdpartyresourcedata/codec_test.go +++ b/pkg/registry/thirdpartyresourcedata/codec_test.go @@ -181,3 +181,44 @@ func TestCreater(t *testing.T) { } } + +func TestResourceIsValid(t *testing.T) { + tests := []struct { + kind string + resource string + valid bool + name string + }{ + { + kind: "Foo", + resource: "foos", + valid: true, + name: "basic", + }, + { + kind: "Party", + resource: "parties", + valid: true, + name: "fun", + }, + { + kind: "bus", + resource: "buses", + valid: true, + name: "transport", + }, + { + kind: "Foo", + resource: "fooies", + name: "bad", + }, + } + for _, test := range tests { + mapper := &thirdPartyResourceDataMapper{kind: test.kind} + mapper.mapper = api.RESTMapper + valid := mapper.ResourceIsValid(test.resource) + if valid != test.valid { + t.Errorf("expected: %v, saw: %v for %s", test.valid, valid, test.name) + } + } +}