#31 loan: update application

This commit is contained in:
haerong22
2023-01-17 02:59:52 +09:00
parent f969a5e6fa
commit acb28890ca
4 changed files with 47 additions and 0 deletions

View File

@@ -26,4 +26,12 @@ public class ApplicationController extends AbstractController {
) {
return ok(applicationService.get(applicationId));
}
@PutMapping("/{applicationId}")
public ResponseDto<ApplicationDto.Response> update(
@PathVariable Long applicationId,
@RequestBody ApplicationDto.Request request
) {
return ok(applicationService.update(applicationId, request));
}
}

View File

@@ -7,4 +7,6 @@ public interface ApplicationService {
ApplicationDto.Response create(ApplicationDto.Request request);
ApplicationDto.Response get(Long applicationId);
ApplicationDto.Response update(Long applicationId, ApplicationDto.Request request);
}

View File

@@ -35,4 +35,19 @@ public class ApplicationServiceImpl implements ApplicationService {
return modelMapper.map(application, ApplicationDto.Response.class);
}
@Override
public ApplicationDto.Response update(Long applicationId, ApplicationDto.Request request) {
Application application = applicationRepository.findById(applicationId)
.orElseThrow(() -> new BaseException(ResultType.SYSTEM_ERROR));
application.setName(request.getName());
application.setCellPhone(request.getCellPhone());
application.setEmail(request.getEmail());
application.setHopeAmount(request.getHopeAmount());
applicationRepository.save(application);
return modelMapper.map(application, ApplicationDto.Response.class);
}
}

View File

@@ -71,4 +71,26 @@ class ApplicationServiceTest {
assertThat(actual.getApplicationId()).isSameAs(findId);
}
@Test
void Should_ReturnUpdatedResponseOfExistApplicationEntity_When_RequestUpdateExistApplicationInfo() {
Long findId = 1L;
Application entity = Application.builder()
.applicationId(1L)
.hopeAmount(BigDecimal.valueOf(50000000))
.build();
ApplicationDto.Request request = ApplicationDto.Request.builder()
.hopeAmount(BigDecimal.valueOf(40000000))
.build();
when(applicationRepository.save(ArgumentMatchers.any(Application.class))).thenReturn(entity);
when(applicationRepository.findById(findId)).thenReturn(Optional.ofNullable(entity));
ApplicationDto.Response actual = applicationService.update(findId, request);
assertThat(actual.getApplicationId()).isSameAs(findId);
assertThat(actual.getHopeAmount()).isSameAs(request.getHopeAmount());
}
}