Browse Source

refactor: TestCode에서 Lazy로딩 테스트를 위한 작업코드추가

pull/9/head
lkd9125(이경도) 7 months ago
parent
commit
636b8ad932
  1. 35
      app/kac-app/src/test/java/kr/co/palnet/kac/flt/laanc/FlightLaancControllerTest.java
  2. 8
      data/flt/src/main/java/kr/co/palnet/kac/data/flt/model/FltPlanBas.java
  3. 4
      data/flt/src/main/java/kr/co/palnet/kac/data/flt/repository/FltPlanBasRepository.java
  4. 7
      data/flt/src/main/java/kr/co/palnet/kac/data/flt/service/FltPlanDomainService.java
  5. 13
      web/api-flight/src/main/java/kr/co/palnet/kac/api/v1/flight/laanc/service/FlightLaancService.java
  6. 4
      web/security/src/main/java/kr/co/palnet/kac/config/security/SecurityConfig.java

35
app/kac-app/src/test/java/kr/co/palnet/kac/flt/laanc/FlightLaancControllerTest.java

@ -1,7 +1,10 @@
package kr.co.palnet.kac.flt.laanc; package kr.co.palnet.kac.flt.laanc;
import kr.co.palnet.kac.BaseTest; import kr.co.palnet.kac.BaseTest;
import kr.co.palnet.kac.api.v1.flight.laanc.model.create.CreateLaancPlanRQ;
import kr.co.palnet.kac.api.v1.flight.laanc.service.FlightLaancService; import kr.co.palnet.kac.api.v1.flight.laanc.service.FlightLaancService;
import kr.co.palnet.kac.config.security.util.SessionHelper;
import kr.co.palnet.kac.util.ObjectMapperUtils;
import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -9,6 +12,9 @@ import org.springframework.http.MediaType;
import org.springframework.restdocs.headers.HeaderDocumentation; import org.springframework.restdocs.headers.HeaderDocumentation;
import org.springframework.restdocs.mockmvc.RestDocumentationRequestBuilders; import org.springframework.restdocs.mockmvc.RestDocumentationRequestBuilders;
import org.springframework.restdocs.payload.JsonFieldType; import org.springframework.restdocs.payload.JsonFieldType;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.UUID; import java.util.UUID;
@ -37,10 +43,10 @@ public class FlightLaancControllerTest extends BaseTest {
@Test @Test
@Transactional @Transactional
public void getLaancAprvDetail() throws Exception{ public void getLaancAprvDetail() throws Exception{
String planSno = "5";
String token = this.getUserToken(); String token = this.getUserToken();
String planSno = this.testCreatePlan().toString();
String confirmKey = UUID.randomUUID().toString(); String confirmKey = UUID.randomUUID().toString();
flightLaancService.testCreateQRCode(confirmKey, this.CREATE_USERNAME); flightLaancService.testCreateQRCode(confirmKey, this.CREATE_USERNAME);
@ -152,6 +158,8 @@ public class FlightLaancControllerTest extends BaseTest {
public void getLaancAprvList() throws Exception{ public void getLaancAprvList() throws Exception{
// TODO::TEST로 만들 비행계획서 필요함 // TODO::TEST로 만들 비행계획서 필요함
String planSno = this.testCreatePlan().toString();
String createStDate = "2024-02-23"; String createStDate = "2024-02-23";
String createEndDate = "2024-02-23"; String createEndDate = "2024-02-23";
@ -607,4 +615,27 @@ public class FlightLaancControllerTest extends BaseTest {
} }
private Long testCreatePlan(){
String jsonRQ = "{\"cstmrSno\": 3,\"fltType\": \"COMMERCIAL\",\"schFltStDt\": \"2024-02-21T11:43:00\",\"schFltEndDt\": \"2024-02-22T15:46:00\",\"fltPurpose\": \"06\",\"serviceType\": \"KAC\",\"areaList\" : [{\"areaType\": \"LINE\",\"fltMethod\": \"02\",\"fltMothoeRm\": \"\",\"bufferZone\": \"100\",\"fltElev\": \"100\",\"coordList\": [{\"lat\": 37.51625845252909,\"lon\": 126.72340194011286},{\"lat\": 37.512215014051776,\"lon\": 126.72058946300956},{\"lat\": 37.51123897883966,\"lon\": 126.72463239884405}]}],\"arcrftList\" : [{\"idntfNum\": \"PA0001\",\"groupNm\": \"\",\"prdctNum\": \"\",\"arcrftTypeCd\": \"11\",\"arcrftModelNm\": \"\",\"prdctCmpnNm\": \"\",\"prdctDate\": \"\",\"arcrftLngth\": 0,\"arcrftWghtCd\": \"8\",\"arcrftHght\": 0,\"arcrftWght\": 0,\"wghtTypeCd\": \"\",\"imageUrl\": \"\",\"takeoffWght\": 0,\"useYn\": \"\",\"cameraYn\": \"\",\"insrncYn\": \"\",\"ownerNm\": \"\"}],\"terms\": []}".trim();
this.getUserToken();
UserDetails userDetails = this.baseUserDetailsService.loadUserByUsername(this.CREATE_USERNAME);
UsernamePasswordAuthenticationToken userToken = new UsernamePasswordAuthenticationToken(
userDetails, null, userDetails.getAuthorities()
);
SecurityContextHolder.getContext().setAuthentication(userToken);
CreateLaancPlanRQ rq;
try{
rq = ObjectMapperUtils.getObjectMapper().readValue(jsonRQ, CreateLaancPlanRQ.class);
flightLaancService.createPlan(rq);
} catch (Exception e){
e.printStackTrace();
}
return flightLaancService.testDescPlanSno();
}
} }

8
data/flt/src/main/java/kr/co/palnet/kac/data/flt/model/FltPlanBas.java

@ -119,16 +119,16 @@ public class FltPlanBas {
@Column(name = "UPDATE_DT", columnDefinition = "datetime", nullable = false) @Column(name = "UPDATE_DT", columnDefinition = "datetime", nullable = false)
private LocalDateTime updateDt; private LocalDateTime updateDt;
@OneToMany(mappedBy = "fltPlanBas", fetch = FetchType.LAZY) @OneToMany(mappedBy = "fltPlanBas", fetch = FetchType.LAZY, cascade = CascadeType.PERSIST)
private List<FltPlanArea> fltPlanAreaList; private List<FltPlanArea> fltPlanAreaList;
@OneToMany(mappedBy = "fltPlanBas", fetch = FetchType.LAZY) @OneToMany(mappedBy = "fltPlanBas", fetch = FetchType.LAZY, cascade = CascadeType.PERSIST)
private List<FltPlanArcrft> fltPlanArcrftList; private List<FltPlanArcrft> fltPlanArcrftList;
@OneToMany(mappedBy = "fltPlanBas", fetch = FetchType.LAZY) @OneToMany(mappedBy = "fltPlanBas", fetch = FetchType.LAZY, cascade = CascadeType.PERSIST)
private List<FltPlanPilot> fltPlanPilotList; private List<FltPlanPilot> fltPlanPilotList;
@OneToMany(mappedBy = "fltPlanBas", fetch = FetchType.LAZY) @OneToMany(mappedBy = "fltPlanBas", fetch = FetchType.LAZY, cascade = CascadeType.PERSIST)
private List<FltPlanCtrCntrlRel> fltPlanCtrCntrlRelList; private List<FltPlanCtrCntrlRel> fltPlanCtrCntrlRelList;
} }

4
data/flt/src/main/java/kr/co/palnet/kac/data/flt/repository/FltPlanBasRepository.java

@ -3,6 +3,10 @@ package kr.co.palnet.kac.data.flt.repository;
import kr.co.palnet.kac.data.flt.model.FltPlanBas; import kr.co.palnet.kac.data.flt.model.FltPlanBas;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import java.util.Optional;
public interface FltPlanBasRepository extends JpaRepository<FltPlanBas, Long> { public interface FltPlanBasRepository extends JpaRepository<FltPlanBas, Long> {
public Optional<FltPlanBas> findTopByOrderByPlanSnoDesc();
} }

7
data/flt/src/main/java/kr/co/palnet/kac/data/flt/service/FltPlanDomainService.java

@ -33,6 +33,13 @@ public class FltPlanDomainService {
return fltPlanQueryRepository.findAllBySearch(memberName, createStDate, createEndDate); return fltPlanQueryRepository.findAllBySearch(memberName, createStDate, createEndDate);
} }
public Long findByOrderByPlanSnoDesc(){
Optional<FltPlanBas> fltPlanBasData = fltPlanBasRepository.findTopByOrderByPlanSnoDesc();
return fltPlanBasData.map(FltPlanBas::getPlanSno).orElse(null);
}
public Optional<List<FltPlanBasJoinAreaModel>> findAllFltPlanBasBySearch(String searchDate){ public Optional<List<FltPlanBasJoinAreaModel>> findAllFltPlanBasBySearch(String searchDate){
return fltPlanQueryRepository.findAllBySearch(searchDate); return fltPlanQueryRepository.findAllBySearch(searchDate);
} }

13
web/api-flight/src/main/java/kr/co/palnet/kac/api/v1/flight/laanc/service/FlightLaancService.java

@ -194,11 +194,12 @@ public class FlightLaancService {
planPilotDto.setUpdateUserId(userId); planPilotDto.setUpdateUserId(userId);
planPilotDto.setUpdateDt(LocalDateTime.now()); planPilotDto.setUpdateDt(LocalDateTime.now());
fltPlanDomainService.saveFltPlanPilot(FltPlanPilotDTO.toEntity(planPilotDto)); fltPlanBas.setFltPlanPilotList(Arrays.asList(FltPlanPilotDTO.toEntity(planPilotDto)));
// 기체정보 INSERT // 기체정보 INSERT
List<BasLaancArcrftModel> basLaancArcrftModelList = rq.getArcrftList(); List<BasLaancArcrftModel> basLaancArcrftModelList = rq.getArcrftList();
List<FltPlanArcrft> fltPlanArcrftList = new ArrayList<>();
if (basLaancArcrftModelList != null && !basLaancArcrftModelList.isEmpty()) { if (basLaancArcrftModelList != null && !basLaancArcrftModelList.isEmpty()) {
for (BasLaancArcrftModel basLaancArcrftModel : basLaancArcrftModelList) { for (BasLaancArcrftModel basLaancArcrftModel : basLaancArcrftModelList) {
FltPlanArcrftDTO arcrftEntityDto = FltPlanArcrftDTO.toDto(basLaancArcrftModel); FltPlanArcrftDTO arcrftEntityDto = FltPlanArcrftDTO.toDto(basLaancArcrftModel);
@ -221,10 +222,12 @@ public class FlightLaancService {
// arcrftEntity.setInsuranceExperiod(null); // 보헌 유효기간 // arcrftEntity.setInsuranceExperiod(null); // 보헌 유효기간
// arcrftEntity.setCorporationNm(null); // 법인명 // arcrftEntity.setCorporationNm(null); // 법인명
fltPlanDomainService.saveFltPlanArcrft(FltPlanArcrftDTO.toEntity(arcrftEntityDto)); fltPlanArcrftList.add(FltPlanArcrftDTO.toEntity(arcrftEntityDto));
} }
} }
fltPlanBas.setFltPlanArcrftList(fltPlanArcrftList);
if (rq.getTerms() != null && !rq.getTerms().isEmpty()) { if (rq.getTerms() != null && !rq.getTerms().isEmpty()) {
for (AnctCstmrTermsModel agree : rq.getTerms()) { for (AnctCstmrTermsModel agree : rq.getTerms()) {
PtyTermsAgreeTxnDTO agreeEntityDto = new PtyTermsAgreeTxnDTO(); PtyTermsAgreeTxnDTO agreeEntityDto = new PtyTermsAgreeTxnDTO();
@ -281,7 +284,7 @@ public class FlightLaancService {
comFileDomainService.saveComFileBas(ComFileBasDTO.toEntity(comFileBasDto)); comFileDomainService.saveComFileBas(ComFileBasDTO.toEntity(comFileBasDto));
fltPlanBas.setFileGroupNo(comFileBasDto.getFileGroupNo()); fltPlanBas.setFileGroupNo(comFileBasDto.getFileGroupNo());
fltPlanDomainService.saveFltPlanBas(fltPlanBas); // fltPlanDomainService.saveFltPlanBas(fltPlanBas);
String downloadUrl = fileUtils.getDownloadUrl(comFileBasDto.getFileSno()); String downloadUrl = fileUtils.getDownloadUrl(comFileBasDto.getFileSno());
@ -641,4 +644,8 @@ public class FlightLaancService {
comConfirmDomainService.saveComConfirmBas(comConfirmBas); comConfirmDomainService.saveComConfirmBas(comConfirmBas);
} }
public Long testDescPlanSno(){
return fltPlanDomainService.findByOrderByPlanSnoDesc();
}
} }

4
web/security/src/main/java/kr/co/palnet/kac/config/security/SecurityConfig.java

@ -53,9 +53,9 @@ public abstract class SecurityConfig {
@Bean @Bean
PasswordEncoder passwordEncoder() { PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder(); // return new BCryptPasswordEncoder();
// TODO 테스트 후 BCryptPasswordEncoder 로 변경 - 회원가입 로직 구현 후 제거 // TODO 테스트 후 BCryptPasswordEncoder 로 변경 - 회원가입 로직 구현 후 제거
// return NoOpPasswordEncoder.getInstance(); return NoOpPasswordEncoder.getInstance();
} }
@Bean @Bean

Loading…
Cancel
Save