From 20e343ebc920013709ae5bb4feb8008fffd95246 Mon Sep 17 00:00:00 2001 From: Murat Kabilov Date: Wed, 24 May 2017 18:38:56 +0200 Subject: [PATCH] namespacedname decoder tests --- pkg/spec/types_test.go | 55 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 pkg/spec/types_test.go diff --git a/pkg/spec/types_test.go b/pkg/spec/types_test.go new file mode 100644 index 000000000..65e234783 --- /dev/null +++ b/pkg/spec/types_test.go @@ -0,0 +1,55 @@ +package spec + +import ( + "bytes" + "testing" +) + +var nnTests = []struct { + s string + expected NamespacedName + expectedMarshal []byte +}{ + {`acid/cluster`, NamespacedName{Namespace: "acid", Name: "cluster"}, []byte(`"acid/cluster"`)}, + {`/name`, NamespacedName{Namespace: "default", Name: "name"}, []byte(`"default/name"`)}, + {`test`, NamespacedName{Namespace: "default", Name: "test"}, []byte(`"default/test"`)}, +} + +var nnErr = []string{"test/", "/", "", "//"} + +func TestNamespacedNameDecode(t *testing.T) { + for _, tt := range nnTests { + var actual NamespacedName + err := actual.Decode(tt.s) + if err != nil { + t.Errorf("Decode error: %v", err) + } + if actual != tt.expected { + t.Errorf("Expected: %v, got %#v", tt.expected, actual) + } + } +} + +func TestNamespacedNameMarshal(t *testing.T) { + for _, tt := range nnTests { + var actual NamespacedName + err := actual.Decode(tt.s) + m, err := actual.MarshalJSON() + if err != nil { + t.Errorf("Marshal error: %v", err) + } + if bytes.Compare(m, tt.expectedMarshal) != 0 { + t.Errorf("Expected marshal: %v, got %#v", tt.expected, actual) + } + } +} + +func TestNamespacedNameError(t *testing.T) { + for _, tt := range nnErr { + var actual NamespacedName + err := actual.Decode(tt) + if err == nil { + t.Errorf("Error expected for '%s', got: %#v", tt, actual) + } + } +}