-
Notifications
You must be signed in to change notification settings - Fork 6
/
filters_test.go
121 lines (95 loc) · 2.18 KB
/
filters_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
package invoiced
import (
"testing"
)
func TestFilter(t *testing.T) {
f := NewFilter()
err := f.Set("customer", 1)
if err != nil {
t.Fatal(err)
}
err = f.Set("amount", "32311.23")
if err != nil {
t.Fatal(err)
}
err = f.Set("day", "tuesday")
if err != nil {
t.Fatal(err)
}
correctValue := "filter%5Bamount%5D=32311.23&filter%5Bcustomer%5D=1&filter%5Bday%5D=tuesday"
for i := 0; i < 1000; i++ {
tmp := f.String()
if tmp != correctValue {
t.Fatal("Expected => ", correctValue, ", Got => ", tmp)
}
}
}
func TestMetadataFilter(t *testing.T) {
f := NewMetadataFilter()
err := f.Set("icp_number", 1)
if err != nil {
t.Fatal(err)
}
err = f.Set("tps_report", "late")
if err != nil {
t.Fatal(err)
}
correctValue := "metadata%5Bicp_number%5D=1&metadata%5Btps_report%5D=late"
for i := 0; i < 1000; i++ {
tmp := f.String()
if tmp != correctValue {
t.Fatal("Expected => ", correctValue, ", Got => ", tmp)
}
}
}
func TestEmptyFilter(t *testing.T) {
f := NewFilter()
if f.String() != "" {
t.Fatal("URL String is not equal")
}
}
func TestFilterAndMetaFilter(t *testing.T) {
f := NewMetadataFilter()
err := f.Set("icp_number", 1)
if err != nil {
t.Fatal(err)
}
err = f.Set("tps_report", "late")
if err != nil {
t.Fatal(err)
}
f1 := NewFilter()
err = f1.Set("customer", 131)
if err != nil {
t.Fatal(err)
}
err = f1.Set("amount", "32311.23")
if err != nil {
t.Fatal(err)
}
s, err := AddFilterAndMetaFilterAndSort("",f1,f,nil)
if err != nil {
t.Fatal(err)
}
if s != "?filter%5Bamount%5D=32311.23&filter%5Bcustomer%5D=131&metadata%5Bicp_number%5D=1&metadata%5Btps_report%5D=late" {
t.Fatal("metafiltering test failed")
}
s, err = AddFilterAndMetaFilterAndSort("",nil,f,nil)
if err != nil {
t.Fatal(err)
}
if s != "?metadata%5Bicp_number%5D=1&metadata%5Btps_report%5D=late" {
t.Fatal("metafiltering test failed")
}
s, err = AddFilterAndMetaFilterAndSort("",f1,nil,nil)
if err != nil {
t.Fatal(err)
}
if s != "?filter%5Bamount%5D=32311.23&filter%5Bcustomer%5D=131" {
t.Fatal("metafiltering test failed")
}
s, err = AddFilterAndMetaFilterAndSort("",f,nil,nil)
if err == nil {
t.Fatal("error should have been thrown")
}
}