feat: improvements in structures

This commit is contained in:
Elton Minetto
2020-09-29 21:51:18 -03:00
parent 201f7607e1
commit 2c7f87e73a
41 changed files with 821 additions and 1265 deletions
+21 -23
View File
@@ -11,10 +11,8 @@ import (
"github.com/eminetto/clean-architecture-go-v2/domain"
"github.com/eminetto/clean-architecture-go-v2/domain/entity"
"github.com/eminetto/clean-architecture-go-v2/domain/entity/book"
"github.com/codegangsta/negroni"
"github.com/eminetto/clean-architecture-go-v2/domain/entity/book/mock"
"github.com/eminetto/clean-architecture-go-v2/domain/usecase/book/mock"
"github.com/golang/mock/gomock"
"github.com/gorilla/mux"
"github.com/stretchr/testify/assert"
@@ -23,17 +21,17 @@ import (
func Test_listBooks(t *testing.T) {
controller := gomock.NewController(t)
defer controller.Finish()
manager := mock.NewMockManager(controller)
manager := mock.NewMockUseCase(controller)
r := mux.NewRouter()
n := negroni.New()
MakeBookHandlers(r, *n, manager)
path, err := r.GetRoute("listBooks").GetPathTemplate()
assert.Nil(t, err)
assert.Equal(t, "/v1/book", path)
b := book.NewFixtureBook()
b := entity.NewFixtureBook()
manager.EXPECT().
List().
Return([]*book.Book{b}, nil)
ListBooks().
Return([]*entity.Book{b}, nil)
ts := httptest.NewServer(listBooks(manager))
defer ts.Close()
res, err := http.Get(ts.URL)
@@ -44,11 +42,11 @@ func Test_listBooks(t *testing.T) {
func Test_listBooks_NotFound(t *testing.T) {
controller := gomock.NewController(t)
defer controller.Finish()
manager := mock.NewMockManager(controller)
manager := mock.NewMockUseCase(controller)
ts := httptest.NewServer(listBooks(manager))
defer ts.Close()
manager.EXPECT().
Search("book of books").
SearchBooks("book of books").
Return(nil, domain.ErrNotFound)
res, err := http.Get(ts.URL + "?title=book+of+books")
assert.Nil(t, err)
@@ -58,11 +56,11 @@ func Test_listBooks_NotFound(t *testing.T) {
func Test_listBooks_Search(t *testing.T) {
controller := gomock.NewController(t)
defer controller.Finish()
manager := mock.NewMockManager(controller)
b := book.NewFixtureBook()
manager := mock.NewMockUseCase(controller)
b := entity.NewFixtureBook()
manager.EXPECT().
Search("ozzy").
Return([]*book.Book{b}, nil)
SearchBooks("ozzy").
Return([]*entity.Book{b}, nil)
ts := httptest.NewServer(listBooks(manager))
defer ts.Close()
res, err := http.Get(ts.URL + "?title=ozzy")
@@ -73,7 +71,7 @@ func Test_listBooks_Search(t *testing.T) {
func Test_createBook(t *testing.T) {
controller := gomock.NewController(t)
defer controller.Finish()
manager := mock.NewMockManager(controller)
manager := mock.NewMockUseCase(controller)
r := mux.NewRouter()
n := negroni.New()
MakeBookHandlers(r, *n, manager)
@@ -82,7 +80,7 @@ func Test_createBook(t *testing.T) {
assert.Equal(t, "/v1/book", path)
manager.EXPECT().
Create(gomock.Any()).
CreateBook(gomock.Any()).
Return(entity.NewID(), nil)
h := createBook(manager)
@@ -97,7 +95,7 @@ func Test_createBook(t *testing.T) {
resp, _ := http.Post(ts.URL+"/v1/book", "application/json", strings.NewReader(payload))
assert.Equal(t, http.StatusCreated, resp.StatusCode)
var b *book.Book
var b *entity.Book
json.NewDecoder(resp.Body).Decode(&b)
assert.Equal(t, "Ozzy Osbourne", b.Author)
}
@@ -105,16 +103,16 @@ func Test_createBook(t *testing.T) {
func Test_getBook(t *testing.T) {
controller := gomock.NewController(t)
defer controller.Finish()
manager := mock.NewMockManager(controller)
manager := mock.NewMockUseCase(controller)
r := mux.NewRouter()
n := negroni.New()
MakeBookHandlers(r, *n, manager)
path, err := r.GetRoute("getBook").GetPathTemplate()
assert.Nil(t, err)
assert.Equal(t, "/v1/book/{id}", path)
b := book.NewFixtureBook()
b := entity.NewFixtureBook()
manager.EXPECT().
Get(b.ID).
GetBook(b.ID).
Return(b, nil)
handler := getBook(manager)
r.Handle("/v1/book/{id}", handler)
@@ -123,7 +121,7 @@ func Test_getBook(t *testing.T) {
res, err := http.Get(ts.URL + "/v1/book/" + b.ID.String())
assert.Nil(t, err)
assert.Equal(t, http.StatusOK, res.StatusCode)
var d *book.Book
var d *entity.Book
json.NewDecoder(res.Body).Decode(&d)
assert.NotNil(t, d)
assert.Equal(t, b.ID, d.ID)
@@ -132,15 +130,15 @@ func Test_getBook(t *testing.T) {
func Test_deleteBook(t *testing.T) {
controller := gomock.NewController(t)
defer controller.Finish()
manager := mock.NewMockManager(controller)
manager := mock.NewMockUseCase(controller)
r := mux.NewRouter()
n := negroni.New()
MakeBookHandlers(r, *n, manager)
path, err := r.GetRoute("deleteBook").GetPathTemplate()
assert.Nil(t, err)
assert.Equal(t, "/v1/book/{id}", path)
b := book.NewFixtureBook()
manager.EXPECT().Delete(b.ID).Return(nil)
b := entity.NewFixtureBook()
manager.EXPECT().DeleteBook(b.ID).Return(nil)
handler := deleteBook(manager)
req, _ := http.NewRequest("DELETE", "/v1/bookmark/"+b.ID.String(), nil)
r.Handle("/v1/bookmark/{id}", handler).Methods("DELETE", "OPTIONS")