39 lines
597 B
Go
39 lines
597 B
Go
package ptr
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestPtr(t *testing.T) {
|
|
p := Ptr(42)
|
|
assert.NotNil(t, p)
|
|
assert.Equal(t, 42, *p)
|
|
|
|
s := Ptr("hello")
|
|
assert.NotNil(t, s)
|
|
assert.Equal(t, "hello", *s)
|
|
|
|
b := Ptr(true)
|
|
assert.NotNil(t, b)
|
|
assert.True(t, *b)
|
|
}
|
|
|
|
func TestDeref(t *testing.T) {
|
|
v := Deref(Ptr(99), 0)
|
|
assert.Equal(t, 99, v)
|
|
|
|
v = Deref[int](nil, 123)
|
|
assert.Equal(t, 123, v)
|
|
|
|
s := Deref[string](nil, "default")
|
|
assert.Equal(t, "default", s)
|
|
|
|
b := Deref(Ptr(true), false)
|
|
assert.True(t, b)
|
|
|
|
b = Deref[bool](nil, false)
|
|
assert.False(t, b)
|
|
}
|