...

Source file src/github.com/launchdarkly/go-sdk-common/v3/ldvalue/optionals_text_conversion_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 TestOptionalBoolAsStringer(t *testing.T) {
    10  	assert.Equal(t, "[none]", OptionalBool{}.String())
    11  	assert.Equal(t, "false", NewOptionalBool(false).String())
    12  	assert.Equal(t, "true", NewOptionalBool(true).String())
    13  }
    14  
    15  func TestOptionalIntAsStringer(t *testing.T) {
    16  	assert.Equal(t, "[none]", OptionalInt{}.String())
    17  	assert.Equal(t, "3", NewOptionalInt(3).String())
    18  }
    19  
    20  func TestOptionalStringAsStringer(t *testing.T) {
    21  	assert.Equal(t, "[none]", OptionalString{}.String())
    22  	assert.Equal(t, "[empty]", NewOptionalString("").String())
    23  	assert.Equal(t, "x", NewOptionalString("x").String())
    24  }
    25  
    26  func TestOptionalBoolTextMarshalling(t *testing.T) {
    27  	b, e := NewOptionalBool(true).MarshalText()
    28  	assert.NoError(t, e)
    29  	assert.Equal(t, []byte("true"), b)
    30  
    31  	b, e = NewOptionalBool(false).MarshalText()
    32  	assert.NoError(t, e)
    33  	assert.Equal(t, []byte("false"), b)
    34  
    35  	b, e = OptionalBool{}.MarshalText()
    36  	assert.NoError(t, e)
    37  	assert.Len(t, b, 0)
    38  }
    39  
    40  func TestOptionalIntTextMarshalling(t *testing.T) {
    41  	b, e := NewOptionalInt(3).MarshalText()
    42  	assert.NoError(t, e)
    43  	assert.Equal(t, []byte("3"), b)
    44  
    45  	b, e = OptionalInt{}.MarshalText()
    46  	assert.NoError(t, e)
    47  	assert.Len(t, b, 0)
    48  }
    49  
    50  func TestOptionalStringTextMarshalling(t *testing.T) {
    51  	b, e := NewOptionalString("x").MarshalText()
    52  	assert.NoError(t, e)
    53  	assert.Equal(t, []byte("x"), b)
    54  
    55  	b, e = NewOptionalString("").MarshalText()
    56  	assert.NoError(t, e)
    57  	assert.Equal(t, []byte{}, b)
    58  
    59  	b, e = OptionalString{}.MarshalText()
    60  	assert.NoError(t, e)
    61  	assert.Nil(t, b)
    62  }
    63  
    64  func TestOptionalBoolTextUnmarshalling(t *testing.T) {
    65  	var o1 OptionalBool
    66  	assert.NoError(t, o1.UnmarshalText([]byte("true")))
    67  	assert.Equal(t, NewOptionalBool(true), o1)
    68  
    69  	var o2 OptionalBool
    70  	assert.NoError(t, o2.UnmarshalText([]byte("false")))
    71  	assert.Equal(t, NewOptionalBool(false), o2)
    72  
    73  	var o3 OptionalBool
    74  	assert.NoError(t, o3.UnmarshalText([]byte("")))
    75  	assert.Equal(t, OptionalBool{}, o3)
    76  
    77  	var o4 OptionalBool
    78  	assert.NoError(t, o4.UnmarshalText(nil))
    79  	assert.Equal(t, OptionalBool{}, o4)
    80  
    81  	var o5 OptionalBool
    82  	assert.Error(t, o5.UnmarshalText([]byte("x")))
    83  	assert.Equal(t, OptionalBool{}, o5)
    84  }
    85  
    86  func TestOptionalIntTextUnmarshalling(t *testing.T) {
    87  	var o1 OptionalInt
    88  	assert.NoError(t, o1.UnmarshalText([]byte("3")))
    89  	assert.Equal(t, NewOptionalInt(3), o1)
    90  
    91  	var o2 OptionalInt
    92  	assert.NoError(t, o2.UnmarshalText([]byte("")))
    93  	assert.Equal(t, OptionalInt{}, o2)
    94  
    95  	var o3 OptionalInt
    96  	assert.NoError(t, o3.UnmarshalText(nil))
    97  	assert.Equal(t, OptionalInt{}, o3)
    98  
    99  	var o4 OptionalInt
   100  	assert.Error(t, o4.UnmarshalText([]byte("x")))
   101  	assert.Equal(t, OptionalInt{}, o4)
   102  }
   103  
   104  func TestOptionalStringTextUnmarshalling(t *testing.T) {
   105  	var o1 OptionalString
   106  	assert.NoError(t, o1.UnmarshalText([]byte("x")))
   107  	assert.Equal(t, NewOptionalString("x"), o1)
   108  
   109  	var o2 OptionalString
   110  	assert.NoError(t, o2.UnmarshalText([]byte("")))
   111  	assert.Equal(t, NewOptionalString(""), o2)
   112  
   113  	var o3 OptionalString
   114  	assert.NoError(t, o3.UnmarshalText(nil))
   115  	assert.Equal(t, OptionalString{}, o3)
   116  }
   117  

View as plain text