...

Source file src/github.com/launchdarkly/go-sdk-common/v3/ldvalue/optional_string_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 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()) // should not be the same pointer, just the same underlying string
    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