From 64c7348a1958e855a8182ede50b8fe35469d3150 Mon Sep 17 00:00:00 2001 From: Clayton Coleman Date: Mon, 11 Aug 2014 00:11:47 -0400 Subject: [PATCH] Expand api ResourceVersioner test --- pkg/api/jsonbase_test.go | 42 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 38 insertions(+), 4 deletions(-) diff --git a/pkg/api/jsonbase_test.go b/pkg/api/jsonbase_test.go index 4a81479705f..73bbe634a62 100644 --- a/pkg/api/jsonbase_test.go +++ b/pkg/api/jsonbase_test.go @@ -68,11 +68,10 @@ func TestGenericJSONBase(t *testing.T) { } func TestResourceVersionerOfAPI(t *testing.T) { - type T struct { + testCases := map[string]struct { Object interface{} Expected uint64 - } - testCases := map[string]T{ + }{ "empty api object": {Service{}, 0}, "api object with version": {Service{JSONBase: JSONBase{ResourceVersion: 1}}, 1}, "pointer to api object with version": {&Service{JSONBase: JSONBase{ResourceVersion: 1}}, 1}, @@ -88,7 +87,10 @@ func TestResourceVersionerOfAPI(t *testing.T) { } } - failingCases := map[string]T{ + failingCases := map[string]struct { + Object interface{} + Expected uint64 + }{ "not a valid object to try": {JSONBase{ResourceVersion: 1}, 1}, } for key, testCase := range failingCases { @@ -97,4 +99,36 @@ func TestResourceVersionerOfAPI(t *testing.T) { t.Errorf("%s: expected error, got nil", key) } } + + setCases := map[string]struct { + Object interface{} + Expected uint64 + }{ + "pointer to api object with version": {&Service{JSONBase: JSONBase{ResourceVersion: 1}}, 1}, + } + for key, testCase := range setCases { + if err := versioning.SetResourceVersion(testCase.Object, 5); err != nil { + t.Errorf("%s: unexpected error %#v", key, err) + } + actual, err := versioning.ResourceVersion(testCase.Object) + if err != nil { + t.Errorf("%s: unexpected error %#v", key, err) + } + if actual != 5 { + t.Errorf("%s: expected %d, got %d", key, 5, actual) + } + } + + failingSetCases := map[string]struct { + Object interface{} + Expected uint64 + }{ + "empty api object": {Service{}, 0}, + "api object with version": {Service{JSONBase: JSONBase{ResourceVersion: 1}}, 1}, + } + for key, testCase := range failingSetCases { + if err := versioning.SetResourceVersion(testCase.Object, 5); err == nil { + t.Errorf("%s: unexpected non-error", key) + } + } }