github.com/wangyougui/gf/v2@v2.6.5/internal/empty/empty_z_unit_test.go (about) 1 // Copyright GoFrame Author(https://goframe.org). All Rights Reserved. 2 // 3 // This Source Code Form is subject to the terms of the MIT License. 4 // If a copy of the MIT was not distributed with this file, 5 // You can obtain one at https://github.com/wangyougui/gf. 6 7 package empty_test 8 9 import ( 10 "testing" 11 12 "github.com/wangyougui/gf/v2/frame/g" 13 "github.com/wangyougui/gf/v2/internal/empty" 14 "github.com/wangyougui/gf/v2/test/gtest" 15 "github.com/wangyougui/gf/v2/util/gconv" 16 ) 17 18 type TestInt int 19 20 type TestString string 21 22 type TestPerson interface { 23 Say() string 24 } 25 26 type TestWoman struct { 27 } 28 29 func (woman TestWoman) Say() string { 30 return "nice" 31 } 32 33 func TestIsEmpty(t *testing.T) { 34 gtest.C(t, func(t *gtest.T) { 35 tmpT1 := "0" 36 tmpT2 := func() {} 37 tmpT2 = nil 38 tmpT3 := make(chan int) 39 var ( 40 tmpT4 TestPerson = nil 41 tmpT5 *TestPerson = nil 42 tmpT6 TestPerson = TestWoman{} 43 tmpT7 TestInt = 0 44 tmpT8 TestString = "" 45 ) 46 tmpF1 := "1" 47 tmpF2 := func(a string) string { return "1" } 48 tmpF3 := make(chan int, 1) 49 tmpF3 <- 1 50 var ( 51 tmpF4 TestPerson = &TestWoman{} 52 tmpF5 TestInt = 1 53 tmpF6 TestString = "1" 54 ) 55 56 // true 57 t.Assert(empty.IsEmpty(nil), true) 58 t.Assert(empty.IsEmpty(0), true) 59 t.Assert(empty.IsEmpty(gconv.Int(tmpT1)), true) 60 t.Assert(empty.IsEmpty(gconv.Int8(tmpT1)), true) 61 t.Assert(empty.IsEmpty(gconv.Int16(tmpT1)), true) 62 t.Assert(empty.IsEmpty(gconv.Int32(tmpT1)), true) 63 t.Assert(empty.IsEmpty(gconv.Int64(tmpT1)), true) 64 t.Assert(empty.IsEmpty(gconv.Uint64(tmpT1)), true) 65 t.Assert(empty.IsEmpty(gconv.Uint(tmpT1)), true) 66 t.Assert(empty.IsEmpty(gconv.Uint16(tmpT1)), true) 67 t.Assert(empty.IsEmpty(gconv.Uint32(tmpT1)), true) 68 t.Assert(empty.IsEmpty(gconv.Uint64(tmpT1)), true) 69 t.Assert(empty.IsEmpty(gconv.Float32(tmpT1)), true) 70 t.Assert(empty.IsEmpty(gconv.Float64(tmpT1)), true) 71 t.Assert(empty.IsEmpty(false), true) 72 t.Assert(empty.IsEmpty([]byte("")), true) 73 t.Assert(empty.IsEmpty(""), true) 74 t.Assert(empty.IsEmpty(g.Map{}), true) 75 t.Assert(empty.IsEmpty(g.Slice{}), true) 76 t.Assert(empty.IsEmpty(g.Array{}), true) 77 t.Assert(empty.IsEmpty(tmpT2), true) 78 t.Assert(empty.IsEmpty(tmpT3), true) 79 t.Assert(empty.IsEmpty(tmpT3), true) 80 t.Assert(empty.IsEmpty(tmpT4), true) 81 t.Assert(empty.IsEmpty(tmpT5), true) 82 t.Assert(empty.IsEmpty(tmpT6), true) 83 t.Assert(empty.IsEmpty(tmpT7), true) 84 t.Assert(empty.IsEmpty(tmpT8), true) 85 86 // false 87 t.Assert(empty.IsEmpty(gconv.Int(tmpF1)), false) 88 t.Assert(empty.IsEmpty(gconv.Int8(tmpF1)), false) 89 t.Assert(empty.IsEmpty(gconv.Int16(tmpF1)), false) 90 t.Assert(empty.IsEmpty(gconv.Int32(tmpF1)), false) 91 t.Assert(empty.IsEmpty(gconv.Int64(tmpF1)), false) 92 t.Assert(empty.IsEmpty(gconv.Uint(tmpF1)), false) 93 t.Assert(empty.IsEmpty(gconv.Uint8(tmpF1)), false) 94 t.Assert(empty.IsEmpty(gconv.Uint16(tmpF1)), false) 95 t.Assert(empty.IsEmpty(gconv.Uint32(tmpF1)), false) 96 t.Assert(empty.IsEmpty(gconv.Uint64(tmpF1)), false) 97 t.Assert(empty.IsEmpty(gconv.Float32(tmpF1)), false) 98 t.Assert(empty.IsEmpty(gconv.Float64(tmpF1)), false) 99 t.Assert(empty.IsEmpty(true), false) 100 t.Assert(empty.IsEmpty(tmpT1), false) 101 t.Assert(empty.IsEmpty([]byte("1")), false) 102 t.Assert(empty.IsEmpty(g.Map{"a": 1}), false) 103 t.Assert(empty.IsEmpty(g.Slice{"1"}), false) 104 t.Assert(empty.IsEmpty(g.Array{"1"}), false) 105 t.Assert(empty.IsEmpty(tmpF2), false) 106 t.Assert(empty.IsEmpty(tmpF3), false) 107 t.Assert(empty.IsEmpty(tmpF4), false) 108 t.Assert(empty.IsEmpty(tmpF5), false) 109 t.Assert(empty.IsEmpty(tmpF6), false) 110 }) 111 } 112 113 func TestIsNil(t *testing.T) { 114 gtest.C(t, func(t *gtest.T) { 115 t.Assert(empty.IsNil(nil), true) 116 }) 117 gtest.C(t, func(t *gtest.T) { 118 var i int 119 t.Assert(empty.IsNil(i), false) 120 }) 121 gtest.C(t, func(t *gtest.T) { 122 var i *int 123 t.Assert(empty.IsNil(i), true) 124 }) 125 gtest.C(t, func(t *gtest.T) { 126 var i *int 127 t.Assert(empty.IsNil(&i), false) 128 t.Assert(empty.IsNil(&i, true), true) 129 }) 130 }