Skip to content

Commit

Permalink
Merge pull request #435 from JNU-econovation/be
Browse files Browse the repository at this point in the history
운영 환경에 반영
  • Loading branch information
hwangdaesun committed Jul 24, 2024
2 parents db78698 + 030daa0 commit 5f7425a
Show file tree
Hide file tree
Showing 17 changed files with 127 additions and 76 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package com.gaebaljip.exceed.adapter.in.member;

import com.gaebaljip.exceed.application.port.in.member.EmailConfirmedUseCase;
import com.gaebaljip.exceed.common.ApiResponse;
import com.gaebaljip.exceed.common.ApiResponseGenerator;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequiredArgsConstructor
@RequestMapping("/v1")
@SecurityRequirement(name = "access-token")
@Tag(name = "[회원가입]")
public class EmailConfirmedController {
private final EmailConfirmedUseCase emailConfirmedUseCase;

public ApiResponse<ApiResponse.CustomBody<Void>> emailConfirmed(String email) {
emailConfirmedUseCase.execute(email);
return ApiResponseGenerator.success(HttpStatus.OK);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package com.gaebaljip.exceed.application.port.in.member;

public interface EmailConfirmedUseCase {
void execute(String email);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package com.gaebaljip.exceed.application.service.member;

import com.gaebaljip.exceed.application.domain.member.MemberEntity;
import com.gaebaljip.exceed.application.port.in.member.EmailConfirmedUseCase;
import com.gaebaljip.exceed.application.port.out.member.MemberPort;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

@Service
@RequiredArgsConstructor
public class EmailConfirmedService implements EmailConfirmedUseCase {
private final MemberPort memberPort;
@Override
@Transactional
public void execute(String email) {
MemberEntity member = memberPort.findMemberByEmail(email);
member.updateChecked();
}
}
5 changes: 4 additions & 1 deletion BE/exceed/src/main/resources/application-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,4 +53,7 @@ logging:
hibernate:
type:
descriptor:
sql: info
sql: info
springframework:
test.context.cache: debug

Original file line number Diff line number Diff line change
Expand Up @@ -5,21 +5,16 @@

import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.http.MediaType;
import org.springframework.test.web.servlet.ResultActions;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;

import com.gaebaljip.exceed.adapter.in.auth.request.LoginRequest;
import com.gaebaljip.exceed.application.service.auth.AuthService;
import com.gaebaljip.exceed.common.ControllerTest;
import com.gaebaljip.exceed.common.ValidationMessage;
import com.gaebaljip.exceed.common.dto.LoginResponseDTO;

@WebMvcTest(AuthController.class)
public class AuthControllerTest extends ControllerTest {
@MockBean private AuthService authService;

@Test()
@DisplayName("로그인 실패 - 비밀번호 형식 안 맞을 때")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,21 +5,16 @@

import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.http.MediaType;
import org.springframework.restdocs.mockmvc.RestDocumentationRequestBuilders;
import org.springframework.test.web.servlet.ResultActions;

import com.gaebaljip.exceed.adapter.in.food.request.CreateFoodRequest;
import com.gaebaljip.exceed.application.service.food.CreateFoodService;
import com.gaebaljip.exceed.common.ControllerTest;
import com.gaebaljip.exceed.common.ValidationMessage;
import com.gaebaljip.exceed.common.WithMockUser;

@WebMvcTest(CreateFoodController.class)
public class CreateFoodControllerTest extends ControllerTest {
@MockBean private CreateFoodService createFoodService;

@Test
@DisplayName("음식 추가 : 실패 - 이름이 없는 경우")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,25 +9,17 @@
import java.util.List;

import org.junit.jupiter.api.Test;
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.http.MediaType;
import org.springframework.test.web.servlet.ResultActions;

import com.gaebaljip.exceed.adapter.in.meal.request.EatMealRequest;
import com.gaebaljip.exceed.application.port.in.meal.EatMealUsecase;
import com.gaebaljip.exceed.application.port.in.meal.UploadImageUsecase;
import com.gaebaljip.exceed.common.ControllerTest;
import com.gaebaljip.exceed.common.ValidationMessage;
import com.gaebaljip.exceed.common.WithMockUser;
import com.gaebaljip.exceed.common.dto.EatMealFoodDTO;

@WebMvcTest(EatMealController.class)
class EatMealControllerTest extends ControllerTest {

@MockBean private EatMealUsecase eatMealUsecase;
@MockBean private UploadImageUsecase uploadImageUsecase;

@Test
@WithMockUser
void when_eatMeal_gNotNullAndMultipleNull_expected_returnPresignedUrl() throws Exception {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,38 +7,17 @@

import org.junit.jupiter.api.Test;
import org.mockito.Mockito;
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.http.MediaType;
import org.springframework.test.web.servlet.ResultActions;

import com.gaebaljip.exceed.application.port.in.meal.GetCurrentMealQuery;
import com.gaebaljip.exceed.application.port.in.meal.GetSpecificMealQuery;
import com.gaebaljip.exceed.application.port.in.meal.ValidateBeforeSignUpUsecase;
import com.gaebaljip.exceed.application.port.in.member.GetMaintainMealUsecase;
import com.gaebaljip.exceed.application.port.in.member.GetTargetMealUsecase;
import com.gaebaljip.exceed.application.service.nutritionist.GetAllCalorieAnalysisService;
import com.gaebaljip.exceed.common.ControllerTest;
import com.gaebaljip.exceed.common.WithMockUser;
import com.gaebaljip.exceed.common.dto.CurrentMealDTO;
import com.gaebaljip.exceed.common.dto.MaintainMealDTO;
import com.gaebaljip.exceed.common.dto.TargetMealDTO;

@WebMvcTest(GetMealController.class)
class GetMealControllerTest extends ControllerTest {

@MockBean private GetMaintainMealUsecase getMaintainMealUsecase;

@MockBean private GetTargetMealUsecase getTargetMealUsecase;

@MockBean private GetCurrentMealQuery getCurrentMealQuery;

@MockBean private GetSpecificMealQuery getSpecificMealQuery;

@MockBean private GetAllCalorieAnalysisService getAllCalorieAnalysisService;

@MockBean private ValidateBeforeSignUpUsecase validateDateBeforeSignUpUsecase;

@Test
@WithMockUser
void when_getMeal_expected_success() throws Exception {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,23 +5,17 @@

import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.http.MediaType;
import org.springframework.test.web.servlet.ResultActions;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;

import com.gaebaljip.exceed.adapter.in.member.request.OnBoardingMemberRequest;
import com.gaebaljip.exceed.application.service.member.OnBoardingMemberService;
import com.gaebaljip.exceed.common.ControllerTest;
import com.gaebaljip.exceed.common.ValidationMessage;
import com.gaebaljip.exceed.common.WithMockUser;

@WebMvcTest(OnBoardingController.class)
class OnBoardingControllerTest extends ControllerTest {

@MockBean private OnBoardingMemberService onBoardingMemberService;

@Test
@DisplayName("온보딩 성공")
@WithMockUser
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,20 +6,15 @@

import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.http.MediaType;
import org.springframework.test.web.servlet.ResultActions;

import com.gaebaljip.exceed.adapter.in.member.request.UpdateMemberRequest;
import com.gaebaljip.exceed.application.port.in.member.UpdateMemberUsecase;
import com.gaebaljip.exceed.common.ControllerTest;
import com.gaebaljip.exceed.common.ValidationMessage;
import com.gaebaljip.exceed.common.WithMockUser;

@WebMvcTest(UpdateMemberController.class)
public class UpdateMemberControllerTest extends ControllerTest {
@MockBean private UpdateMemberUsecase updateMemberUsecase;

@Test
@DisplayName("회원 수정 성공")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,26 +10,21 @@
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.http.MediaType;
import org.springframework.test.context.event.ApplicationEvents;
import org.springframework.test.context.event.RecordApplicationEvents;
import org.springframework.test.web.servlet.ResultActions;

import com.gaebaljip.exceed.adapter.in.member.request.UpdateWeightRequest;
import com.gaebaljip.exceed.application.port.in.member.UpdateWeightUsecase;
import com.gaebaljip.exceed.common.ControllerTest;
import com.gaebaljip.exceed.common.WithMockUser;
import com.gaebaljip.exceed.common.event.Events;
import com.gaebaljip.exceed.common.event.UpdateWeightEvent;

@RecordApplicationEvents
@WebMvcTest(UpdateWeightController.class)
public class UpdateWeightControllerTest extends ControllerTest {

@MockBean UpdateWeightUsecase updateWeightUsecase;
@Autowired ApplicationEvents events;
@Autowired ApplicationEventPublisher applicationEventPublisher;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,26 +1,19 @@
package com.gaebaljip.exceed.infrastructure.adapter.in;
package com.gaebaljip.exceed.adapter.in.notify;

import static org.mockito.ArgumentMatchers.any;
import static org.mockito.BDDMockito.given;
import static org.springframework.restdocs.mockmvc.RestDocumentationRequestBuilders.get;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;

import org.junit.jupiter.api.Test;
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.test.web.servlet.ResultActions;
import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;

import com.gaebaljip.exceed.adapter.in.notify.EmitterController;
import com.gaebaljip.exceed.application.port.in.notify.ConnectEmitterUseCase;
import com.gaebaljip.exceed.common.ControllerTest;
import com.gaebaljip.exceed.common.WithMockUser;

@WebMvcTest(EmitterController.class)
public class EmitterControllerTest extends ControllerTest {

@MockBean private ConnectEmitterUseCase connectEmitterUseCase;

@Test
@WithMockUser(memberId = 1L)
void when_connect_expected_success() throws Exception {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,14 @@

import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.http.MediaType;
import org.springframework.test.web.servlet.ResultActions;

import com.gaebaljip.exceed.application.port.in.nutritionist.GetCalorieAnalysisUsecase;
import com.gaebaljip.exceed.common.ControllerTest;
import com.gaebaljip.exceed.common.WithMockUser;

@WebMvcTest(GetAnalysisController.class)
class GetAchieveControllerTest extends ControllerTest {

@MockBean private GetCalorieAnalysisUsecase getAchieveUsecase;

@Test
@DisplayName("분석 조회 성공" + "요청 시 날짜 포맷 확인")
@WithMockUser
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.boot.test.mock.mockito.MockBeans;
import org.springframework.restdocs.RestDocumentationContextProvider;
import org.springframework.restdocs.RestDocumentationExtension;
import org.springframework.test.context.ActiveProfiles;
Expand All @@ -15,15 +18,68 @@
import org.springframework.web.filter.CharacterEncodingFilter;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.gaebaljip.exceed.adapter.in.auth.AuthController;
import com.gaebaljip.exceed.adapter.in.food.CreateFoodController;
import com.gaebaljip.exceed.adapter.in.meal.EatMealController;
import com.gaebaljip.exceed.adapter.in.meal.GetMealController;
import com.gaebaljip.exceed.adapter.in.member.OnBoardingController;
import com.gaebaljip.exceed.adapter.in.member.UpdateMemberController;
import com.gaebaljip.exceed.adapter.in.member.UpdateWeightController;
import com.gaebaljip.exceed.adapter.in.notify.EmitterController;
import com.gaebaljip.exceed.adapter.in.nutritionist.GetAnalysisController;
import com.gaebaljip.exceed.application.port.in.meal.*;
import com.gaebaljip.exceed.application.port.in.member.GetMaintainMealUsecase;
import com.gaebaljip.exceed.application.port.in.member.GetTargetMealUsecase;
import com.gaebaljip.exceed.application.port.in.member.UpdateMemberUsecase;
import com.gaebaljip.exceed.application.port.in.member.UpdateWeightUsecase;
import com.gaebaljip.exceed.application.port.in.notify.ConnectEmitterUseCase;
import com.gaebaljip.exceed.application.port.in.nutritionist.GetCalorieAnalysisUsecase;
import com.gaebaljip.exceed.application.service.auth.AuthService;
import com.gaebaljip.exceed.application.service.food.CreateFoodService;
import com.gaebaljip.exceed.application.service.member.OnBoardingMemberService;
import com.gaebaljip.exceed.application.service.nutritionist.GetAllCalorieAnalysisService;

@ActiveProfiles("test")
@ExtendWith(RestDocumentationExtension.class)
@ExtendWith({RestDocumentationExtension.class})
@WebMvcTest({
AuthController.class,
CreateFoodController.class,
EatMealController.class,
GetMealController.class,
OnBoardingController.class,
UpdateMemberController.class,
UpdateWeightController.class,
GetAnalysisController.class,
EmitterController.class
})
@MockBeans({
@MockBean(AuthService.class),
@MockBean(CreateFoodService.class),
@MockBean(EatMealUsecase.class),
@MockBean(UploadImageUsecase.class),
@MockBean(GetMaintainMealUsecase.class),
@MockBean(GetTargetMealUsecase.class),
@MockBean(GetCurrentMealQuery.class),
@MockBean(GetSpecificMealQuery.class),
@MockBean(GetAllCalorieAnalysisService.class),
@MockBean(ValidateBeforeSignUpUsecase.class),
@MockBean(OnBoardingMemberService.class),
@MockBean(UpdateMemberUsecase.class),
@MockBean(UpdateWeightUsecase.class),
@MockBean(GetCalorieAnalysisUsecase.class),
@MockBean(ConnectEmitterUseCase.class)
})
public abstract class ControllerTest {
@Autowired protected MockMvc mockMvc;

@Autowired protected MockMvc mockMvc;
@Autowired protected ObjectMapper om;

@Autowired private WebApplicationContext webApplicationContext;
@Autowired protected AuthService authService;
@Autowired protected UploadImageUsecase uploadImageUsecase;
@Autowired protected GetMaintainMealUsecase getMaintainMealUsecase;
@Autowired protected GetTargetMealUsecase getTargetMealUsecase;
@Autowired protected GetCurrentMealQuery getCurrentMealQuery;
@Autowired protected ConnectEmitterUseCase connectEmitterUseCase;

@BeforeEach
public void setup(RestDocumentationContextProvider restDocumentation) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
@AutoConfigureMockMvc
@ExtendWith(RestDocumentationExtension.class)
@ExtendWith(DatabaseClearExtension.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, args = "food_data.csv")
@Sql("classpath:db/testData.sql")
public abstract class IntegrationTest extends ContainerTest {

Expand Down
Loading

0 comments on commit 5f7425a

Please sign in to comment.