namespacedname decoder tests

This commit is contained in:
Murat Kabilov 2017-05-24 18:38:56 +02:00
parent 295b00b379
commit 20e343ebc9
1 changed files with 55 additions and 0 deletions

55
pkg/spec/types_test.go Normal file
View File

@ -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)
}
}
}