forked from Invoiced/invoiced-go
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathnote_test.go
133 lines (94 loc) · 2.69 KB
/
note_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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
package invdapi
import (
"reflect"
"testing"
"time"
"github.com/gabrielsoaressantos/invoiced-go/invdendpoint"
"github.com/gabrielsoaressantos/invoiced-go/invdmockserver"
)
func TestNote_Create(t *testing.T) {
key := "test api key"
mockResponse := new(invdendpoint.Note)
mockResponse.Id = int64(1234)
mockResponse.CreatedAt = time.Now().UnixNano()
mockResponse.Notes = "nomenclature"
server, err := invdmockserver.New(200, mockResponse, "json", true)
if err != nil {
t.Fatal(err)
}
defer server.Close()
conn := mockConnection(key, server)
entity := conn.NewNote()
request := invdendpoint.CreateNoteRequest{CustomerID: int64(1234)}
createdEntity, err := entity.Create(request)
if err != nil {
t.Fatal("Error Creating entity", err)
}
if !reflect.DeepEqual(createdEntity.Note, mockResponse) {
t.Fatal("entity was not created", createdEntity.Note, mockResponse)
}
}
func TestNote_Save(t *testing.T) {
key := "test api key"
mockResponse := new(invdendpoint.Note)
mockResponse.Id = int64(1234)
mockResponse.CreatedAt = time.Now().UnixNano()
mockResponse.Notes = "new-notes"
server, err := invdmockserver.New(200, mockResponse, "json", true)
if err != nil {
t.Fatal(err)
}
defer server.Close()
conn := mockConnection(key, server)
entityToUpdate := conn.NewNote()
entityToUpdate.Notes = "new-notes"
err = entityToUpdate.Save()
if err != nil {
t.Fatal("Error updating entity", err)
}
if !reflect.DeepEqual(mockResponse, entityToUpdate.Note) {
t.Fatal("Error: entity not updated correctly")
}
}
func TestNote_Delete(t *testing.T) {
key := "api key"
mockResponse := ""
mockResponseId := int64(1234)
server, err := invdmockserver.New(204, mockResponse, "json", true)
if err != nil {
t.Fatal(err)
}
defer server.Close()
conn := mockConnection(key, server)
entity := conn.NewNote()
entity.Id = mockResponseId
err = entity.Delete()
if err != nil {
t.Fatal("Error occurred deleting entity")
}
}
func TestNote_ListAll(t *testing.T) {
key := "test api key"
var mockListResponse [1]invdendpoint.Note
mockResponse := new(invdendpoint.Note)
mockResponse.Id = int64(1234)
mockResponse.Notes = "nomenclature"
mockResponse.CreatedAt = time.Now().UnixNano()
mockListResponse[0] = *mockResponse
server, err := invdmockserver.New(200, mockListResponse, "json", true)
if err != nil {
t.Fatal(err)
}
defer server.Close()
conn := mockConnection(key, server)
entity := conn.NewNote()
filter := invdendpoint.NewFilter()
sorter := invdendpoint.NewSort()
result, err := entity.ListAll(filter, sorter)
if err != nil {
t.Fatal("Error listing entity", err)
}
if !reflect.DeepEqual(result[0].Note, mockResponse) {
t.Fatal("Error messages do not match up")
}
}