...

Source file src/github.com/launchdarkly/go-sdk-common/v3/ldvalue/optional_bool_test.go

Documentation: github.com/launchdarkly/go-sdk-common/v3/ldvalue

     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()) // should not be the same pointer, just the same underlying value
    61  }
    62  

View as plain text