Skip to content

Commit e47f108

Browse files
David BouchareSlavek Kabrda
authored andcommitted
Add unit tests (#269)
* Add unit tests for events * Add unit tests for users * Add tests for downtimes
1 parent e31782f commit e47f108

File tree

6 files changed

+240
-0
lines changed

6 files changed

+240
-0
lines changed

downtimes_test.go

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
package datadog
2+
3+
import (
4+
"io/ioutil"
5+
"net/http"
6+
"net/http/httptest"
7+
"testing"
8+
)
9+
10+
func TestGetDowntime(t *testing.T) {
11+
ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
12+
response, err := ioutil.ReadFile("./tests/fixtures/downtimes_response.json")
13+
if err != nil {
14+
t.Fatal(err)
15+
}
16+
w.Write(response)
17+
}))
18+
defer ts.Close()
19+
20+
datadogClient := Client{
21+
baseUrl: ts.URL,
22+
HttpClient: http.DefaultClient,
23+
}
24+
25+
downtime, err := datadogClient.GetDowntime(2910)
26+
if err != nil {
27+
t.Fatal(err)
28+
}
29+
30+
expectedID := 2910
31+
if id := downtime.GetId(); id != expectedID {
32+
t.Fatalf("expect ID %d. Got %d", expectedID, id)
33+
}
34+
35+
expectedActive := true
36+
if active := downtime.GetActive(); active != expectedActive {
37+
t.Fatalf("expect active %t. Got %v", expectedActive, active)
38+
}
39+
40+
expectedEnd := 1420447087
41+
if end := downtime.GetEnd(); end != expectedEnd {
42+
t.Fatalf("expect end %d. Got %d", expectedEnd, end)
43+
}
44+
45+
expectedDisabled := false
46+
if disabled := downtime.GetDisabled(); expectedDisabled != disabled {
47+
t.Fatalf("expect active %t. Got %v", expectedActive, disabled)
48+
}
49+
50+
expectedMessage := "Doing some testing on staging."
51+
if message := downtime.GetMessage(); expectedMessage != message {
52+
t.Fatalf("expect message %s. Got %s", expectedMessage, message)
53+
}
54+
55+
expectedStart := 1420387032
56+
if start := downtime.GetStart(); expectedStart != start {
57+
t.Fatalf("expect end %d. Got %d", expectedStart, start)
58+
}
59+
}

events_test.go

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
package datadog
2+
3+
import (
4+
"io/ioutil"
5+
"net/http"
6+
"net/http/httptest"
7+
"testing"
8+
)
9+
10+
func TestGetEvent(t *testing.T) {
11+
ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
12+
response, err := ioutil.ReadFile("./tests/fixtures/events_response.json")
13+
if err != nil {
14+
t.Fatal(err)
15+
}
16+
w.Write(response)
17+
}))
18+
defer ts.Close()
19+
20+
datadogClient := Client{
21+
baseUrl: ts.URL,
22+
HttpClient: http.DefaultClient,
23+
}
24+
25+
// Test a single event
26+
event, err := datadogClient.GetEvent(1377281704830403917)
27+
if err != nil {
28+
t.Fatal(err)
29+
}
30+
31+
expectedID := 1377281704830403917
32+
if id := event.GetId(); id != expectedID {
33+
t.Fatalf("expect ID %d. Got %d", expectedID, id)
34+
}
35+
36+
expectedTime := 1346355252
37+
if time := event.GetTime(); time != expectedTime {
38+
t.Fatalf("expect timestamp %d. Got %d", expectedTime, time)
39+
}
40+
41+
expectedText := "Oh wow!"
42+
if text := event.GetText(); text != expectedText {
43+
t.Fatalf("expect text %s. Got %s", expectedText, text)
44+
}
45+
46+
expectedTitle := "Did you hear the news today?"
47+
if title := event.GetTitle(); title != expectedTitle {
48+
t.Fatalf("expect title %s. Got %s", expectedTitle, title)
49+
}
50+
51+
expectedAlertType := "info"
52+
if alertType := event.GetAlertType(); alertType != expectedAlertType {
53+
t.Fatalf("expect alert type %s. Got %s", expectedAlertType, alertType)
54+
}
55+
56+
// host is null
57+
expectedHost := ""
58+
if host := event.GetHost(); host != expectedHost {
59+
t.Fatalf("expect host %s. Got %s", expectedHost, host)
60+
}
61+
62+
expectedResource := "/api/v1/events/1377281704830403917"
63+
if resource := event.GetResource(); resource != expectedResource {
64+
t.Fatalf("expect resource %s. Got %s", expectedResource, resource)
65+
}
66+
67+
expectedURL := "/event/jump_to?event_id=1377281704830403917"
68+
if url := event.GetUrl(); url != expectedURL {
69+
t.Fatalf("expect url %s. Got %s", expectedURL, url)
70+
}
71+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"active": true,
3+
"disabled": false,
4+
"end": 1420447087,
5+
"id": 2910,
6+
"message": "Doing some testing on staging.",
7+
"monitor_tags": ["*"],
8+
"scope": ["env:staging"],
9+
"start": 1420387032
10+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
{
2+
"event": {
3+
"alert_type": "info",
4+
"date_happened": 1346355252,
5+
"device_name": null,
6+
"host": null,
7+
"id": 1377281704830403917,
8+
"payload": "{}",
9+
"priority": "normal",
10+
"resource": "/api/v1/events/1377281704830403917",
11+
"tags": [
12+
"environment:test"
13+
],
14+
"text": "Oh wow!",
15+
"title": "Did you hear the news today?",
16+
"url": "/event/jump_to?event_id=1377281704830403917"
17+
}
18+
}

tests/fixtures/users_response.json

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"user": {
3+
"handle": "[email protected]",
4+
"name": "test user",
5+
"access_role": "st",
6+
"verified": true,
7+
"disabled": false,
8+
"role": null,
9+
"is_admin": false,
10+
"email": "[email protected]",
11+
"icon": "/path/to/matching/gravatar/icon"
12+
}
13+
}

users_test.go

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
package datadog
2+
3+
import (
4+
"io/ioutil"
5+
"net/http"
6+
"net/http/httptest"
7+
"testing"
8+
)
9+
10+
func TestGetUser(t *testing.T) {
11+
ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
12+
response, err := ioutil.ReadFile("./tests/fixtures/users_response.json")
13+
if err != nil {
14+
t.Fatal(err)
15+
}
16+
w.Write(response)
17+
}))
18+
defer ts.Close()
19+
20+
datadogClient := Client{
21+
baseUrl: ts.URL,
22+
HttpClient: http.DefaultClient,
23+
}
24+
25+
user, err := datadogClient.GetUser("[email protected]")
26+
if err != nil {
27+
t.Fatal(err)
28+
}
29+
30+
expectedHandle := "[email protected]"
31+
if handle := user.GetHandle(); handle != expectedHandle {
32+
t.Fatalf("expect handle %s. Got %s", expectedHandle, handle)
33+
}
34+
35+
expectedName := "test user"
36+
if name := user.GetName(); name != expectedName {
37+
t.Fatalf("expect name %s. Got %s", expectedName, name)
38+
}
39+
40+
expectedEmail := "[email protected]"
41+
if email := user.GetEmail(); email != expectedEmail {
42+
t.Fatalf("expect email %s. Got %s", expectedEmail, email)
43+
}
44+
45+
expectedAccessRole := "st"
46+
if accessRole := user.GetAccessRole(); accessRole != expectedAccessRole {
47+
t.Fatalf("expect access role %s. Got %s", expectedAccessRole, accessRole)
48+
}
49+
50+
expectedIsAdmin := false
51+
if isAdmin := user.GetIsAdmin(); isAdmin != expectedIsAdmin {
52+
t.Fatalf("expect is_admin %t. Got %v", expectedIsAdmin, isAdmin)
53+
}
54+
55+
expectedIsVerified := true
56+
if isVerified := user.GetVerified(); isVerified != expectedIsVerified {
57+
t.Fatalf("expect is_verified %t. Got %v", expectedIsVerified, isVerified)
58+
}
59+
60+
expectedIsDisabled := false
61+
if isVerified := user.GetDisabled(); isVerified != expectedIsDisabled {
62+
t.Fatalf("expect is_disabled %t. Got %v", expectedIsDisabled, isVerified)
63+
}
64+
65+
expectedRole := ""
66+
if role := user.GetRole(); role != expectedRole {
67+
t.Fatalf("expect role %s. Got %s", expectedRole, role)
68+
}
69+
}

0 commit comments

Comments
 (0)