...
1 package ldvalue
2
3 import (
4 "testing"
5
6 "github.com/stretchr/testify/assert"
7 )
8
9 func TestEmptyOptionalInt(t *testing.T) {
10 o := OptionalInt{}
11 assert.False(t, o.IsDefined())
12 assert.Equal(t, 0, o.IntValue())
13
14 n, ok := o.Get()
15 assert.Equal(t, 0, n)
16 assert.False(t, ok)
17
18 assert.Equal(t, 2, o.OrElse(2))
19 assert.Nil(t, o.AsPointer())
20 assert.Equal(t, Null(), o.AsValue())
21 assert.True(t, o == o)
22 }
23
24 func TestOptionalIntWithValue(t *testing.T) {
25 o := NewOptionalInt(3)
26 assert.True(t, o.IsDefined())
27 assert.Equal(t, 3, o.IntValue())
28
29 n, ok := o.Get()
30 assert.Equal(t, 3, n)
31 assert.True(t, ok)
32
33 assert.Equal(t, 3, o.OrElse(2))
34 assert.NotNil(t, o.AsPointer())
35 assert.Equal(t, 3, *o.AsPointer())
36 assert.Equal(t, Int(3), o.AsValue())
37 assert.True(t, o == o)
38 assert.False(t, o == OptionalInt{})
39 }
40
41 func TestOptionalIntFromNilPointer(t *testing.T) {
42 o := NewOptionalIntFromPointer(nil)
43 assert.True(t, o == OptionalInt{})
44 }
45
46 func TestOptionalIntFromNonNilPointer(t *testing.T) {
47 v := 3
48 p := &v
49 o := NewOptionalIntFromPointer(p)
50 assert.True(t, o == NewOptionalInt(3))
51
52 assert.Equal(t, 3, *o.AsPointer())
53 assert.False(t, p == o.AsPointer())
54 }
55
View as plain text