Skip to content

Commit

Permalink
[UBS Address] Fixed edit district (#1218)
Browse files Browse the repository at this point in the history
* Setted disctrict which come from dto

* Formatted

* Added tests to cover

* Removed import *
  • Loading branch information
ospodaryk authored Aug 18, 2023
1 parent 54f14e6 commit f4abcaf
Show file tree
Hide file tree
Showing 3 changed files with 104 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -582,6 +582,10 @@ public OrderWithAddressesResponseDto saveCurrentAddressForOrder(CreateAddressReq
address.setUser(currentUser);
address.setActual(addresses.isEmpty());
address.setAddressStatus(AddressStatus.NEW);

address.setDistrict(addressRequestDto.getDistrict());
address.setDistrictEn(addressRequestDto.getDistrictEn());

addressRepo.save(address);

return findAllAddressesForCurrentOrder(uuid);
Expand Down Expand Up @@ -620,6 +624,10 @@ public OrderWithAddressesResponseDto updateCurrentAddressForOrder(OrderAddressDt
newAddress.setUser(address.getUser());
newAddress.setAddressStatus(address.getAddressStatus());
newAddress.setActual(address.getActual());

newAddress.setDistrict(addressRequestDto.getDistrict());
newAddress.setDistrictEn(addressRequestDto.getDistrictEn());

addressRepo.save(newAddress);

return findAllAddressesForCurrentOrder(uuid);
Expand All @@ -635,6 +643,7 @@ private void saveAddressWithoutPlaceId(List<Address> addresses, CreateAddressReq
address.setUser(currentUser);
address.setActual(addresses.isEmpty());
address.setAddressStatus(AddressStatus.NEW);

addressRepo.save(address);
}

Expand Down
39 changes: 31 additions & 8 deletions service/src/test/java/greencity/ModelUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -4591,8 +4591,21 @@ public static CreateAddressRequestDto getAddressRequestToSaveDto() {
return CreateAddressRequestDto.builder()
.addressComment("fdsfs2")
.searchAddress("fake street name2, 132, fake street2, 020002")
.district("fdsfds2")
.districtEn("dsadsad2")
.district("Район")
.districtEn("District")
.region("regdsad2")
.regionEn("regdsaden2")
.houseNumber("12")
.houseCorpus("22")
.entranceNumber("32")
.placeId("place_id")
.build();
}

public static CreateAddressRequestDto getAddressRequestToSaveDto_WithoutDistricts() {
return CreateAddressRequestDto.builder()
.addressComment("fdsfs2")
.searchAddress("fake street name2, 132, fake street2, 020002")
.region("regdsad2")
.regionEn("regdsaden2")
.houseNumber("12")
Expand Down Expand Up @@ -4676,15 +4689,15 @@ public static OrderAddressDtoRequest getTestOrderAddressDtoRequest() {
.region("fake region")
.searchAddress("fake street name, 13, fake street, 02000")
.city("fake street")
.district("fake district")
.district("Район")
.districtEn("District")
.entranceNumber("1")
.houseNumber("13")
.houseCorpus("1")
.street("fake street name")
.streetEn("fake street name")
.coordinates(new Coordinates(50.5555555d, 50.5555555d))
.cityEn("fake street")
.districtEn("fake district")
.regionEn("fake region")
.placeId("place_id")
.build();
Expand Down Expand Up @@ -4720,9 +4733,18 @@ public static User getUserForCreate() {
public static User getUserForCreate(AddressStatus addressStatus) {
return User.builder()
.id(1L)
.addresses(List.of(Address.builder().id(7L).city("fake street").cityEn("fake street")
.district("fake district").districtEn("fake district").region("fake region").regionEn("fake region")
.street("fake street name").streetEn("fake street name").houseNumber("13").addressStatus(addressStatus)
.addresses(List.of(Address.builder()
.id(7L)
.city("fake street")
.cityEn("fake street")
.district("Район")
.districtEn("District")
.region("fake region")
.regionEn("fake region")
.street("fake street name")
.streetEn("fake street name")
.houseNumber("13")
.addressStatus(addressStatus)
.coordinates(new Coordinates(50.5555555, 50.5555555)).build()))
.recipientEmail("[email protected]")
.recipientPhone("962473289")
Expand All @@ -4741,7 +4763,8 @@ public static OrderWithAddressesResponseDto getAddressDtoResponse() {
AddressDto.builder()
.id(1L)
.city("City")
.district("Distinct")
.district("Район")
.districtEn("District")
.entranceNumber("7a")
.houseCorpus("2")
.houseNumber("25")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -149,6 +149,7 @@
import static greencity.ModelUtils.getCancellationDto;
import static greencity.ModelUtils.getCertificate;
import static greencity.ModelUtils.getCourier;
import static greencity.ModelUtils.getAddressRequestToSaveDto_WithoutDistricts;
import static greencity.ModelUtils.getCourierDto;
import static greencity.ModelUtils.getCourierDtoList;
import static greencity.ModelUtils.getEmployee;
Expand Down Expand Up @@ -203,6 +204,7 @@
import static greencity.ModelUtils.getUserWithBotNotifyTrue;
import static greencity.ModelUtils.getUserWithLastLocation;
import static greencity.ModelUtils.getViberBotNotifyTrue;

import static greencity.constant.ErrorMessage.ACTUAL_ADDRESS_NOT_FOUND;
import static greencity.constant.ErrorMessage.ADDRESS_ALREADY_EXISTS;
import static greencity.constant.ErrorMessage.CANNOT_ACCESS_PERSONAL_INFO;
Expand Down Expand Up @@ -1980,12 +1982,65 @@ void testSaveCurrentAddressForOrder() {
when(modelMapper.map(any(), eq(CreateAddressRequestDto.class))).thenReturn(createAddressRequestDto);
when(modelMapper.map(any(), eq(OrderAddressDtoRequest.class))).thenReturn(TEST_ORDER_ADDRESS_DTO_REQUEST);
when(modelMapper.map(any(), eq(Address.class))).thenReturn(addressToSave);
when(modelMapper.map(addresses.get(0), AddressDto.class)).thenReturn(addressDto());
var addressDto = addressDto();
addressDto.setDistrict("Район");
addressDto.setDistrictEn("District");
when(modelMapper.map(addresses.get(0), AddressDto.class)).thenReturn(addressDto);

OrderWithAddressesResponseDto actualWithSearchAddress =
ubsService.saveCurrentAddressForOrder(createAddressRequestToSaveDto, uuid);

assertEquals(getAddressDtoResponse(), actualWithSearchAddress);
assertEquals(createAddressRequestToSaveDto.getDistrict(),
actualWithSearchAddress.getAddressList().get(0).getDistrict());
assertEquals(createAddressRequestToSaveDto.getDistrictEn(),
actualWithSearchAddress.getAddressList().get(0).getDistrictEn());

verify(addressRepository).save(addressToSave);

verify(userRepository, times(2)).findByUuid(user.getUuid());
verify(addressRepository, times(2)).findAllNonDeletedAddressesByUserId(user.getId());
verify(googleApiService, times(2)).getResultFromGeoCode(eq(dtoRequest.getPlaceId()), anyInt());

verify(modelMapper).map(any(), eq(CreateAddressRequestDto.class));
verify(modelMapper, times(2)).map(any(), eq(OrderAddressDtoRequest.class));
verify(modelMapper).map(any(), eq(Address.class));
verify(modelMapper).map(addresses.get(0), AddressDto.class);
}

@Test
void testSaveCurrentAddressForOrder_WithoutDistricts() {
User user = getUserForCreate();
List<Address> addresses = user.getAddresses();
addresses.get(0).setActual(false);
addresses.get(0).setAddressStatus(AddressStatus.NEW);

String uuid = user.getUuid();
OrderAddressDtoRequest dtoRequest = getTestOrderAddressLocationDto();
CreateAddressRequestDto createAddressRequestDto = getAddressRequestDto();
CreateAddressRequestDto createAddressRequestToSaveDto = getAddressRequestToSaveDto_WithoutDistricts();
Address addressToSave = new Address();
when(userRepository.findByUuid(user.getUuid())).thenReturn(user);
when(addressRepository.findAllNonDeletedAddressesByUserId(user.getId())).thenReturn(addresses);
when(googleApiService.getResultFromGeoCode(eq(dtoRequest.getPlaceId()), anyInt()))
.thenReturn(getGeocodingResult().get(0));

when(modelMapper.map(any(), eq(CreateAddressRequestDto.class))).thenReturn(createAddressRequestDto);
when(modelMapper.map(any(), eq(OrderAddressDtoRequest.class))).thenReturn(TEST_ORDER_ADDRESS_DTO_REQUEST);
when(modelMapper.map(any(), eq(Address.class))).thenReturn(addressToSave);
var addressDto = addressDto();
addressDto.setDistrict(null);
addressDto.setDistrictEn(null);
when(modelMapper.map(addresses.get(0), AddressDto.class)).thenReturn(addressDto);

OrderWithAddressesResponseDto actualWithSearchAddress =
ubsService.saveCurrentAddressForOrder(createAddressRequestToSaveDto, uuid);

assertEquals(createAddressRequestToSaveDto.getDistrict(),
actualWithSearchAddress.getAddressList().get(0).getDistrict());
assertEquals(createAddressRequestToSaveDto.getDistrictEn(),
actualWithSearchAddress.getAddressList().get(0).getDistrictEn());

verify(addressRepository).save(addressToSave);

verify(userRepository, times(2)).findByUuid(user.getUuid());
Expand Down Expand Up @@ -2188,16 +2243,23 @@ void testUpdateCurrentAddressForOrder() {
eq(Address.class))).thenReturn(addresses.get(0));

when(addressRepository.save(addresses.get(0))).thenReturn(addresses.get(0));
var addressDto = addressDto();
addressDto.setDistrict("Район");
addressDto.setDistrictEn("District");
when(modelMapper.map(addresses.get(0),
AddressDto.class))
.thenReturn(addressDto());
.thenReturn(addressDto);

OrderWithAddressesResponseDto actualWithSearchAddress =
ubsService.updateCurrentAddressForOrder(updateAddressRequestDto, uuid);

Assertions.assertNotNull(updateAddressRequestDto.getSearchAddress());
Assertions.assertNull(dtoRequest.getSearchAddress());
assertEquals(getAddressDtoResponse(), actualWithSearchAddress);
assertEquals(updateAddressRequestDto.getDistrict(),
actualWithSearchAddress.getAddressList().get(0).getDistrict());
assertEquals(updateAddressRequestDto.getDistrictEn(),
actualWithSearchAddress.getAddressList().get(0).getDistrictEn());

verify(googleApiService, times(2)).getResultFromGeoCode(eq(updateAddressRequestDto.getPlaceId()),
anyInt());
Expand Down

0 comments on commit f4abcaf

Please sign in to comment.