Skip to content

Commit

Permalink
Merge pull request #14 from minusno0708/refactor/relocate-methods
Browse files Browse the repository at this point in the history
アーキテクチャに沿ってメソッドを修正
  • Loading branch information
minusno0708 authored Mar 8, 2024
2 parents 353610a + 38374c3 commit a241183
Show file tree
Hide file tree
Showing 26 changed files with 360 additions and 318 deletions.
17 changes: 15 additions & 2 deletions cmd/api/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,27 @@ import (

"github.com/gin-gonic/gin"

"user-register-api/config"
"user-register-api/infrastructure/persistence"
"user-register-api/interfaces/handler"
"user-register-api/usecase"
)

func main() {
userPersistence := persistence.NewUserPersistence()
tokenPersistence := persistence.NewTokenPersistence()
db, err := config.ConnectDB()
if err != nil {
panic(err)
}
defer db.Close()

cdb, err := config.ConnectCacheDB()
if err != nil {
panic(err)
}
defer cdb.Close()

userPersistence := persistence.NewUserPersistence(db)
tokenPersistence := persistence.NewTokenPersistence(cdb)

userUseCase := usecase.NewUserUseCase(userPersistence)
tokenUseCase := usecase.NewTokenUseCase(tokenPersistence)
Expand Down
29 changes: 17 additions & 12 deletions cmd/api/test/main1_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,11 @@ type requestBody struct {
Password string `json:"password"`
}

type responseBody struct {
User domain.User `json:"user"`
TokenString string `json:"token"`
}

type errorString struct {
message string
}
Expand Down Expand Up @@ -51,34 +56,34 @@ func sendRequest(method string, endpoint string, sendingBody *bytes.Buffer) (*ht
return resp, nil
}

func verifyExpectedResponse(resp *http.Response, expectedStatusCode int, expectedMessage string, expectedUser *domain.User) error {
func verifyExpectedResponse(resp *http.Response, expectedStatusCode int, expectedMessage string) (*responseBody, error) {
var response struct {
Message string `json:"message"`
User domain.User `json:"user"`
Message string `json:"message"`
User domain.User `json:"user"`
TokenString string `json:"token"`
}

if resp.StatusCode != expectedStatusCode {
return &errorString{message: fmt.Sprintf("Expected status code %v, got %v", expectedStatusCode, resp.StatusCode)}
return nil, &errorString{message: fmt.Sprintf("Expected status code %v, got %v", expectedStatusCode, resp.StatusCode)}
}

responseData, _ := ioutil.ReadAll(resp.Body)

err := json.Unmarshal(responseData, &response)
if err != nil {
return err
return nil, err
}

if response.Message != expectedMessage {
return &errorString{message: fmt.Sprintf("Expected message %v, got %v", expectedMessage, response.Message)}
return nil, &errorString{message: fmt.Sprintf("Expected message %v, got %v", expectedMessage, response.Message)}
}

if expectedUser != nil {
if response.User != *expectedUser {
return &errorString{message: fmt.Sprintf("Expected user %v, got %v", expectedUser, response.User)}
}
responseBody := &responseBody{
User: response.User,
TokenString: response.TokenString,
}

return nil
return responseBody, nil
}

func TestConnectionApi(t *testing.T) {
Expand All @@ -90,7 +95,7 @@ func TestConnectionApi(t *testing.T) {
t.Fatal(err)
}

err = verifyExpectedResponse(resp, expectedStatusCode, expectedMessage, nil)
_, err = verifyExpectedResponse(resp, expectedStatusCode, expectedMessage)
if err != nil {
t.Fatal(err)
}
Expand Down
24 changes: 6 additions & 18 deletions cmd/api/test/main2_signup_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@ import (
"encoding/json"
"net/http"
"testing"

"user-register-api/domain"
)

func TestSignupBodyNotExist(t *testing.T) {
Expand All @@ -18,7 +16,7 @@ func TestSignupBodyNotExist(t *testing.T) {
t.Fatal(err)
}

err = verifyExpectedResponse(resp, expectedStatusCode, expectedMessage, nil)
_, err = verifyExpectedResponse(resp, expectedStatusCode, expectedMessage)
if err != nil {
t.Fatal(err)
}
Expand All @@ -43,7 +41,7 @@ func TestSignupUserIDNotExist(t *testing.T) {
t.Fatal(err)
}

err = verifyExpectedResponse(resp, expectedStatusCode, expectedMessage, nil)
_, err = verifyExpectedResponse(resp, expectedStatusCode, expectedMessage)
if err != nil {
t.Fatal(err)
}
Expand All @@ -68,7 +66,7 @@ func TestSignupPasswordNotExist(t *testing.T) {
t.Fatal(err)
}

err = verifyExpectedResponse(resp, expectedStatusCode, expectedMessage, nil)
_, err = verifyExpectedResponse(resp, expectedStatusCode, expectedMessage)
if err != nil {
t.Fatal(err)
}
Expand All @@ -84,11 +82,6 @@ func TestSignupSuccessUsernameExist(t *testing.T) {
Password: "testpass",
}

expectedUser := &domain.User{
UserID: "testuser",
Username: "testname",
}

jsonString, err := json.Marshal(requestBody)
if err != nil {
t.Fatal(err)
Expand All @@ -99,7 +92,7 @@ func TestSignupSuccessUsernameExist(t *testing.T) {
t.Fatal(err)
}

err = verifyExpectedResponse(resp, expectedStatusCode, expectedMessage, expectedUser)
_, err = verifyExpectedResponse(resp, expectedStatusCode, expectedMessage)
if err != nil {
t.Fatal(err)
}
Expand All @@ -114,11 +107,6 @@ func TestSignupSuccessUsernameNotExist(t *testing.T) {
Password: "testpass",
}

expectedUser := &domain.User{
UserID: "testuser_name_not_exist",
Username: "testuser_name_not_exist",
}

jsonString, err := json.Marshal(requestBody)
if err != nil {
t.Fatal(err)
Expand All @@ -129,7 +117,7 @@ func TestSignupSuccessUsernameNotExist(t *testing.T) {
t.Fatal(err)
}

err = verifyExpectedResponse(resp, expectedStatusCode, expectedMessage, expectedUser)
_, err = verifyExpectedResponse(resp, expectedStatusCode, expectedMessage)
if err != nil {
t.Fatal(err)
}
Expand All @@ -155,7 +143,7 @@ func TestSignupUserConflict(t *testing.T) {
t.Fatal(err)
}

err = verifyExpectedResponse(resp, expectedStatusCode, expectedMessage, nil)
_, err = verifyExpectedResponse(resp, expectedStatusCode, expectedMessage)
if err != nil {
t.Fatal(err)
}
Expand Down
61 changes: 21 additions & 40 deletions cmd/api/test/main3_auth_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import (
"io/ioutil"
"net/http"
"testing"
"user-register-api/domain"
)

var accessToken string
Expand All @@ -20,7 +19,7 @@ func TestSigninBodyNotExist(t *testing.T) {
t.Fatal(err)
}

err = verifyExpectedResponse(resp, expectedStatusCode, expectedMessage, nil)
_, err = verifyExpectedResponse(resp, expectedStatusCode, expectedMessage)
if err != nil {
t.Fatal(err)
}
Expand All @@ -30,7 +29,7 @@ func TestSigninUserIDNotExist(t *testing.T) {
expectedStatusCode := http.StatusUnauthorized
expectedMessage := "Body is not valid"

requestBody := &domain.User{
requestBody := requestBody{
Password: "testpass",
}

Expand All @@ -44,7 +43,7 @@ func TestSigninUserIDNotExist(t *testing.T) {
t.Fatal(err)
}

err = verifyExpectedResponse(resp, expectedStatusCode, expectedMessage, nil)
_, err = verifyExpectedResponse(resp, expectedStatusCode, expectedMessage)
if err != nil {
t.Fatal(err)
}
Expand All @@ -54,7 +53,7 @@ func TestSigninPasswordNotExist(t *testing.T) {
expectedStatusCode := http.StatusUnauthorized
expectedMessage := "Body is not valid"

requestBody := &domain.User{
requestBody := requestBody{
UserID: "testuser",
}

Expand All @@ -68,7 +67,7 @@ func TestSigninPasswordNotExist(t *testing.T) {
t.Fatal(err)
}

err = verifyExpectedResponse(resp, expectedStatusCode, expectedMessage, nil)
_, err = verifyExpectedResponse(resp, expectedStatusCode, expectedMessage)
if err != nil {
t.Fatal(err)
}
Expand All @@ -78,7 +77,7 @@ func TestSigninUserNotExist(t *testing.T) {
expectedStatusCode := http.StatusUnauthorized
expectedMessage := "User ID or password is incorrect"

requestBody := &domain.User{
requestBody := requestBody{
UserID: "testuser_not_exist",
Password: "testpass",
}
Expand All @@ -93,7 +92,7 @@ func TestSigninUserNotExist(t *testing.T) {
t.Fatal(err)
}

err = verifyExpectedResponse(resp, expectedStatusCode, expectedMessage, nil)
_, err = verifyExpectedResponse(resp, expectedStatusCode, expectedMessage)
if err != nil {
t.Fatal(err)
}
Expand All @@ -103,7 +102,7 @@ func TestSigninPasswordNotCorrect(t *testing.T) {
expectedStatusCode := http.StatusUnauthorized
expectedMessage := "User ID or password is incorrect"

requestBody := &domain.User{
requestBody := requestBody{
UserID: "testuser",
Password: "testpass_not_correct",
}
Expand All @@ -118,7 +117,7 @@ func TestSigninPasswordNotCorrect(t *testing.T) {
t.Fatal(err)
}

err = verifyExpectedResponse(resp, expectedStatusCode, expectedMessage, nil)
_, err = verifyExpectedResponse(resp, expectedStatusCode, expectedMessage)
if err != nil {
t.Fatal(err)
}
Expand All @@ -128,7 +127,7 @@ func TestSigninSuccess(t *testing.T) {
expectedStatusCode := http.StatusCreated
expectedMessage := "Token can be acquired"

requestBody := &domain.User{
requestBody := requestBody{
UserID: "testuser",
Password: "testpass",
}
Expand All @@ -143,25 +142,7 @@ func TestSigninSuccess(t *testing.T) {
t.Fatal(err)
}

var response struct {
Message string `json:"message"`
TokenString string `json:"token"`
}

if resp.StatusCode != expectedStatusCode {
t.Fatalf("Expected status code %v, got %v", expectedStatusCode, resp.StatusCode)
}

responseData, _ := ioutil.ReadAll(resp.Body)

err = json.Unmarshal(responseData, &response)
if err != nil {
t.Fatal(err)
}

if response.Message != expectedMessage {
t.Fatalf("Expected message %v, got %v", expectedMessage, response.Message)
}
response, err := verifyExpectedResponse(resp, expectedStatusCode, expectedMessage)

if response.TokenString == "" {
t.Fatal("Token is empty")
Expand All @@ -179,7 +160,7 @@ func TestSignoutBodyNotExist(t *testing.T) {
t.Fatal(err)
}

err = verifyExpectedResponse(resp, expectedStatusCode, expectedMessage, nil)
_, err = verifyExpectedResponse(resp, expectedStatusCode, expectedMessage)
if err != nil {
t.Fatal(err)
}
Expand All @@ -189,7 +170,7 @@ func TestSignoutTokenNotExist(t *testing.T) {
expectedStatusCode := http.StatusUnauthorized
expectedMessage := "Body is not valid"

requestBody := &domain.Token{}
requestBody := requestBody{}

jsonString, err := json.Marshal(requestBody)
if err != nil {
Expand All @@ -201,7 +182,7 @@ func TestSignoutTokenNotExist(t *testing.T) {
t.Fatal(err)
}

err = verifyExpectedResponse(resp, expectedStatusCode, expectedMessage, nil)
_, err = verifyExpectedResponse(resp, expectedStatusCode, expectedMessage)
if err != nil {
t.Fatal(err)
}
Expand All @@ -211,7 +192,7 @@ func TestSignoutIncorrectToken(t *testing.T) {
expectedStatusCode := http.StatusUnauthorized
expectedMessage := "Failed to authenticate"

requestBody := &domain.Token{
requestBody := requestBody{
TokenString: "incorrect_token",
}
jsonString, err := json.Marshal(requestBody)
Expand All @@ -224,7 +205,7 @@ func TestSignoutIncorrectToken(t *testing.T) {
t.Fatal(err)
}

err = verifyExpectedResponse(resp, expectedStatusCode, expectedMessage, nil)
_, err = verifyExpectedResponse(resp, expectedStatusCode, expectedMessage)
if err != nil {
t.Fatal(err)
}
Expand All @@ -234,7 +215,7 @@ func TestSignoutSuccess(t *testing.T) {
expectedStatusCode := http.StatusOK
expectedMessage := "Token can be deleted"

requestBody := &domain.Token{
requestBody := requestBody{
TokenString: accessToken,
}

Expand All @@ -248,7 +229,7 @@ func TestSignoutSuccess(t *testing.T) {
t.Fatal(err)
}

err = verifyExpectedResponse(resp, expectedStatusCode, expectedMessage, nil)
_, err = verifyExpectedResponse(resp, expectedStatusCode, expectedMessage)
if err != nil {
t.Fatal(err)
}
Expand All @@ -258,7 +239,7 @@ func TestCanDeletedToken(t *testing.T) {
expectedStatusCode := http.StatusUnauthorized
expectedMessage := "Failed to authenticate"

requestBody := &domain.Token{
requestBody := requestBody{
TokenString: accessToken,
}

Expand All @@ -272,14 +253,14 @@ func TestCanDeletedToken(t *testing.T) {
t.Fatal(err)
}

err = verifyExpectedResponse(resp, expectedStatusCode, expectedMessage, nil)
_, err = verifyExpectedResponse(resp, expectedStatusCode, expectedMessage)
if err != nil {
t.Fatal(err)
}
}

func TestGetAccessToken(t *testing.T) {
requestBody := &domain.User{
requestBody := requestBody{
UserID: "testuser",
Password: "testpass",
}
Expand Down
Loading

0 comments on commit a241183

Please sign in to comment.