github.com/wangyougui/gf/v2@v2.6.5/internal/utils/utils_z_unit_is_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 utils_test
     8  
     9  import (
    10  	"testing"
    11  
    12  	"github.com/wangyougui/gf/v2/container/gvar"
    13  	"github.com/wangyougui/gf/v2/frame/g"
    14  	"github.com/wangyougui/gf/v2/internal/utils"
    15  	"github.com/wangyougui/gf/v2/os/gtime"
    16  	"github.com/wangyougui/gf/v2/test/gtest"
    17  )
    18  
    19  func TestVar_IsNil(t *testing.T) {
    20  	gtest.C(t, func(t *gtest.T) {
    21  		t.Assert(utils.IsNil(0), false)
    22  		t.Assert(utils.IsNil(nil), true)
    23  		t.Assert(utils.IsNil(g.Map{}), false)
    24  		t.Assert(utils.IsNil(g.Slice{}), false)
    25  	})
    26  	gtest.C(t, func(t *gtest.T) {
    27  		t.Assert(utils.IsNil(1), false)
    28  		t.Assert(utils.IsNil(0.1), false)
    29  		t.Assert(utils.IsNil(g.Map{"k": "v"}), false)
    30  		t.Assert(utils.IsNil(g.Slice{0}), false)
    31  	})
    32  }
    33  
    34  func TestVar_IsEmpty(t *testing.T) {
    35  	gtest.C(t, func(t *gtest.T) {
    36  		t.Assert(utils.IsEmpty(0), true)
    37  		t.Assert(utils.IsEmpty(nil), true)
    38  		t.Assert(utils.IsEmpty(g.Map{}), true)
    39  		t.Assert(utils.IsEmpty(g.Slice{}), true)
    40  	})
    41  	gtest.C(t, func(t *gtest.T) {
    42  		t.Assert(utils.IsEmpty(1), false)
    43  		t.Assert(utils.IsEmpty(0.1), false)
    44  		t.Assert(utils.IsEmpty(g.Map{"k": "v"}), false)
    45  		t.Assert(utils.IsEmpty(g.Slice{0}), false)
    46  	})
    47  }
    48  
    49  func TestVar_IsInt(t *testing.T) {
    50  	gtest.C(t, func(t *gtest.T) {
    51  		t.Assert(utils.IsInt(0), true)
    52  		t.Assert(utils.IsInt(nil), false)
    53  		t.Assert(utils.IsInt(g.Map{}), false)
    54  		t.Assert(utils.IsInt(g.Slice{}), false)
    55  	})
    56  	gtest.C(t, func(t *gtest.T) {
    57  		t.Assert(utils.IsInt(1), true)
    58  		t.Assert(utils.IsInt(-1), true)
    59  		t.Assert(utils.IsInt(0.1), false)
    60  		t.Assert(utils.IsInt(g.Map{"k": "v"}), false)
    61  		t.Assert(utils.IsInt(g.Slice{0}), false)
    62  	})
    63  	gtest.C(t, func(t *gtest.T) {
    64  		t.Assert(utils.IsInt(int8(1)), true)
    65  		t.Assert(utils.IsInt(uint8(1)), false)
    66  	})
    67  }
    68  
    69  func TestVar_IsUint(t *testing.T) {
    70  	gtest.C(t, func(t *gtest.T) {
    71  		t.Assert(utils.IsUint(0), false)
    72  		t.Assert(utils.IsUint(nil), false)
    73  		t.Assert(utils.IsUint(g.Map{}), false)
    74  		t.Assert(utils.IsUint(g.Slice{}), false)
    75  	})
    76  	gtest.C(t, func(t *gtest.T) {
    77  		t.Assert(utils.IsUint(1), false)
    78  		t.Assert(utils.IsUint(-1), false)
    79  		t.Assert(utils.IsUint(0.1), false)
    80  		t.Assert(utils.IsUint(g.Map{"k": "v"}), false)
    81  		t.Assert(utils.IsUint(g.Slice{0}), false)
    82  	})
    83  	gtest.C(t, func(t *gtest.T) {
    84  		t.Assert(utils.IsUint(int8(1)), false)
    85  		t.Assert(utils.IsUint(uint8(1)), true)
    86  	})
    87  }
    88  
    89  func TestVar_IsFloat(t *testing.T) {
    90  	gtest.C(t, func(t *gtest.T) {
    91  		t.Assert(utils.IsFloat(0), false)
    92  		t.Assert(utils.IsFloat(nil), false)
    93  		t.Assert(utils.IsFloat(g.Map{}), false)
    94  		t.Assert(utils.IsFloat(g.Slice{}), false)
    95  	})
    96  	gtest.C(t, func(t *gtest.T) {
    97  		t.Assert(utils.IsFloat(1), false)
    98  		t.Assert(utils.IsFloat(-1), false)
    99  		t.Assert(utils.IsFloat(0.1), true)
   100  		t.Assert(utils.IsFloat(float64(1)), true)
   101  		t.Assert(utils.IsFloat(g.Map{"k": "v"}), false)
   102  		t.Assert(utils.IsFloat(g.Slice{0}), false)
   103  	})
   104  	gtest.C(t, func(t *gtest.T) {
   105  		t.Assert(utils.IsFloat(int8(1)), false)
   106  		t.Assert(utils.IsFloat(uint8(1)), false)
   107  	})
   108  }
   109  
   110  func TestVar_IsSlice(t *testing.T) {
   111  	gtest.C(t, func(t *gtest.T) {
   112  		t.Assert(utils.IsSlice(0), false)
   113  		t.Assert(utils.IsSlice(nil), false)
   114  		t.Assert(utils.IsSlice(g.Map{}), false)
   115  		t.Assert(utils.IsSlice(g.Slice{}), true)
   116  	})
   117  	gtest.C(t, func(t *gtest.T) {
   118  		t.Assert(utils.IsSlice(1), false)
   119  		t.Assert(utils.IsSlice(-1), false)
   120  		t.Assert(utils.IsSlice(0.1), false)
   121  		t.Assert(utils.IsSlice(float64(1)), false)
   122  		t.Assert(utils.IsSlice(g.Map{"k": "v"}), false)
   123  		t.Assert(utils.IsSlice(g.Slice{0}), true)
   124  	})
   125  	gtest.C(t, func(t *gtest.T) {
   126  		t.Assert(utils.IsSlice(int8(1)), false)
   127  		t.Assert(utils.IsSlice(uint8(1)), false)
   128  	})
   129  	gtest.C(t, func(t *gtest.T) {
   130  		t.Assert(utils.IsSlice(gvar.New(gtime.Now()).IsSlice()), false)
   131  	})
   132  }
   133  
   134  func TestVar_IsMap(t *testing.T) {
   135  	gtest.C(t, func(t *gtest.T) {
   136  		t.Assert(utils.IsMap(0), false)
   137  		t.Assert(utils.IsMap(nil), false)
   138  		t.Assert(utils.IsMap(g.Map{}), true)
   139  		t.Assert(utils.IsMap(g.Slice{}), false)
   140  	})
   141  	gtest.C(t, func(t *gtest.T) {
   142  		t.Assert(utils.IsMap(1), false)
   143  		t.Assert(utils.IsMap(-1), false)
   144  		t.Assert(utils.IsMap(0.1), false)
   145  		t.Assert(utils.IsMap(float64(1)), false)
   146  		t.Assert(utils.IsMap(g.Map{"k": "v"}), true)
   147  		t.Assert(utils.IsMap(g.Slice{0}), false)
   148  	})
   149  	gtest.C(t, func(t *gtest.T) {
   150  		t.Assert(utils.IsMap(int8(1)), false)
   151  		t.Assert(utils.IsMap(uint8(1)), false)
   152  	})
   153  }
   154  
   155  func TestVar_IsStruct(t *testing.T) {
   156  	gtest.C(t, func(t *gtest.T) {
   157  		t.Assert(utils.IsStruct(0), false)
   158  		t.Assert(utils.IsStruct(nil), false)
   159  		t.Assert(utils.IsStruct(g.Map{}), false)
   160  		t.Assert(utils.IsStruct(g.Slice{}), false)
   161  	})
   162  	gtest.C(t, func(t *gtest.T) {
   163  		t.Assert(utils.IsStruct(1), false)
   164  		t.Assert(utils.IsStruct(-1), false)
   165  		t.Assert(utils.IsStruct(0.1), false)
   166  		t.Assert(utils.IsStruct(float64(1)), false)
   167  		t.Assert(utils.IsStruct(g.Map{"k": "v"}), false)
   168  		t.Assert(utils.IsStruct(g.Slice{0}), false)
   169  	})
   170  	gtest.C(t, func(t *gtest.T) {
   171  		a := &struct {
   172  		}{}
   173  		t.Assert(utils.IsStruct(a), true)
   174  		t.Assert(utils.IsStruct(*a), true)
   175  		t.Assert(utils.IsStruct(&a), true)
   176  	})
   177  }