BookingServiceTest.java 2.5KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. package se.citerus.dddsample.application;
  2. import static org.assertj.core.api.Assertions.assertThat;
  3. import static org.mockito.Matchers.any;
  4. import static org.mockito.Matchers.isA;
  5. import static org.mockito.Mockito.mock;
  6. import static org.mockito.Mockito.times;
  7. import static org.mockito.Mockito.verify;
  8. import static org.mockito.Mockito.when;
  9. import static se.citerus.dddsample.domain.model.location.SampleLocations.CHICAGO;
  10. import static se.citerus.dddsample.domain.model.location.SampleLocations.STOCKHOLM;
  11. import java.util.Date;
  12. import static org.assertj.core.api.Assertions.assertThat;
  13. import static se.citerus.dddsample.domain.model.location.SampleLocations.CHICAGO;
  14. import static se.citerus.dddsample.domain.model.location.SampleLocations.STOCKHOLM;
  15. import java.util.Date;
  16. import org.junit.After;
  17. import org.junit.Before;
  18. import org.junit.Test;
  19. import se.citerus.dddsample.application.impl.BookingServiceImpl;
  20. import se.citerus.dddsample.domain.model.cargo.Cargo;
  21. import se.citerus.dddsample.domain.model.cargo.CargoRepository;
  22. import se.citerus.dddsample.domain.model.cargo.TrackingId;
  23. import se.citerus.dddsample.domain.model.location.LocationRepository;
  24. import se.citerus.dddsample.domain.model.location.UnLocode;
  25. import se.citerus.dddsample.domain.service.RoutingService;
  26. public class BookingServiceTest {
  27. BookingServiceImpl bookingService;
  28. CargoRepository cargoRepository;
  29. LocationRepository locationRepository;
  30. RoutingService routingService;
  31. @Before
  32. public void setUp() {
  33. cargoRepository = mock(CargoRepository.class);
  34. locationRepository = mock(LocationRepository.class);
  35. routingService = mock(RoutingService.class);
  36. bookingService = new BookingServiceImpl(cargoRepository, locationRepository, routingService);
  37. }
  38. @Test
  39. public void testRegisterNew() {
  40. TrackingId expectedTrackingId = new TrackingId("TRK1");
  41. UnLocode fromUnlocode = new UnLocode("USCHI");
  42. UnLocode toUnlocode = new UnLocode("SESTO");
  43. when(cargoRepository.nextTrackingId()).thenReturn(expectedTrackingId);
  44. when(locationRepository.find(fromUnlocode)).thenReturn(CHICAGO);
  45. when(locationRepository.find(toUnlocode)).thenReturn(STOCKHOLM);
  46. TrackingId trackingId = bookingService.bookNewCargo(fromUnlocode, toUnlocode, new Date());
  47. assertThat(trackingId).isEqualTo(expectedTrackingId);
  48. }
  49. @After
  50. public void tearDown() {
  51. verify(cargoRepository, times(1)).store(isA(Cargo.class));
  52. verify(locationRepository, times(2)).find(any(UnLocode.class));
  53. }
  54. }