package registry import ( "testing" ) func TestTypeConversion(t *testing.T) { // TODO: Are there some real-world examples we want to validate here? tests := map[string]Type{ "foo": NewTypeOrDie("", "foo", ""), "foo:v1": NewTypeOrDie("", "foo", "v1"), "github.com/foo": NewTypeOrDie("github.com", "foo", ""), "github.com/foo:v1.2.3": NewTypeOrDie("github.com", "foo", "v1.2.3"), } for in, expect := range tests { out, err := ParseType(in) if err != nil { t.Errorf("Error parsing type string %s: $s", in, err) } if out.Name != expect.Name { t.Errorf("Expected name to be %q, got %q", expect.Name, out.Name) } if out.GetVersion() != expect.GetVersion() { t.Errorf("Expected version to be %q, got %q", expect.GetVersion(), out.GetVersion()) } if out.Collection != expect.Collection { t.Errorf("Expected collection to be %q, got %q", expect.Collection, out.Collection) } svalue := out.String() if svalue != in { t.Errorf("Expected string value to be %q, got %q", in, svalue) } } }