...

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

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

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

View as plain text