-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdeserializer_test.go
More file actions
102 lines (82 loc) · 2.36 KB
/
Copy pathdeserializer_test.go
File metadata and controls
102 lines (82 loc) · 2.36 KB
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
package main
import (
"reflect"
"testing"
)
func TestUnMarshallGuest(t *testing.T) {
line := `{"latitude": "52.986375", "user_id": 12, "name": "Christina McArdle", "longitude": "-6.043701"}`
guest, err := unMarshallGuest([]byte(line))
if err != nil {
t.Error("Error while umarshalling input data: ", err)
}
refGuest := &Guest{
Id: 12,
Latitude: 52.986375,
Longitude: -6.043701,
Name: "Christina McArdle",
}
if reflect.DeepEqual(refGuest, guest) == false {
t.Errorf("Guests mismatch:\nExp %s\nGot: %s", refGuest, guest)
}
}
func TestUnMarshallGuestInvalidInput(t *testing.T) {
line := `invalid input`
guest, err := unMarshallGuest([]byte(line))
if err == nil || guest != nil {
t.Error(
"Error while umarshalling input data, expected function to fail")
}
}
func TestReadingGuestListFromFile(t *testing.T) {
fileName := "fixtures/guests_single_line.txt"
guests, err := ReadGuestsList(fileName)
if err != nil {
t.Error("Error while unmarshalling guests from a file", err)
}
if len(guests) != 1 {
t.Errorf("Expected to get a single item list, got %d instead\n",
len(guests))
}
refGuest := &Guest{
Id: 12,
Latitude: 52.986375,
Longitude: -6.043701,
Name: "Christina McArdle",
}
if reflect.DeepEqual(refGuest, guests[0]) == false {
t.Errorf("Guests mismatch:\nExp %s\nGot: %s", refGuest, guests[0])
}
}
func TestReadingGuestListFromFileMulti(t *testing.T) {
fileName := "fixtures/guests.txt"
expGuestLength := 32
guests, err := ReadGuestsList(fileName)
if err != nil || guests == nil {
t.Error("Error while unmarshalling guests from a file", err)
}
if len(guests) != expGuestLength {
t.Errorf("Expected to get a list with %d elements, got %d instead\n",
expGuestLength, len(guests))
}
}
func TestReadingGuestFileWrongPath(t *testing.T) {
fileName := "fixtures/idontexist"
guests, err := ReadGuestsList(fileName)
if err == nil {
t.Error("Expected bad input file to be handled")
}
if len(guests) != 0 {
t.Error("Expected guests list to be empty")
}
}
func TestReadingGuestFileInvalidInput(t *testing.T) {
fileName := "fixtures/guests_invalid_input.txt"
guests, err := ReadGuestsList(fileName)
if err != nil {
t.Error("ReadGuestsList should not set error in this case (invalid input)")
}
if len(guests) != 0 {
t.Errorf("Expected guest list to be empty, instead it's %d\n",
len(guests))
}
}