github.com/andeya/ameda@v1.5.3/interface_test.go (about)

     1  package ameda
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/assert"
     7  )
     8  
     9  func TestToBool(t *testing.T) {
    10  	cases := []struct {
    11  		actualParam  interface{}
    12  		emptyAsFalse bool
    13  		expected     bool
    14  	}{
    15  		{"", false, false},
    16  		{"", true, false},
    17  		{0, true, false},
    18  		{nil, true, false},
    19  		{(*testing.T)(nil), true, false},
    20  		{(*testing.T)(nil), false, false},
    21  		{t, false, false},
    22  		{t, true, true},
    23  		{struct{ int }{}, false, false},
    24  		{struct{ int }{}, true, false},
    25  	}
    26  	for _, c := range cases {
    27  		actual, err := InterfaceToBool(c.actualParam, c.emptyAsFalse)
    28  		if c.emptyAsFalse {
    29  			assert.NoError(t, err, c)
    30  		} else {
    31  			assert.NotNil(t, err, c)
    32  		}
    33  		assert.Equal(t, c.expected, actual, c)
    34  	}
    35  }