initial commit
This commit is contained in:
+238
@@ -0,0 +1,238 @@
|
||||
package record
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
// TODO
|
||||
func TestRecord(t *testing.T) {
|
||||
t.Run("bool value", func(t *testing.T) {
|
||||
r := Record{"a": true, "b": false}
|
||||
var value any
|
||||
|
||||
// Case A: value is true
|
||||
value, ok := r.BoolSafe("a")
|
||||
assert.True(t, ok)
|
||||
assert.Equal(t, true, value)
|
||||
|
||||
_, ok = r.ByteSafe("a")
|
||||
assert.False(t, ok)
|
||||
|
||||
_, ok = r.Float32Safe("a")
|
||||
assert.False(t, ok)
|
||||
|
||||
_, ok = r.Float64Safe("a")
|
||||
assert.False(t, ok)
|
||||
|
||||
value, ok = r.IntSafe("a")
|
||||
assert.True(t, ok)
|
||||
assert.Equal(t, 1, value)
|
||||
|
||||
value, ok = r.Int16Safe("a")
|
||||
assert.True(t, ok)
|
||||
assert.Equal(t, int16(1), value)
|
||||
|
||||
value, ok = r.Int32Safe("a")
|
||||
assert.True(t, ok)
|
||||
assert.Equal(t, int32(1), value)
|
||||
|
||||
value, ok = r.Int64Safe("a")
|
||||
assert.True(t, ok)
|
||||
assert.Equal(t, int64(1), value)
|
||||
|
||||
value, ok = r.StringSafe("a")
|
||||
assert.True(t, ok)
|
||||
assert.Equal(t, "true", value)
|
||||
|
||||
value, ok = r.UintSafe("a")
|
||||
assert.True(t, ok)
|
||||
assert.Equal(t, uint(1), value)
|
||||
|
||||
value, ok = r.Uint8Safe("a")
|
||||
assert.True(t, ok)
|
||||
assert.Equal(t, uint8(1), value)
|
||||
|
||||
value, ok = r.Uint16Safe("a")
|
||||
assert.True(t, ok)
|
||||
assert.Equal(t, uint16(1), value)
|
||||
|
||||
value, ok = r.Uint32Safe("a")
|
||||
assert.True(t, ok)
|
||||
assert.Equal(t, uint32(1), value)
|
||||
|
||||
value, ok = r.Uint64Safe("a")
|
||||
assert.True(t, ok)
|
||||
assert.Equal(t, uint64(1), value)
|
||||
|
||||
// Case B: value is false
|
||||
value, ok = r.BoolSafe("b")
|
||||
assert.True(t, ok)
|
||||
assert.Equal(t, false, value)
|
||||
|
||||
_, ok = r.ByteSafe("b")
|
||||
assert.False(t, ok)
|
||||
|
||||
_, ok = r.Float32Safe("b")
|
||||
assert.False(t, ok)
|
||||
|
||||
_, ok = r.Float64Safe("b")
|
||||
assert.False(t, ok)
|
||||
|
||||
value, ok = r.IntSafe("b")
|
||||
assert.True(t, ok)
|
||||
assert.Equal(t, 0, value)
|
||||
|
||||
value, ok = r.Int16Safe("b")
|
||||
assert.True(t, ok)
|
||||
assert.Equal(t, int16(0), value)
|
||||
|
||||
value, ok = r.Int32Safe("b")
|
||||
assert.True(t, ok)
|
||||
assert.Equal(t, int32(0), value)
|
||||
|
||||
value, ok = r.Int64Safe("b")
|
||||
assert.True(t, ok)
|
||||
assert.Equal(t, int64(0), value)
|
||||
|
||||
value, ok = r.StringSafe("b")
|
||||
assert.True(t, ok)
|
||||
assert.Equal(t, "false", value)
|
||||
|
||||
value, ok = r.UintSafe("b")
|
||||
assert.True(t, ok)
|
||||
assert.Equal(t, uint(0), value)
|
||||
|
||||
value, ok = r.Uint8Safe("b")
|
||||
assert.True(t, ok)
|
||||
assert.Equal(t, uint8(0), value)
|
||||
|
||||
value, ok = r.Uint16Safe("b")
|
||||
assert.True(t, ok)
|
||||
assert.Equal(t, uint16(0), value)
|
||||
|
||||
value, ok = r.Uint32Safe("b")
|
||||
assert.True(t, ok)
|
||||
assert.Equal(t, uint32(0), value)
|
||||
|
||||
value, ok = r.Uint64Safe("b")
|
||||
assert.True(t, ok)
|
||||
assert.Equal(t, uint64(0), value)
|
||||
})
|
||||
|
||||
t.Run("byte value", func(t *testing.T) {
|
||||
r := Record{"a": byte(1), "b": byte(0)}
|
||||
var value any
|
||||
|
||||
// Case A: value is true
|
||||
value, ok := r.BoolSafe("a")
|
||||
assert.True(t, ok)
|
||||
assert.Equal(t, true, value)
|
||||
|
||||
value, ok = r.ByteSafe("a")
|
||||
assert.True(t, ok)
|
||||
assert.Equal(t, byte(1), value)
|
||||
|
||||
_, ok = r.Float32Safe("a")
|
||||
assert.False(t, ok)
|
||||
|
||||
_, ok = r.Float64Safe("a")
|
||||
assert.False(t, ok)
|
||||
|
||||
value, ok = r.IntSafe("a")
|
||||
assert.True(t, ok)
|
||||
assert.Equal(t, 1, value)
|
||||
|
||||
value, ok = r.Int16Safe("a")
|
||||
assert.True(t, ok)
|
||||
assert.Equal(t, int16(1), value)
|
||||
|
||||
value, ok = r.Int32Safe("a")
|
||||
assert.True(t, ok)
|
||||
assert.Equal(t, int32(1), value)
|
||||
|
||||
value, ok = r.Int64Safe("a")
|
||||
assert.True(t, ok)
|
||||
assert.Equal(t, int64(1), value)
|
||||
|
||||
value, ok = r.StringSafe("a")
|
||||
assert.True(t, ok)
|
||||
assert.Equal(t, "1", value)
|
||||
|
||||
value, ok = r.UintSafe("a")
|
||||
assert.True(t, ok)
|
||||
assert.Equal(t, uint(1), value)
|
||||
|
||||
value, ok = r.Uint8Safe("a")
|
||||
assert.True(t, ok)
|
||||
assert.Equal(t, uint8(1), value)
|
||||
|
||||
value, ok = r.Uint16Safe("a")
|
||||
assert.True(t, ok)
|
||||
assert.Equal(t, uint16(1), value)
|
||||
|
||||
value, ok = r.Uint32Safe("a")
|
||||
assert.True(t, ok)
|
||||
assert.Equal(t, uint32(1), value)
|
||||
|
||||
value, ok = r.Uint64Safe("a")
|
||||
assert.True(t, ok)
|
||||
assert.Equal(t, uint64(1), value)
|
||||
|
||||
// Case B: value is false
|
||||
value, ok = r.BoolSafe("b")
|
||||
assert.True(t, ok)
|
||||
assert.Equal(t, false, value)
|
||||
|
||||
value, ok = r.ByteSafe("b")
|
||||
assert.True(t, ok)
|
||||
assert.Equal(t, byte(0), value)
|
||||
|
||||
_, ok = r.Float32Safe("b")
|
||||
assert.False(t, ok)
|
||||
|
||||
_, ok = r.Float64Safe("b")
|
||||
assert.False(t, ok)
|
||||
|
||||
value, ok = r.IntSafe("b")
|
||||
assert.True(t, ok)
|
||||
assert.Equal(t, 0, value)
|
||||
|
||||
value, ok = r.Int16Safe("b")
|
||||
assert.True(t, ok)
|
||||
assert.Equal(t, int16(0), value)
|
||||
|
||||
value, ok = r.Int32Safe("b")
|
||||
assert.True(t, ok)
|
||||
assert.Equal(t, int32(0), value)
|
||||
|
||||
value, ok = r.Int64Safe("b")
|
||||
assert.True(t, ok)
|
||||
assert.Equal(t, int64(0), value)
|
||||
|
||||
value, ok = r.StringSafe("b")
|
||||
assert.True(t, ok)
|
||||
assert.Equal(t, "0", value)
|
||||
|
||||
value, ok = r.UintSafe("b")
|
||||
assert.True(t, ok)
|
||||
assert.Equal(t, uint(0), value)
|
||||
|
||||
value, ok = r.Uint8Safe("b")
|
||||
assert.True(t, ok)
|
||||
assert.Equal(t, uint8(0), value)
|
||||
|
||||
value, ok = r.Uint16Safe("b")
|
||||
assert.True(t, ok)
|
||||
assert.Equal(t, uint16(0), value)
|
||||
|
||||
value, ok = r.Uint32Safe("b")
|
||||
assert.True(t, ok)
|
||||
assert.Equal(t, uint32(0), value)
|
||||
|
||||
value, ok = r.Uint64Safe("b")
|
||||
assert.True(t, ok)
|
||||
assert.Equal(t, uint64(0), value)
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user