func Test_Arguments_Diff(t *testing.T) { var args Arguments = []interface{}{"Hello World", 123, true} var diff string var count int diff, count = args.Diff([]interface{}{"Hello World", 456, "false"}) assert.Equal(t, 2, count) assert.Contains(t, diff, `%!s(int=456) != %!s(int=123)`) assert.Contains(t, diff, `false != %!s(bool=true)`) }
func TestMarshalAndUnmarshal(t *testing.T) { // make a big object obj := map[string]interface{}{} obj["name"] = "Mat" obj["age"] = 30 obj["address"] = map[string]interface{}{ "street": "Pearl Street", "city": "Boulder", "state": "CO", "country": "USA", } obj["animals"] = map[string]interface{}{ "favourite": []string{"Dog", "Cat"}, } bytes, marshalErr := xmlCodec.Marshal(obj, nil) if assert.NoError(t, marshalErr) { assert.Contains(t, string(bytes), "<?xml version=\"1.0\"?>", "Output") } // unmarshal it var newObj interface{} if assert.NoError(t, xmlCodec.Unmarshal(bytes, &newObj)) { assert.NotNil(t, newObj) } }
func Test_Arguments_Diff_WithAnythingOfTypeArgument_Failing(t *testing.T) { var args Arguments = []interface{}{"string", AnythingOfType("string"), true} var count int var diff string diff, count = args.Diff([]interface{}{"string", 123, true}) assert.Equal(t, 1, count) assert.Contains(t, diff, `string != type int - %!s(int=123)`) }
func Test_Arguments_Diff_DifferentNumberOfArgs(t *testing.T) { var args Arguments = []interface{}{"string", 123, true} var diff string var count int diff, count = args.Diff([]interface{}{"string", 456, "false", "extra"}) assert.Equal(t, 3, count) assert.Contains(t, diff, `extra != (Missing)`) }