Search in sources :

Example 6 with Client

use of com.ncedu.fooddelivery.api.v1.entities.Client in project 2021-msk-food-delivery by netcracker-edu.

the class OrderServiceImpl1 method checkOrderDataActuality.

private void checkOrderDataActuality(CreateOrderDTO dto) {
    Double clientCost = dto.getOverallCost();
    Double clientDiscount = dto.getDiscount();
    Double clientHighDemandCoeff = dto.getHighDemandCoeff();
    // checking that client data is still actual
    Double[] repeatedCalculation = countOrderCost(dto.getGeo(), dto.getProductAmountPairs(), dto.getWarehouseId());
    Double countedCost = repeatedCalculation[0];
    Double countedDiscount = repeatedCalculation[1];
    Double countedHighDemandCoeff = repeatedCalculation[2];
    if (!clientCost.equals(countedCost) || !clientHighDemandCoeff.equals(countedHighDemandCoeff) || !clientDiscount.equals(countedDiscount))
        throw new OrderCostChangedEx(countedCost, countedDiscount, countedHighDemandCoeff);
}
Also used : OrderCostChangedEx(com.ncedu.fooddelivery.api.v1.errors.orderRegistration.OrderCostChangedEx)

Example 7 with Client

use of com.ncedu.fooddelivery.api.v1.entities.Client in project 2021-msk-food-delivery by netcracker-edu.

the class UserDetailsServiceImpl method loadUserByUsername.

// TODO: add courier repo for finding user by phoneNumber
@Override
public UserDetails loadUserByUsername(String login) throws UsernameNotFoundException {
    User user = userRepo.findByEmail(login);
    // if user not found by Email try find client/courier by phoneNumber
    if (user == null) {
        Client client = clientRepo.findByPhoneNumber(login);
        if (client == null) {
            throw new NotFoundEx(login);
        }
        user = client.getUser();
    }
    return user;
}
Also used : User(com.ncedu.fooddelivery.api.v1.entities.User) NotFoundEx(com.ncedu.fooddelivery.api.v1.errors.notfound.NotFoundEx) Client(com.ncedu.fooddelivery.api.v1.entities.Client)

Example 8 with Client

use of com.ncedu.fooddelivery.api.v1.entities.Client in project 2021-msk-food-delivery by netcracker-edu.

the class ClientServiceTest method getClientDTOByIdSuccess.

@Test
public void getClientDTOByIdSuccess() {
    Long userId = 1L;
    Client client = ClientUtils.createLeonardHofstadter(userId);
    when(clientRepoMock.findById(userId)).thenReturn(Optional.of(client));
    ClientInfoDTO resultClientDTO = clientService.getClientDTOById(userId);
    ClientInfoDTO perfectClientDTO = ClientUtils.createClientInfoDTO(client);
    verify(clientRepoMock, times(1)).findById(userId);
    assertEquals(perfectClientDTO, resultClientDTO);
}
Also used : ClientInfoDTO(com.ncedu.fooddelivery.api.v1.dto.user.ClientInfoDTO) Client(com.ncedu.fooddelivery.api.v1.entities.Client) Test(org.junit.jupiter.api.Test) SpringBootTest(org.springframework.boot.test.context.SpringBootTest)

Example 9 with Client

use of com.ncedu.fooddelivery.api.v1.entities.Client in project 2021-msk-food-delivery by netcracker-edu.

the class ClientServiceTest method changeClientInfoError.

@Test
public void changeClientInfoError() {
    Long userID = 0L;
    Client client = ClientUtils.createPennyTeller(userID);
    when(clientRepoMock.findById(userID)).thenReturn(Optional.ofNullable(null));
    when(clientRepoMock.save(client)).thenReturn(null);
    UserChangeInfoDTO userChangeInfoDTO = new UserChangeInfoDTO();
    Exception exception = assertThrows(NotFoundEx.class, () -> {
        clientService.changeClientInfo(userID, userChangeInfoDTO);
    });
    String resultMessage = exception.getMessage();
    String perfectMessage = new NotFoundEx(userID.toString()).getMessage();
    verify(clientRepoMock, times(1)).findById(userID);
    verify(clientRepoMock, never()).save(client);
    assertEquals(perfectMessage, resultMessage);
}
Also used : NotFoundEx(com.ncedu.fooddelivery.api.v1.errors.notfound.NotFoundEx) Client(com.ncedu.fooddelivery.api.v1.entities.Client) UserChangeInfoDTO(com.ncedu.fooddelivery.api.v1.dto.user.UserChangeInfoDTO) Test(org.junit.jupiter.api.Test) SpringBootTest(org.springframework.boot.test.context.SpringBootTest)

Example 10 with Client

use of com.ncedu.fooddelivery.api.v1.entities.Client in project 2021-msk-food-delivery by netcracker-edu.

the class ClientServiceTest method getClientByIdSuccess.

@Test
public void getClientByIdSuccess() {
    Long userId = 1L;
    Client client = ClientUtils.createLeonardHofstadter(userId);
    when(clientRepoMock.findById(userId)).thenReturn(Optional.of(client));
    Client resultClient = clientService.getClientById(userId);
    verify(clientRepoMock, times(1)).findById(userId);
    assertEquals(client, resultClient);
}
Also used : Client(com.ncedu.fooddelivery.api.v1.entities.Client) Test(org.junit.jupiter.api.Test) SpringBootTest(org.springframework.boot.test.context.SpringBootTest)

Aggregations

Client (com.ncedu.fooddelivery.api.v1.entities.Client)7 Test (org.junit.jupiter.api.Test)5 SpringBootTest (org.springframework.boot.test.context.SpringBootTest)5 User (com.ncedu.fooddelivery.api.v1.entities.User)4 UserChangeInfoDTO (com.ncedu.fooddelivery.api.v1.dto.user.UserChangeInfoDTO)2 NotFoundEx (com.ncedu.fooddelivery.api.v1.errors.notfound.NotFoundEx)2 com.ncedu.fooddelivery.api.v1.dto.isCreatedDTO (com.ncedu.fooddelivery.api.v1.dto.isCreatedDTO)1 ClientInfoDTO (com.ncedu.fooddelivery.api.v1.dto.user.ClientInfoDTO)1 Warehouse (com.ncedu.fooddelivery.api.v1.entities.Warehouse)1 AlreadyExistsException (com.ncedu.fooddelivery.api.v1.errors.badrequest.AlreadyExistsException)1 OrderCostChangedEx (com.ncedu.fooddelivery.api.v1.errors.orderRegistration.OrderCostChangedEx)1 RegistrationMapper (com.ncedu.fooddelivery.api.v1.mappers.RegistrationMapper)1 Geometry (com.vividsolutions.jts.geom.Geometry)1 Point (com.vividsolutions.jts.geom.Point)1 ArrayList (java.util.ArrayList)1