github.com/insolar/vanilla@v0.0.0-20201023172447-248fdf805322/args/is_nil_test.go (about)

     1  // Copyright 2020 Insolar Network Ltd.
     2  // All rights reserved.
     3  // This material is licensed under the Insolar License version 1.0,
     4  // available at https://github.com/insolar/assured-ledger/blob/master/LICENSE.md.
     5  
     6  package args
     7  
     8  import (
     9  	"testing"
    10  
    11  	"github.com/stretchr/testify/require"
    12  )
    13  
    14  func TestIsNil(t *testing.T) {
    15  	require.True(t, IsNil(nil))
    16  	require.False(t, IsNil("test"))
    17  
    18  	var v testHolder
    19  
    20  	require.False(t, v.Get() == nil)
    21  	require.True(t, IsNil(v.Get()))
    22  
    23  	d := 0
    24  	v.value = &d
    25  
    26  	require.False(t, v.Get() == nil)
    27  	require.False(t, IsNil(v.Get()))
    28  
    29  	v.value = nil
    30  
    31  	require.False(t, v.Get() == nil)
    32  	require.True(t, IsNil(v.Get()))
    33  }
    34  
    35  type testHolder struct {
    36  	value *int
    37  }
    38  
    39  func (v testHolder) Get() interface{} {
    40  	return v.value
    41  }