1package objx_test 2 3import ( 4 "net/url" 5 "testing" 6 7 "github.com/stretchr/objx" 8 "github.com/stretchr/testify/assert" 9 "github.com/stretchr/testify/require" 10) 11 12func TestConversionJSON(t *testing.T) { 13 jsonString := `{"name":"Mat"}` 14 o := objx.MustFromJSON(jsonString) 15 16 result, err := o.JSON() 17 18 require.NoError(t, err) 19 assert.Equal(t, jsonString, result) 20 assert.Equal(t, jsonString, o.MustJSON()) 21} 22 23func TestConversionJSONWithError(t *testing.T) { 24 o := objx.MSI() 25 o["test"] = func() {} 26 27 assert.Panics(t, func() { 28 o.MustJSON() 29 }) 30 31 _, err := o.JSON() 32 33 assert.Error(t, err) 34} 35 36func TestConversionBase64(t *testing.T) { 37 o := objx.Map{"name": "Mat"} 38 39 result, err := o.Base64() 40 41 require.NoError(t, err) 42 assert.Equal(t, "eyJuYW1lIjoiTWF0In0=", result) 43 assert.Equal(t, "eyJuYW1lIjoiTWF0In0=", o.MustBase64()) 44} 45 46func TestConversionBase64WithError(t *testing.T) { 47 o := objx.MSI() 48 o["test"] = func() {} 49 50 assert.Panics(t, func() { 51 o.MustBase64() 52 }) 53 54 _, err := o.Base64() 55 56 assert.Error(t, err) 57} 58 59func TestConversionSignedBase64(t *testing.T) { 60 o := objx.Map{"name": "Mat"} 61 62 result, err := o.SignedBase64("key") 63 64 require.NoError(t, err) 65 assert.Equal(t, "eyJuYW1lIjoiTWF0In0=_67ee82916f90b2c0d68c903266e8998c9ef0c3d6", result) 66 assert.Equal(t, "eyJuYW1lIjoiTWF0In0=_67ee82916f90b2c0d68c903266e8998c9ef0c3d6", o.MustSignedBase64("key")) 67} 68 69func TestConversionSignedBase64WithError(t *testing.T) { 70 o := objx.MSI() 71 o["test"] = func() {} 72 73 assert.Panics(t, func() { 74 o.MustSignedBase64("key") 75 }) 76 77 _, err := o.SignedBase64("key") 78 79 assert.Error(t, err) 80} 81 82func TestConversionURLValues(t *testing.T) { 83 m := objx.Map{"abc": 123, "name": "Mat"} 84 u := m.URLValues() 85 86 assert.Equal(t, url.Values{"abc": []string{"123"}, "name": []string{"Mat"}}, u) 87} 88 89func TestConversionURLQuery(t *testing.T) { 90 m := objx.Map{"abc": 123, "name": "Mat"} 91 u, err := m.URLQuery() 92 93 assert.Nil(t, err) 94 require.NotNil(t, u) 95 assert.Equal(t, "abc=123&name=Mat", u) 96} 97