github.com/ActiveState/cli@v0.0.0-20240508170324-6801f60cd051/internal/rtutils/ptr/ptr_test.go (about) 1 package ptr 2 3 import ( 4 "reflect" 5 "testing" 6 7 "github.com/stretchr/testify/assert" 8 ) 9 10 func TestTo(t *testing.T) { 11 stringV := "stringV" 12 stringP := To(stringV) 13 assert.Equal(t, "stringV", *stringP) 14 assert.True(t, reflect.ValueOf(stringP).Kind() == reflect.Ptr, "Expected result to be a pointer") 15 16 intV := 999 17 intP := To(intV) 18 assert.Equal(t, 999, *intP) 19 assert.True(t, reflect.ValueOf(intP).Kind() == reflect.Ptr, "Expected result to be a pointer") 20 } 21 22 func TestFrom(t *testing.T) { 23 stringP := To("stringP") 24 assert.Equal(t, "stringP", From(stringP, "")) 25 26 var stringPNil *string 27 assert.Equal(t, "fallback", From(stringPNil, "fallback")) 28 29 intP := To(999) 30 assert.Equal(t, 999, From(intP, -1)) 31 32 var intPNil *int 33 assert.Equal(t, -1, From(intPNil, -1)) 34 } 35 36 func TestClone(t *testing.T) { 37 stringP := To("stringP") 38 cloneStringP := Clone(stringP) 39 assert.Equal(t, "stringP", *cloneStringP) 40 assert.NotSame(t, stringP, cloneStringP) 41 42 var stringPNil *string 43 cloneStringPNil := Clone(stringPNil) 44 assert.Nil(t, cloneStringPNil) 45 46 intP := To(999) 47 cloneIntP := Clone(intP) 48 assert.Equal(t, 999, *cloneIntP) 49 assert.NotSame(t, intP, cloneIntP) 50 }