1
2 package promassert_test
3
4 import (
5 "testing"
6
7 "edge-infra.dev/pkg/lib/promassert"
8 )
9
10 func TestSimpleAssertions(t *testing.T) {
11 var mets = []promassert.ParsedMetrics{
12 promassert.Counter(c1name),
13 promassert.Gauge(g1name),
14 }
15 for _, p := range mets {
16 var happyResults = []bool{
17 p.Exists(t),
18 p.Equals(t, c1value),
19 p.NotEquals(t, c1value+1),
20 p.GreaterThan(t, c1value-1),
21 p.GreaterThanOrEquals(t, c1value),
22 p.GreaterThanOrEquals(t, c1value-1),
23 p.LessThan(t, c1value+1),
24 p.LessThanOrEquals(t, c1value),
25 p.LessThanOrEquals(t, c1value+1),
26 }
27
28
29 for i, result := range happyResults {
30 if !result {
31 t.Errorf("Happy assertion %d should have returned true", i)
32 }
33 }
34
35 var sadResults = []bool{
36 p.NotExists(nil),
37 p.Equals(nil, c1value+1),
38 p.NotEquals(nil, c1value),
39 p.GreaterThan(nil, c1value),
40 p.GreaterThan(nil, c1value+1),
41 p.GreaterThanOrEquals(nil, c1value+1),
42 p.LessThan(nil, c1value),
43 p.LessThan(nil, c1value-1),
44 p.LessThanOrEquals(nil, c1value-1),
45 p.LabelKeysExist(nil, cv1keys...),
46 p.IsNaN(nil),
47 p.IsInf(nil, 0),
48 }
49
50 for i, result := range sadResults {
51 if result {
52 t.Errorf("Sad assertion %d should have returned false", i)
53 }
54 }
55 }
56 }
57
58 func TestSimpleVectorAssertions(t *testing.T) {
59
60 var mets = []promassert.ParsedMetrics{
61 promassert.Counter(cv1name),
62 promassert.Gauge(gv1name),
63 }
64 const sum = cv1value1 + cv1value2 + cv1value3 + cv1value4
65 for _, p := range mets {
66 var happyResults = []bool{
67 p.Exists(t),
68 p.Equals(t, sum),
69 p.NotEquals(t, 0),
70 p.GreaterThan(t, sum-1),
71 p.GreaterThanOrEquals(t, sum-1),
72 p.GreaterThanOrEquals(t, sum),
73 p.LessThan(t, sum+1),
74 p.LessThanOrEquals(t, sum+1),
75 p.LessThanOrEquals(t, sum),
76 p.LabelKeysExist(t, cv1keys[0]),
77 p.LabelKeysExist(t, cv1keys[1]),
78 p.LabelKeysExist(t, cv1keys[2]),
79 p.LabelKeysExist(t, cv1keys[0], cv1keys[1]),
80 p.LabelKeysExist(t, cv1keys[1], cv1keys[0]),
81 p.LabelKeysExist(t, cv1keys[0], cv1keys[2]),
82 p.LabelKeysExist(t, cv1keys[2], cv1keys[0]),
83 p.LabelKeysExist(t, cv1keys[1], cv1keys[2]),
84 p.LabelKeysExist(t, cv1keys[2], cv1keys[1]),
85 p.LabelKeysExist(t, cv1keys...),
86 p.LabelKeysExist(t, cv1keys[0], cv1keys[2], cv1keys[1]),
87 p.LabelKeysExist(t, cv1keys[1], cv1keys[0], cv1keys[2]),
88 p.LabelKeysExist(t, cv1keys[1], cv1keys[2], cv1keys[0]),
89 p.LabelKeysExist(t, cv1keys[2], cv1keys[0], cv1keys[1]),
90 p.LabelKeysExist(t, cv1keys[2], cv1keys[1], cv1keys[0]),
91 }
92 for i, result := range happyResults {
93 if !result {
94 t.Errorf("Happy vec assertion %d should have returned true", i)
95 }
96 }
97
98 var sadResults = []bool{
99 p.NotExists(nil),
100 p.Equals(nil, 0),
101 p.NotEquals(nil, sum),
102 p.GreaterThan(nil, sum),
103 p.GreaterThan(nil, sum+1),
104 p.GreaterThanOrEquals(nil, sum+1),
105 p.LessThan(nil, sum),
106 p.LessThan(nil, sum-1),
107 p.LessThanOrEquals(nil, sum-1),
108 p.LabelKeysExist(nil, "asdf"),
109 p.IsNaN(nil),
110 p.IsInf(nil, 0),
111 }
112 for i, result := range sadResults {
113 if result {
114 t.Errorf("Sad vec assertion %d should have returned false", i)
115 }
116 }
117 }
118 }
119
View as plain text