...
1 package ldvalue
2
3 import (
4 "testing"
5
6 "github.com/stretchr/testify/assert"
7 )
8
9 func TestEmptyOptionalString(t *testing.T) {
10 o := OptionalString{}
11 assert.False(t, o.IsDefined())
12 assert.Equal(t, "", o.StringValue())
13
14 s, ok := o.Get()
15 assert.Equal(t, "", s)
16 assert.False(t, ok)
17
18 assert.Equal(t, "no", o.OrElse("no"))
19 assert.Nil(t, o.AsPointer())
20 assert.Equal(t, Null(), o.AsValue())
21 assert.True(t, o == o)
22 }
23
24 func TestOptionalStringWithValue(t *testing.T) {
25 o := NewOptionalString("value")
26 assert.True(t, o.IsDefined())
27 assert.Equal(t, "value", o.StringValue())
28
29 s, ok := o.Get()
30 assert.Equal(t, "value", s)
31 assert.True(t, ok)
32
33 assert.Equal(t, "value", o.OrElse("no"))
34 assert.NotNil(t, o.AsPointer())
35 assert.Equal(t, "value", *o.AsPointer())
36 assert.Equal(t, String("value"), o.AsValue())
37 assert.True(t, o == o)
38 assert.False(t, o == OptionalString{})
39 }
40
41 func TestOptionalStringFromNilPointer(t *testing.T) {
42 o := NewOptionalStringFromPointer(nil)
43 assert.True(t, o == OptionalString{})
44 }
45
46 func TestOptionalStringFromNonNilPointer(t *testing.T) {
47 v := "value"
48 p := &v
49 o := NewOptionalStringFromPointer(p)
50 assert.True(t, o == NewOptionalString("value"))
51
52 assert.Equal(t, "value", *o.AsPointer())
53 assert.False(t, p == o.AsPointer())
54 }
55
56 func TestOptionalStringOnlyIfNonEmptyString(t *testing.T) {
57 assert.Equal(t, OptionalString{}, OptionalString{}.OnlyIfNonEmptyString())
58 assert.Equal(t, OptionalString{}, NewOptionalString("").OnlyIfNonEmptyString())
59 assert.Equal(t, NewOptionalString("x"), NewOptionalString("x").OnlyIfNonEmptyString())
60 }
61
View as plain text