-
Notifications
You must be signed in to change notification settings - Fork 1
/
server_test.go
104 lines (95 loc) · 2.73 KB
/
server_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
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
package main
import (
"io/ioutil"
"testing"
)
// TestValidPayload tests if we can create a proper object from
// a valid JSON payload.
func TestValidPayload(t *testing.T) {
json := `[{
"message" : {
"reqHost" : "www.example.com",
"respLen" : "276248",
"cliIP" : "123.123.123.123",
"status" : "503",
"bytes" : "123440",
"protoVer" : "1.1",
"respCT" : "text/html",
"UA" : "Mozilla%2f5.0%20(Macintosh%3b%20Intel%20Mac%20OS%20X%2010.9%3b%20rv%3a28.0)%20Gecko%2f20100101%20Firefox%2f28.0%20(FlipboardProxy%2f1.1%3b%20+http%3a%2f%2fflipboard.com%2fbrowserproxy)",
"reqMethod" : "POST",
"fwdHost" : "www.example.com",
"proto" : "http",
"reqPort" : "80",
"reqPath" : "%2f"
},
"netPerf" : {
"asnum" : "8523",
"downloadTime" : "1",
"edgeIP" : "165.254.92.141",
"lastByte" : "0",
"lastMileRTT" : "102",
"firstByte" : "0",
"cacheStatus" : "0"
},
"network" : {
"asnum" : "8523",
"edgeIP" : "165.254.92.141",
"networkType" : "",
"network" : ""
},
"cp" : "123456",
"id" : "915cfea5570f824cc27112-a",
"version" : "1.0",
"start" : "1460634188.565",
"type" : "cloud_monitor",
"format" : "default",
"respHdr" : {
"server" : "Microsoft-IIS/8.5",
"contEnc" : "identity"
},
"geo" : {
"lat" : "59.33",
"region" : "AB",
"long" : "18.05",
"country" : "DE",
"city" : "dummy"
},
"reqHdr" : {
"cookie" : "drbanan%3d1"
}
}]`
payloads, err := CreateObjects([]byte(json))
if err != nil {
t.Errorf("Error while trying to decode valid JSON payload: %s", err)
}
if len(payloads) != 1 {
t.Errorf("Unexpected number of payloads in JSON: Should be 1, is %d", len(payloads))
}
payload := payloads[0]
if payload.CP != "123456" {
t.Errorf("CP not correct in payload. Should be 123456, is %s", payload.CP)
}
if payload.ID != "915cfea5570f824cc27112-a" {
t.Errorf("ID not correct in payload. Should be 915cfea5570f824cc27112-a, is %s", payload.ID)
}
if payload.Geo.Country != "DE" {
t.Errorf("Country not correct in payload. Should be DE, is %s", payload.Geo.Country)
}
}
// TestMultiplePayloads tests if a correct number of payload objects are created.
func TestMultiplePayloads(t *testing.T) {
dat, err := ioutil.ReadFile("tests/payload.json")
payloads, err := CreateObjects([]byte(dat))
if err != nil {
t.Errorf("Error while trying to decode valid JSON payload: %s", err)
}
// test custom number of payloads in JSON file
if len(payloads) != 42 {
t.Errorf("Unexpected number of payloads in JSON: Should be 7, is %d", len(payloads))
}
for i := 0; i < len(payloads); i++ {
if payloads[i].CP != "123456" {
t.Errorf("CP not correct in payload. Should be 123456, is %s", payloads[i].CP)
}
}
}