#31 loan: update application
This commit is contained in:
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user