-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathhandler_test.go
More file actions
49 lines (36 loc) · 1.19 KB
/
Copy pathhandler_test.go
File metadata and controls
49 lines (36 loc) · 1.19 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
package orders
import (
"context"
"testing"
"time"
"example.com/orders-api/gen/serverhttp"
"github.com/stretchr/testify/require"
)
type stubStore struct {
created Order
got Order
err error
}
func (s *stubStore) Create(context.Context, string, int64) (Order, error) {
return s.created, s.err
}
func (s *stubStore) Get(context.Context, int64) (Order, error) {
return s.got, s.err
}
func TestHandlerCreatesOrder(t *testing.T) {
t.Parallel()
want := Order{ID: 7, CustomerName: "Ada", TotalCents: 1250, CreatedAt: time.Unix(1, 0).UTC()}
handler := NewHandler(&stubStore{created: want})
response, err := handler.CreateOrder(t.Context(), serverhttp.CreateOrderRequestObject{
Body: &serverhttp.CreateOrder{CustomerName: "Ada", TotalCents: 1250},
})
require.NoError(t, err)
require.Equal(t, serverhttp.CreateOrder201JSONResponse(toAPIOrder(want)), response)
}
func TestHandlerReturnsNotFound(t *testing.T) {
t.Parallel()
handler := NewHandler(&stubStore{err: ErrNotFound})
response, err := handler.GetOrder(t.Context(), serverhttp.GetOrderRequestObject{Id: 404})
require.NoError(t, err)
require.Equal(t, serverhttp.GetOrder404JSONResponse{Message: "order not found"}, response)
}