Openstatus www.openstatus.dev
at 8ef9f3ed5ffb0104d2cf3c9df9642da0bf4a01df 120 lines 4.5 kB view raw
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}