-
Notifications
You must be signed in to change notification settings - Fork 18
/
Copy pathassert.go
123 lines (99 loc) · 2.45 KB
/
assert.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
122
123
package cute
import (
"net/http"
)
// This is type of asserts, for create some assert with using custom logic.
// AssertBody ...
type AssertBody func(body []byte) error
// AssertHeaders ...
type AssertHeaders func(headers http.Header) error
// AssertResponse ...
type AssertResponse func(response *http.Response) error
// This is type for create custom assertions with using allure and testing.allureProvider
// AssertBodyT ...
type AssertBodyT func(t T, body []byte) error
// AssertHeadersT ...
type AssertHeadersT func(t T, headers http.Header) error
// AssertResponseT ...
type AssertResponseT func(t T, response *http.Response) error
func (it *Test) assertHeaders(t internalT, headers http.Header) []error {
var (
asserts = it.Expect.AssertHeaders
assertT = it.Expect.AssertHeadersT
)
if len(asserts) == 0 && len(assertT) == 0 {
return nil
}
return executeWithStep(t, "Assert headers", func(t T) []error {
errs := make([]error, 0)
// Execute assert only response
for _, f := range asserts {
err := f(headers)
if err != nil {
errs = append(errs, err)
}
}
// Execute assert for response with TB
for _, f := range assertT {
err := f(t, headers)
if err != nil {
errs = append(errs, err)
}
}
return errs
})
}
func (it *Test) assertResponse(t internalT, resp *http.Response) []error {
var (
asserts = it.Expect.AssertResponse
assertT = it.Expect.AssertResponseT
)
if len(asserts) == 0 && len(assertT) == 0 {
return nil
}
return executeWithStep(t, "Assert response", func(t T) []error {
errs := make([]error, 0)
// Execute assert only response
for _, f := range asserts {
err := f(resp)
if err != nil {
errs = append(errs, err)
}
}
// Execute assert for response with TB
for _, f := range assertT {
err := f(t, resp)
if err != nil {
errs = append(errs, err)
}
}
return errs
})
}
func (it *Test) assertBody(t internalT, body []byte) []error {
var (
asserts = it.Expect.AssertBody
assertT = it.Expect.AssertBodyT
)
if len(asserts) == 0 && len(assertT) == 0 {
return nil
}
return executeWithStep(t, "Assert body", func(t T) []error {
errs := make([]error, 0)
// Execute assert only response
for _, f := range asserts {
err := f(body)
if err != nil {
errs = append(errs, err)
}
}
// Execute assert for response with TB
for _, f := range assertT {
err := f(t, body)
if err != nil {
errs = append(errs, err)
}
}
return errs
})
}