Skip to content

Commit

Permalink
Refactoring and Add tests for utility
Browse files Browse the repository at this point in the history
  • Loading branch information
ybkuroki committed Jan 1, 2022
1 parent 3f891d5 commit 58ff11a
Show file tree
Hide file tree
Showing 8 changed files with 74 additions and 22 deletions.
17 changes: 9 additions & 8 deletions controller/book_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import (
"github.com/ybkuroki/go-webapp-sample/model"
"github.com/ybkuroki/go-webapp-sample/model/dto"
"github.com/ybkuroki/go-webapp-sample/test"
"github.com/ybkuroki/go-webapp-sample/util"
)

type BookDtoForBindError struct {
Expand All @@ -28,7 +29,7 @@ func TestGetBook_Success(t *testing.T) {

setUpTestData(container)

uri := test.NewRequestBuilder().URL(APIBooks).PathParams("1").Build().GetRequestURL()
uri := util.NewRequestBuilder().URL(APIBooks).PathParams("1").Build().GetRequestURL()
req := httptest.NewRequest("GET", uri, nil)
rec := httptest.NewRecorder()

Expand All @@ -49,7 +50,7 @@ func TestGetBook_Failure(t *testing.T) {

setUpTestData(container)

uri := test.NewRequestBuilder().URL(APIBooks).PathParams("9999").Build().GetRequestURL()
uri := util.NewRequestBuilder().URL(APIBooks).PathParams("9999").Build().GetRequestURL()
req := httptest.NewRequest("GET", uri, nil)
rec := httptest.NewRecorder()

Expand All @@ -67,7 +68,7 @@ func TestGetBookList_Success(t *testing.T) {

setUpTestData(container)

uri := test.NewRequestBuilder().URL(APIBooks).RequestParams("query", "Test").RequestParams("page", "0").RequestParams("size", "5").Build().GetRequestURL()
uri := util.NewRequestBuilder().URL(APIBooks).RequestParams("query", "Test").RequestParams("page", "0").RequestParams("size", "5").Build().GetRequestURL()
req := httptest.NewRequest("GET", uri, nil)
rec := httptest.NewRecorder()

Expand Down Expand Up @@ -142,7 +143,7 @@ func TestUpdateBook_Success(t *testing.T) {
setUpTestData(container)

param := createBookForUpdate()
uri := test.NewRequestBuilder().URL(APIBooks).PathParams("1").Build().GetRequestURL()
uri := util.NewRequestBuilder().URL(APIBooks).PathParams("1").Build().GetRequestURL()
req := test.NewJSONRequest("PUT", uri, param)
rec := httptest.NewRecorder()

Expand All @@ -164,7 +165,7 @@ func TestUpdateBook_BindError(t *testing.T) {
setUpTestData(container)

param := createBookForBindError()
uri := test.NewRequestBuilder().URL(APIBooks).PathParams("1").Build().GetRequestURL()
uri := util.NewRequestBuilder().URL(APIBooks).PathParams("1").Build().GetRequestURL()
req := test.NewJSONRequest("PUT", uri, param)
rec := httptest.NewRecorder()

Expand All @@ -184,7 +185,7 @@ func TestUpdateBook_ValidationError(t *testing.T) {
setUpTestData(container)

param := createBookForValidationError()
uri := test.NewRequestBuilder().URL(APIBooks).PathParams("1").Build().GetRequestURL()
uri := util.NewRequestBuilder().URL(APIBooks).PathParams("1").Build().GetRequestURL()
req := test.NewJSONRequest("PUT", uri, param)
rec := httptest.NewRecorder()

Expand All @@ -206,7 +207,7 @@ func TestDeleteBook_Success(t *testing.T) {
entity := &model.Book{}
data, _ := entity.FindByID(container.GetRepository(), 1)

uri := test.NewRequestBuilder().URL(APIBooks).PathParams("1").Build().GetRequestURL()
uri := util.NewRequestBuilder().URL(APIBooks).PathParams("1").Build().GetRequestURL()
req := test.NewJSONRequest("DELETE", uri, nil)
rec := httptest.NewRecorder()

Expand All @@ -224,7 +225,7 @@ func TestDeleteBook_Failure(t *testing.T) {

setUpTestData(container)

uri := test.NewRequestBuilder().URL(APIBooks).PathParams("9999").Build().GetRequestURL()
uri := util.NewRequestBuilder().URL(APIBooks).PathParams("9999").Build().GetRequestURL()
req := test.NewJSONRequest("DELETE", uri, nil)
rec := httptest.NewRecorder()

Expand Down
6 changes: 3 additions & 3 deletions service/account_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ func TestAuthenticateByUsernameAndPassword_Success(t *testing.T) {
data, _ := a.FindByName(container.GetRepository(), "test")

assert.Equal(t, data, account)
assert.Equal(t, true, result)
assert.True(t, result)
}

func TestAuthenticateByUsernameAndPassword_EntityNotFound(t *testing.T) {
Expand All @@ -28,7 +28,7 @@ func TestAuthenticateByUsernameAndPassword_EntityNotFound(t *testing.T) {
result, account := service.AuthenticateByUsernameAndPassword("abcde", "abcde")

assert.Equal(t, (*model.Account)(nil), account)
assert.Equal(t, false, result)
assert.False(t, result)
}

func TestAuthenticateByUsernameAndPassword_AuthenticationFailure(t *testing.T) {
Expand All @@ -38,5 +38,5 @@ func TestAuthenticateByUsernameAndPassword_AuthenticationFailure(t *testing.T) {
result, account := service.AuthenticateByUsernameAndPassword("test", "abcde")

assert.Equal(t, (*model.Account)(nil), account)
assert.Equal(t, false, result)
assert.False(t, result)
}
16 changes: 8 additions & 8 deletions service/book_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ func TestFindByID_Success(t *testing.T) {
result, err := service.FindByID("1")

assert.Equal(t, uint(1), result.ID)
assert.Equal(t, nil, err)
assert.NoError(t, err)
assert.NotEmpty(t, result)
}

Expand All @@ -45,7 +45,7 @@ func TestFindByID_EntityNotFound(t *testing.T) {
result, err := service.FindByID("9999")

assert.Equal(t, (*model.Book)(nil), result)
assert.Equal(t, errors.New("failed to fetch data"), err)
assert.Error(t, err, "failed to fetch data")
}

func TestFindAllBooks_Success(t *testing.T) {
Expand All @@ -56,8 +56,8 @@ func TestFindAllBooks_Success(t *testing.T) {
service := NewBookService(container)
result, err := service.FindAllBooks()

assert.Equal(t, 2, len(*result))
assert.Equal(t, nil, err)
assert.Len(t, *result, 2)
assert.NoError(t, err)
}

func TestFindAllBooksByPage_Success(t *testing.T) {
Expand All @@ -72,8 +72,8 @@ func TestFindAllBooksByPage_Success(t *testing.T) {
assert.Equal(t, 1, result.TotalPages)
assert.Equal(t, 0, result.Page)
assert.Equal(t, 5, result.Size)
assert.Equal(t, 2, len(*result.Content))
assert.Equal(t, nil, err)
assert.Len(t, *result.Content, 2)
assert.NoError(t, err)
}

func TestFindBooksByTitle_Success(t *testing.T) {
Expand All @@ -88,8 +88,8 @@ func TestFindBooksByTitle_Success(t *testing.T) {
assert.Equal(t, 1, result.TotalPages)
assert.Equal(t, 0, result.Page)
assert.Equal(t, 5, result.Size)
assert.Equal(t, 1, len(*result.Content))
assert.Equal(t, nil, err)
assert.Len(t, *result.Content, 1)
assert.NoError(t, err)
}

func TestCreateBook_Success(t *testing.T) {
Expand Down
2 changes: 1 addition & 1 deletion service/category_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,5 @@ func TestFindAllCategories_Success(t *testing.T) {
service := NewCategoryService(container)
result := service.FindAllCategories()

assert.Equal(t, 3, len(*result))
assert.Len(t, *result, 3)
}
2 changes: 1 addition & 1 deletion service/format_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,5 @@ func TestFindAllFormats_Success(t *testing.T) {
service := NewFormatService(container)
result := service.FindAllFormats()

assert.Equal(t, 2, len(*result))
assert.Len(t, *result, 2)
}
2 changes: 1 addition & 1 deletion test/request_builder.go → util/request_builder.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package test
package util

import "strings"

Expand Down
17 changes: 17 additions & 0 deletions util/request_builder_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package util

import (
"testing"

"github.com/stretchr/testify/assert"
)

func TestGetRequestURL_PathParam(t *testing.T) {
result := NewRequestBuilder().URL("https://www.test/").PathParams("1").PathParams("test").Build().GetRequestURL()
assert.Equal(t, "https://www.test/1/test", result)
}

func TestGetRequestURL_RequestParam(t *testing.T) {
result := NewRequestBuilder().URL("https://www.test/").RequestParams("hoge", "123").RequestParams("huga", "abcd").Build().GetRequestURL()
assert.Equal(t, "https://www.test/?hoge=123&huga=abcd", result)
}
34 changes: 34 additions & 0 deletions util/strings_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package util

import (
"testing"

"github.com/stretchr/testify/assert"
)

func TestIsNumeric_True(t *testing.T) {
result := IsNumeric("123")
assert.True(t, result)
}

func TestIsNumeric_False(t *testing.T) {
result := IsNumeric("abcde")
assert.False(t, result)
}

func TestConvertToInt_Number(t *testing.T) {
result := ConvertToInt("123")
assert.Equal(t, int(123), result)
assert.IsType(t, int(123), result)
}

func TestConvertToInt_NotNumber(t *testing.T) {
result := ConvertToInt("abcde/:12@s#$%'()")
assert.Equal(t, 0, result)
}

func TestConvertToUint_Number(t *testing.T) {
result := ConvertToUint("123")
assert.Equal(t, uint(123), result)
assert.IsType(t, uint(123), result)
}

0 comments on commit 58ff11a

Please sign in to comment.