mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2026-01-25 05:52:50 -05:00
155 lines
3.4 KiB
Go
155 lines
3.4 KiB
Go
package params
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestGet(t *testing.T) {
|
|
p := map[string]any{"key": "value"}
|
|
val, err := Get[string](p, "key")
|
|
assert.NoError(t, err)
|
|
assert.Equal(t, "value", val)
|
|
|
|
_, err = Get[string](p, "missing")
|
|
assert.Error(t, err)
|
|
|
|
_, err = Get[int](p, "key")
|
|
assert.Error(t, err)
|
|
}
|
|
|
|
func TestGetOpt(t *testing.T) {
|
|
p := map[string]any{"key": "value"}
|
|
assert.Equal(t, "value", GetOpt(p, "key", "default"))
|
|
assert.Equal(t, "default", GetOpt(p, "missing", "default"))
|
|
}
|
|
|
|
func TestString(t *testing.T) {
|
|
p := map[string]any{"s": "hello", "n": 123}
|
|
val, err := String(p, "s")
|
|
assert.NoError(t, err)
|
|
assert.Equal(t, "hello", val)
|
|
|
|
_, err = String(p, "n")
|
|
assert.Error(t, err)
|
|
}
|
|
|
|
func TestStringNonEmpty(t *testing.T) {
|
|
p := map[string]any{"s": "hello", "empty": ""}
|
|
val, err := StringNonEmpty(p, "s")
|
|
assert.NoError(t, err)
|
|
assert.Equal(t, "hello", val)
|
|
|
|
_, err = StringNonEmpty(p, "empty")
|
|
assert.Error(t, err)
|
|
|
|
_, err = StringNonEmpty(p, "missing")
|
|
assert.Error(t, err)
|
|
}
|
|
|
|
func TestStringOpt(t *testing.T) {
|
|
p := map[string]any{"s": "hello"}
|
|
assert.Equal(t, "hello", StringOpt(p, "s", "default"))
|
|
assert.Equal(t, "default", StringOpt(p, "missing", "default"))
|
|
}
|
|
|
|
func TestInt(t *testing.T) {
|
|
p := map[string]any{"n": float64(42), "s": "str"}
|
|
val, err := Int(p, "n")
|
|
assert.NoError(t, err)
|
|
assert.Equal(t, 42, val)
|
|
|
|
_, err = Int(p, "s")
|
|
assert.Error(t, err)
|
|
}
|
|
|
|
func TestIntOpt(t *testing.T) {
|
|
p := map[string]any{"n": float64(42)}
|
|
assert.Equal(t, 42, IntOpt(p, "n", 0))
|
|
assert.Equal(t, 99, IntOpt(p, "missing", 99))
|
|
}
|
|
|
|
func TestFloat(t *testing.T) {
|
|
p := map[string]any{"f": 3.14, "s": "str"}
|
|
val, err := Float(p, "f")
|
|
assert.NoError(t, err)
|
|
assert.Equal(t, 3.14, val)
|
|
|
|
_, err = Float(p, "s")
|
|
assert.Error(t, err)
|
|
}
|
|
|
|
func TestFloatOpt(t *testing.T) {
|
|
p := map[string]any{"f": 3.14}
|
|
assert.Equal(t, 3.14, FloatOpt(p, "f", 0))
|
|
assert.Equal(t, 1.0, FloatOpt(p, "missing", 1.0))
|
|
}
|
|
|
|
func TestBool(t *testing.T) {
|
|
p := map[string]any{"b": true, "s": "str"}
|
|
val, err := Bool(p, "b")
|
|
assert.NoError(t, err)
|
|
assert.True(t, val)
|
|
|
|
_, err = Bool(p, "s")
|
|
assert.Error(t, err)
|
|
}
|
|
|
|
func TestBoolOpt(t *testing.T) {
|
|
p := map[string]any{"b": true}
|
|
assert.True(t, BoolOpt(p, "b", false))
|
|
assert.True(t, BoolOpt(p, "missing", true))
|
|
}
|
|
|
|
func TestStringMap(t *testing.T) {
|
|
p := map[string]any{
|
|
"m": map[string]any{"a": "1", "b": "2", "c": 3},
|
|
}
|
|
val, err := StringMap(p, "m")
|
|
assert.NoError(t, err)
|
|
assert.Equal(t, map[string]string{"a": "1", "b": "2"}, val)
|
|
|
|
_, err = StringMap(p, "missing")
|
|
assert.Error(t, err)
|
|
}
|
|
|
|
func TestStringMapOpt(t *testing.T) {
|
|
p := map[string]any{
|
|
"m": map[string]any{"a": "1"},
|
|
}
|
|
assert.Equal(t, map[string]string{"a": "1"}, StringMapOpt(p, "m"))
|
|
assert.Nil(t, StringMapOpt(p, "missing"))
|
|
}
|
|
|
|
func TestAny(t *testing.T) {
|
|
p := map[string]any{"k": 123}
|
|
val, ok := Any(p, "k")
|
|
assert.True(t, ok)
|
|
assert.Equal(t, 123, val)
|
|
|
|
_, ok = Any(p, "missing")
|
|
assert.False(t, ok)
|
|
}
|
|
|
|
func TestAnyMap(t *testing.T) {
|
|
inner := map[string]any{"nested": true}
|
|
p := map[string]any{"m": inner}
|
|
val, ok := AnyMap(p, "m")
|
|
assert.True(t, ok)
|
|
assert.Equal(t, inner, val)
|
|
|
|
_, ok = AnyMap(p, "missing")
|
|
assert.False(t, ok)
|
|
}
|
|
|
|
func TestStringAlt(t *testing.T) {
|
|
p := map[string]any{"b": "found"}
|
|
val, ok := StringAlt(p, "a", "b", "c")
|
|
assert.True(t, ok)
|
|
assert.Equal(t, "found", val)
|
|
|
|
_, ok = StringAlt(p, "x", "y")
|
|
assert.False(t, ok)
|
|
}
|