func TestKindToResource(t *testing.T) { testCases := []struct { Kind string MixedCase bool Plural, Singular string }{ {Kind: "Pod", MixedCase: true, Plural: "pods", Singular: "pod"}, {Kind: "Pod", MixedCase: true, Plural: "pods", Singular: "pod"}, {Kind: "Pod", MixedCase: false, Plural: "pods", Singular: "pod"}, {Kind: "ReplicationController", MixedCase: true, Plural: "replicationControllers", Singular: "replicationController"}, {Kind: "ReplicationController", MixedCase: true, Plural: "replicationControllers", Singular: "replicationController"}, {Kind: "ReplicationController", MixedCase: false, Plural: "replicationcontrollers", Singular: "replicationcontroller"}, // Add "ies" when ending with "y" {Kind: "ImageRepository", MixedCase: true, Plural: "imageRepositories", Singular: "imageRepository"}, // Add "es" when ending with "s" {Kind: "miss", MixedCase: false, Plural: "misses", Singular: "miss"}, // Add "s" otherwise {Kind: "lowercase", MixedCase: false, Plural: "lowercases", Singular: "lowercase"}, } for i, testCase := range testCases { version := unversioned.GroupVersion{} plural, singular := KindToResource(version.WithKind(testCase.Kind), testCase.MixedCase) if singular != version.WithResource(testCase.Singular) || plural != version.WithResource(testCase.Plural) { t.Errorf("%d: unexpected plural and singular: %v %v", i, plural, singular) } } }