...
1 package jmespath
2
3 import (
4 "testing"
5
6 "github.com/jmespath/go-jmespath/internal/testify/assert"
7 )
8
9 func TestSlicePositiveStep(t *testing.T) {
10 assert := assert.New(t)
11 input := make([]interface{}, 5)
12 input[0] = 0
13 input[1] = 1
14 input[2] = 2
15 input[3] = 3
16 input[4] = 4
17 result, err := slice(input, []sliceParam{{0, true}, {3, true}, {1, true}})
18 assert.Nil(err)
19 assert.Equal(input[:3], result)
20 }
21
22 func TestIsFalseJSONTypes(t *testing.T) {
23 assert := assert.New(t)
24 assert.True(isFalse(false))
25 assert.True(isFalse(""))
26 var empty []interface{}
27 assert.True(isFalse(empty))
28 m := make(map[string]interface{})
29 assert.True(isFalse(m))
30 assert.True(isFalse(nil))
31
32 }
33
34 func TestIsFalseWithUserDefinedStructs(t *testing.T) {
35 assert := assert.New(t)
36 type nilStructType struct {
37 SliceOfPointers []*string
38 }
39 nilStruct := nilStructType{SliceOfPointers: nil}
40 assert.True(isFalse(nilStruct.SliceOfPointers))
41
42
43
44 assert.False(isFalse(nilStruct))
45 }
46
47 func TestIsFalseWithNilInterface(t *testing.T) {
48 assert := assert.New(t)
49 var a *int
50 var nilInterface interface{} = a
51 assert.True(isFalse(nilInterface))
52 }
53
54 func TestIsFalseWithMapOfUserStructs(t *testing.T) {
55 assert := assert.New(t)
56 type foo struct {
57 Bar string
58 Baz string
59 }
60 m := make(map[int]foo)
61 assert.True(isFalse(m))
62 }
63
64 func TestObjsEqual(t *testing.T) {
65 assert := assert.New(t)
66 assert.True(objsEqual("foo", "foo"))
67 assert.True(objsEqual(20, 20))
68 assert.True(objsEqual([]int{1, 2, 3}, []int{1, 2, 3}))
69 assert.True(objsEqual(nil, nil))
70 assert.True(!objsEqual(nil, "foo"))
71 assert.True(objsEqual([]int{}, []int{}))
72 assert.True(!objsEqual([]int{}, nil))
73 }
74
View as plain text