use of com.ncedu.fooddelivery.api.v1.entities.Courier 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;
}
use of com.ncedu.fooddelivery.api.v1.entities.Courier in project 2021-msk-food-delivery by netcracker-edu.
the class DeliverySessionServiceTest method getFakeSessionInfoDTOs.
private List<DeliverySessionInfoDTO> getFakeSessionInfoDTOs() {
Courier c = UserUtils.courierHowardWolowitz(100L).getCourier();
CourierInfoDTO targetCourierInfoDTO = new CourierInfoDTO(targetCourier.getId(), Role.COURIER.name(), user.getFullName(), user.getEmail(), user.getLastSigninDate(), user.getAvatarId(), targetCourier.getPhoneNumber(), targetCourier.getRating(), targetCourier.getWarehouse().getId(), targetCourier.getAddress(), targetCourier.getCurrentBalance());
DeliverySessionInfoDTO dto1 = new DeliverySessionInfoDTO(userId, targetCourierInfoDTO, currDateTime, currDateTime.plusHours(1L), 1, "01:00:00", 1000.0F);
dto1.setId(1L);
DeliverySessionInfoDTO dto2 = new DeliverySessionInfoDTO(userId, targetCourierInfoDTO, currDateTime.minusHours(3), currDateTime.minusHours(2), 2, "00:30:00", 2000.0F);
dto2.setId(2L);
DeliverySessionInfoDTO dto3 = new DeliverySessionInfoDTO(userId, targetCourierInfoDTO, currDateTime.minusDays(1), currDateTime.minusDays(1).plusHours(4), 7, "00:34:17", 5000.0F);
dto3.setId(3L);
return new ArrayList<>(Arrays.asList(dto1, dto2, dto3));
}
use of com.ncedu.fooddelivery.api.v1.entities.Courier in project 2021-msk-food-delivery by netcracker-edu.
the class OrderServiceTest method replaceCourierSuccessTest.
@Test
public void replaceCourierSuccessTest() {
User fakeUser = getFakeUserModerator();
Courier fakeCourier = getFakeCourier2();
Order fakeOrder = getFakeOrder();
Mockito.when(courierRepo.getWaitingCourierByWarehouse(1L)).thenReturn(fakeCourier);
orderService.replaceCourier(fakeOrder, fakeUser);
Assertions.assertEquals(fakeOrder.getCourier(), fakeCourier);
Mockito.verify(courierRepo, Mockito.times(1)).getWaitingCourierByWarehouse(1L);
}
use of com.ncedu.fooddelivery.api.v1.entities.Courier in project 2021-msk-food-delivery by netcracker-edu.
the class OrderServiceTest method replaceCourierAccessExTest.
@Test
public void replaceCourierAccessExTest() {
User fakeUser = getFakeUserModerator();
Courier mockCourier = Mockito.mock(Courier.class);
Order fakeOrder = getFakeOrder();
fakeOrder.setWarehouse(getFakeWarehouse2());
Assertions.assertThrows(CustomAccessDeniedException.class, new Executable() {
@Override
public void execute() throws Throwable {
orderService.replaceCourier(fakeOrder, fakeUser);
}
});
}
use of com.ncedu.fooddelivery.api.v1.entities.Courier in project 2021-msk-food-delivery by netcracker-edu.
the class CourierServiceImpl1 method findFreeCourier.
@Override
public Courier findFreeCourier(Long warehouseId) {
Courier courier = new Courier();
int i = 0;
try {
for (; i < 15; i++) {
courier = courierRepo.getWaitingCourierByWarehouse(warehouseId);
if (courier != null)
break;
Thread.sleep(2000);
}
} catch (InterruptedException ex) {
}
if (i == 15)
throw new CourierAvailabilityEx();
return courier;
}
Aggregations