Openstatus
www.openstatus.dev
1package assertions
2
3import (
4 "testing"
5
6 "github.com/openstatushq/openstatus/apps/checker/request"
7)
8
9func TestIntTarget_IntEvaluate(t *testing.T) {
10 type fields struct {
11 AssertionType request.AssertionType
12 Comparator request.NumberComparator
13 Target int64
14 }
15 type args struct {
16 value int64
17 }
18 tests := []struct {
19 name string
20 fields fields
21 args args
22 want bool
23 }{
24 {
25 name: "Equals true", fields: fields{Comparator: request.NumberEquals, Target: 200}, args: args{value: 200}, want: true,
26 },
27 {
28 name: "Equals false", fields: fields{Comparator: request.NumberEquals, Target: 200}, args: args{value: 201}, want: false,
29 },
30 {
31 name: "Not Equals true", fields: fields{Comparator: request.NumberNotEquals, Target: 200}, args: args{value: 201}, want: true,
32 },
33 {
34 name: "Not Equals false", fields: fields{Comparator: request.NumberNotEquals, Target: 200}, args: args{value: 200}, want: false,
35 },
36 {
37 name: "greater than true", fields: fields{Comparator: request.NumberGreaterThan, Target: 200}, args: args{value: 201}, want: true,
38 },
39 {
40 name: "greater than false 1", fields: fields{Comparator: request.NumberGreaterThan, Target: 200}, args: args{value: 200}, want: false,
41 },
42 {
43 name: "greater than false", fields: fields{Comparator: request.NumberGreaterThan, Target: 200}, args: args{value: 199}, want: false,
44 },
45 {
46 name: "greater than equal true", fields: fields{Comparator: request.NumberGreaterThanEqual, Target: 200}, args: args{value: 201}, want: true,
47 },
48 {
49 name: "greater than equal true 1", fields: fields{Comparator: request.NumberGreaterThanEqual, Target: 200}, args: args{value: 200}, want: true,
50 },
51 {
52 name: "greater than equal false", fields: fields{Comparator: request.NumberGreaterThanEqual, Target: 200}, args: args{value: 199}, want: false,
53 },
54 {
55 name: "lower than true", fields: fields{Comparator: request.NumberLowerThan, Target: 200}, args: args{value: 199}, want: true,
56 },
57 {
58 name: "lower than false 1", fields: fields{Comparator: request.NumberLowerThan, Target: 200}, args: args{value: 200}, want: false,
59 },
60 {
61 name: "lower than false", fields: fields{Comparator: request.NumberLowerThan, Target: 200}, args: args{value: 201}, want: false,
62 },
63 {
64 name: "lower than Equal true", fields: fields{Comparator: request.NumberLowerThanEqual, Target: 200}, args: args{value: 199}, want: true,
65 },
66 {
67 name: "lower than equal true 1", fields: fields{Comparator: request.NumberLowerThanEqual, Target: 200}, args: args{value: 200}, want: true,
68 },
69 {
70 name: "lower than equal false", fields: fields{Comparator: request.NumberLowerThan, Target: 200}, args: args{value: 201}, want: false,
71 },
72 }
73 for _, tt := range tests {
74 t.Run(tt.name, func(t *testing.T) {
75 target := StatusTarget{
76 AssertionType: tt.fields.AssertionType,
77 Comparator: tt.fields.Comparator,
78 Target: tt.fields.Target,
79 }
80 if got := target.StatusEvaluate(tt.args.value); got != tt.want {
81 t.Errorf("IntTarget.IntEvaluate() = %v, want %v", got, tt.want)
82 }
83 })
84 }
85}
86
87func TestHeaderTarget_HeaderEvaluate(t *testing.T) {
88 type fields struct {
89 AssertionType request.AssertionType
90 Comparator request.StringComparator
91 Target string
92 Key string
93 }
94 type args struct {
95 s string
96 }
97 tests := []struct {
98 name string
99 fields fields
100 args args
101 want bool
102 }{
103 {name: "Header 1", fields: fields{Comparator: request.StringEmpty, Target: "", Key: "headers1"}, args: args{s: `{"Content-Type":"text/plain;charset=UTF-8","Strict-Transport-Security":"max-age=3153600000","Vary":"Accept-Encoding"}`}, want: false},
104 {name: "Header 2", fields: fields{Comparator: request.StringNotEmpty, Target: "", Key: "headers1"}, args: args{s: `{"Content-Type":"text/plain;charset=UTF-8","Strict-Transport-Security":"max-age=3153600000","headers1":"Accept-Encoding"}`}, want: true},
105 {name: "it should return false if it can not decode the headers", fields: fields{Comparator: request.StringContains, Target: "Accept-Encoding", Key: "Vary"}, args: args{s: `}`}, want: false},
106 }
107 for _, tt := range tests {
108 t.Run(tt.name, func(t *testing.T) {
109 target := HeaderTarget{
110 AssertionType: tt.fields.AssertionType,
111 Comparator: tt.fields.Comparator,
112 Target: tt.fields.Target,
113 Key: tt.fields.Key,
114 }
115 if got := target.HeaderEvaluate(tt.args.s); got != tt.want {
116 t.Errorf("HeaderTarget.HeaderEvaluate() = %v, want %v", got, tt.want)
117 }
118 })
119 }
120}