...
1 package ldvalue
2
3 import (
4 "fmt"
5 "testing"
6
7 "github.com/stretchr/testify/assert"
8 )
9
10 func TestEmptyOptionalBool(t *testing.T) {
11 o := OptionalBool{}
12 assert.False(t, o.IsDefined())
13 assert.False(t, o.BoolValue())
14
15 b, ok := o.Get()
16 assert.False(t, b)
17 assert.False(t, ok)
18
19 assert.Equal(t, true, o.OrElse(true))
20 assert.Nil(t, o.AsPointer())
21 assert.Equal(t, Null(), o.AsValue())
22 assert.True(t, o == o)
23 }
24
25 func TestOptionalBoolWithValue(t *testing.T) {
26 for _, v := range []bool{false, true} {
27 t.Run(fmt.Sprintf("%t", v), func(t *testing.T) {
28 o := NewOptionalBool(v)
29 assert.True(t, o.IsDefined())
30 assert.Equal(t, v, o.BoolValue())
31
32 b, ok := o.Get()
33 assert.Equal(t, v, b)
34 assert.True(t, ok)
35
36 assert.Equal(t, v, o.OrElse(false))
37 assert.Equal(t, v, o.OrElse(true))
38 assert.NotNil(t, o.AsPointer())
39 assert.Equal(t, v, *o.AsPointer())
40 assert.Equal(t, Bool(v), o.AsValue())
41 assert.True(t, o == o)
42 assert.False(t, o == OptionalBool{})
43
44 })
45 }
46 }
47
48 func TestOptionalBoolFromNilPointer(t *testing.T) {
49 o := NewOptionalBoolFromPointer(nil)
50 assert.True(t, o == OptionalBool{})
51 }
52
53 func TestOptionalBoolFromNonNilPointer(t *testing.T) {
54 v := true
55 p := &v
56 o := NewOptionalBoolFromPointer(p)
57 assert.True(t, o == NewOptionalBool(true))
58
59 assert.Equal(t, true, *o.AsPointer())
60 assert.False(t, p == o.AsPointer())
61 }
62
View as plain text