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