package feed import ( "encoding/json" "testing" ) func TestDataFormatUnmarshalInvalidData(t *testing.T) { test := []byte(`{}`) var val DataFormat if err := json.Unmarshal(test, &val); err == nil { t.Errorf("got \"%s\", exp error", val) } } func TestDataFormatUnmarshalUnknown(t *testing.T) { test := []byte(`"foo"`) exp := "unknown data format: foo" var val DataFormat err := json.Unmarshal(test, &val) if err == nil { t.Errorf("got \"%s\", exp error", val) return } if err.Error() != exp { t.Errorf("got \"%s\", exp \"%s\"", err.Error(), exp) } } func TestDataFormatUnmarshalValid(t *testing.T) { test := []byte(`"MITRE"`) exp := MitreFormat var got DataFormat if err := json.Unmarshal(test, &got); err != nil { t.Error(err) return } if got != exp { t.Errorf("got \"%s\", exp \"%s\"", got, exp) } } func TestDataFormatString(t *testing.T) { tests := []struct { val DataFormat exp string } { { MitreFormat, "MITRE" }, { DataFormat(255), "DataFormat(255)" }, } for _, test := range(tests) { t.Run(test.val.String(), func(t *testing.T) { got := test.val.String() if got != test.exp { t.Errorf("got \"%s\", exp \"%s\"", got, test.exp) } }) } }