-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbookHandlers_error_test.go
107 lines (89 loc) · 3.15 KB
/
bookHandlers_error_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
package main
import (
"net/http"
"net/http/httptest"
"net/url"
"strings"
"testing"
"github.com/labstack/echo"
"github.com/stretchr/testify/assert"
)
func TestAddBookError(t *testing.T) {
e := echo.New()
formValues := make(url.Values)
formValues.Set("Author", "Jeff VanderMeer")
formValues.Set("PublishDate", "2014-11-18")
formValues.Set("Publisher", "FSG Originals")
formValues.Set("Rating", "3")
formValues.Set("Status", "Checked-In")
formValues.Set("Title", "Area-X")
addBookReq := httptest.NewRequest(
http.MethodPost,
"/addbook",
strings.NewReader(formValues.Encode()),
)
addBookReq.Header.Set(echo.HeaderContentType, echo.MIMEApplicationForm)
addBookRec := httptest.NewRecorder()
addBookContext := e.NewContext(addBookReq, addBookRec)
if assert.NoError(t, addBook(addBookContext)) {
assert.Equal(t, "Could not add Area-X", addBookRec.Body.String())
}
}
func TestGetBookError(t *testing.T) {
e := echo.New()
getBookReq := httptest.NewRequest(http.MethodGet, "/getbook/:id", nil)
getBookRec := httptest.NewRecorder()
getBookContext := e.NewContext(getBookReq, getBookRec)
getBookContext.SetParamNames("id")
getBookContext.SetParamValues("JeffVanderMeer-Area-X")
if assert.NoError(t, getBook(getBookContext)) {
assert.Equal(t, "No book with id JeffVanderMeer-Area-X", getBookRec.Body.String())
}
}
func TestRemoveBookError(t *testing.T) {
e := echo.New()
removeBookReq := httptest.NewRequest(http.MethodDelete, "/removebook/:id", nil)
removeBookRec := httptest.NewRecorder()
removeBookContext := e.NewContext(removeBookReq, removeBookRec)
removeBookContext.SetParamNames("id")
removeBookContext.SetParamValues("JeffVanderMeer-Area-X")
if assert.NoError(t, removeBook(removeBookContext)) {
assert.Equal(t, "Could not remove book with id JeffVanderMeer-Area-X", removeBookRec.Body.String())
}
}
func TestSetBookRatingError(t *testing.T) {
e := echo.New()
formValues := make(url.Values)
formValues.Set("Rating", "2")
setRatingReq := httptest.NewRequest(
http.MethodPost,
"/setrating/:id",
strings.NewReader(formValues.Encode()),
)
setRatingReq.Header.Set(echo.HeaderContentType, echo.MIMEApplicationForm)
setRatingRec := httptest.NewRecorder()
setRatingContext := e.NewContext(setRatingReq, setRatingRec)
setRatingContext.SetParamNames("id")
setRatingContext.SetParamValues("JeffVanderMeer-Area-X")
if assert.NoError(t, setBookRating(setRatingContext)) {
assert.Equal(t, "No book to update with id JeffVanderMeer-Area-X", setRatingRec.Body.String())
}
}
func TestSetBookStatusError(t *testing.T) {
e := echo.New()
formValues := make(url.Values)
formValues.Set("Status", "Checked-Out")
setRatingReq := httptest.NewRequest(
http.MethodPost,
"/setrating/:id",
strings.NewReader(formValues.Encode()),
)
setRatingReq.Header.Set(echo.HeaderContentType, echo.MIMEApplicationForm)
setRatingRec := httptest.NewRecorder()
setRatingContext := e.NewContext(setRatingReq, setRatingRec)
setRatingContext.SetParamNames("id")
setRatingContext.SetParamValues("JeffVanderMeer-Area-X")
if assert.NoError(t, setBookStatus(setRatingContext)) {
assert.Equal(t, "No book to update with id JeffVanderMeer-Area-X", setRatingRec.Body.String())
}
}