97 lines
1.9 KiB
Go
97 lines
1.9 KiB
Go
package objx_test
|
|
|
|
import (
|
|
"net/url"
|
|
"testing"
|
|
|
|
"github.com/stretchr/objx"
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestConversionJSON(t *testing.T) {
|
|
jsonString := `{"name":"Mat"}`
|
|
o := objx.MustFromJSON(jsonString)
|
|
|
|
result, err := o.JSON()
|
|
|
|
require.NoError(t, err)
|
|
assert.Equal(t, jsonString, result)
|
|
assert.Equal(t, jsonString, o.MustJSON())
|
|
}
|
|
|
|
func TestConversionJSONWithError(t *testing.T) {
|
|
o := objx.MSI()
|
|
o["test"] = func() {}
|
|
|
|
assert.Panics(t, func() {
|
|
o.MustJSON()
|
|
})
|
|
|
|
_, err := o.JSON()
|
|
|
|
assert.Error(t, err)
|
|
}
|
|
|
|
func TestConversionBase64(t *testing.T) {
|
|
o := objx.Map{"name": "Mat"}
|
|
|
|
result, err := o.Base64()
|
|
|
|
require.NoError(t, err)
|
|
assert.Equal(t, "eyJuYW1lIjoiTWF0In0=", result)
|
|
assert.Equal(t, "eyJuYW1lIjoiTWF0In0=", o.MustBase64())
|
|
}
|
|
|
|
func TestConversionBase64WithError(t *testing.T) {
|
|
o := objx.MSI()
|
|
o["test"] = func() {}
|
|
|
|
assert.Panics(t, func() {
|
|
o.MustBase64()
|
|
})
|
|
|
|
_, err := o.Base64()
|
|
|
|
assert.Error(t, err)
|
|
}
|
|
|
|
func TestConversionSignedBase64(t *testing.T) {
|
|
o := objx.Map{"name": "Mat"}
|
|
|
|
result, err := o.SignedBase64("key")
|
|
|
|
require.NoError(t, err)
|
|
assert.Equal(t, "eyJuYW1lIjoiTWF0In0=_67ee82916f90b2c0d68c903266e8998c9ef0c3d6", result)
|
|
assert.Equal(t, "eyJuYW1lIjoiTWF0In0=_67ee82916f90b2c0d68c903266e8998c9ef0c3d6", o.MustSignedBase64("key"))
|
|
}
|
|
|
|
func TestConversionSignedBase64WithError(t *testing.T) {
|
|
o := objx.MSI()
|
|
o["test"] = func() {}
|
|
|
|
assert.Panics(t, func() {
|
|
o.MustSignedBase64("key")
|
|
})
|
|
|
|
_, err := o.SignedBase64("key")
|
|
|
|
assert.Error(t, err)
|
|
}
|
|
|
|
func TestConversionURLValues(t *testing.T) {
|
|
m := objx.Map{"abc": 123, "name": "Mat"}
|
|
u := m.URLValues()
|
|
|
|
assert.Equal(t, url.Values{"abc": []string{"123"}, "name": []string{"Mat"}}, u)
|
|
}
|
|
|
|
func TestConversionURLQuery(t *testing.T) {
|
|
m := objx.Map{"abc": 123, "name": "Mat"}
|
|
u, err := m.URLQuery()
|
|
|
|
assert.Nil(t, err)
|
|
require.NotNil(t, u)
|
|
assert.Equal(t, "abc=123&name=Mat", u)
|
|
}
|