-
Notifications
You must be signed in to change notification settings - Fork 0
/
ZscalerPrefixList_test.go
70 lines (59 loc) · 1.24 KB
/
ZscalerPrefixList_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
package main
import (
"bytes"
"github.com/stretchr/testify/assert"
"io"
"net/http"
"reflect"
"testing"
)
var testData = `
{
"zscloud.net":{
"continent : EMEA":{
"city : Abu Dhabi I":[
{
"range":"147.161.174.0/23",
"vpn":"",
"gre":"",
"hostname":"",
"latitude":"24.453884",
"longitude":"54.3773438"
}
]
}
}
}`
// Ensure api response is parsed correctly
func TestExtractIpPrefixes(t *testing.T) {
t.Parallel()
resp := &http.Response{
StatusCode: 200,
Body: io.NopCloser(bytes.NewReader([]byte(testData))),
}
got := ExtractIpPrefixes(ToStructE(resp))
wants := []string{"147.161.174.0/23"}
assert.ElementsMatch(t, got, wants)
}
// Ensure http json response to struct
func TestToStructE(t *testing.T) {
t.Parallel()
resp := &http.Response{
StatusCode: 200,
Body: io.NopCloser(bytes.NewReader([]byte(testData))),
}
wants := Response{map[string]map[string]City{
"continent : EMEA": {
"city : Abu Dhabi I": City{
{"147.161.174.0/23"},
},
},
}}
got := ToStructE(resp)
assert.True(t, reflect.DeepEqual(got, wants))
}
func TestHttpGet(t *testing.T) {
resp, _ := HttpGet("http://checkip.amazonaws.com")
defer resp.Body.Close()
assert.True(t, resp.StatusCode == 200)
}