Skip to content

Commit ac1958a

Browse files
mdeinummackapappa
authored andcommitted
Use Mockito as mocking library instead of EasyMock
1 parent 08ad303 commit ac1958a

File tree

6 files changed

+70
-114
lines changed

6 files changed

+70
-114
lines changed

pom.xml

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -150,12 +150,6 @@
150150
<artifactId>spring-boot-starter-test</artifactId>
151151
<scope>test</scope>
152152
</dependency>
153-
<dependency>
154-
<groupId>org.easymock</groupId>
155-
<artifactId>easymock</artifactId>
156-
<version>2.3</version>
157-
<scope>test</scope>
158-
</dependency>
159153
<dependency>
160154
<groupId>org.assertj</groupId>
161155
<artifactId>assertj-core</artifactId>
Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,18 @@
11
package se.citerus.dddsample.application;
22

33
import static org.assertj.core.api.Assertions.assertThat;
4-
import static org.easymock.EasyMock.createMock;
5-
import static org.easymock.EasyMock.expect;
6-
import static org.easymock.EasyMock.isA;
7-
import static org.easymock.EasyMock.replay;
8-
import static org.easymock.EasyMock.verify;
4+
import static org.mockito.Matchers.any;
5+
import static org.mockito.Matchers.isA;
6+
import static org.mockito.Mockito.mock;
7+
import static org.mockito.Mockito.times;
8+
import static org.mockito.Mockito.verify;
9+
import static org.mockito.Mockito.when;
10+
import static se.citerus.dddsample.domain.model.location.SampleLocations.CHICAGO;
11+
import static se.citerus.dddsample.domain.model.location.SampleLocations.STOCKHOLM;
12+
13+
import java.util.Date;
14+
15+
import static org.assertj.core.api.Assertions.assertThat;
916
import static se.citerus.dddsample.domain.model.location.SampleLocations.CHICAGO;
1017
import static se.citerus.dddsample.domain.model.location.SampleLocations.STOCKHOLM;
1118

@@ -14,7 +21,6 @@
1421
import org.junit.After;
1522
import org.junit.Before;
1623
import org.junit.Test;
17-
1824
import se.citerus.dddsample.application.impl.BookingServiceImpl;
1925
import se.citerus.dddsample.domain.model.cargo.Cargo;
2026
import se.citerus.dddsample.domain.model.cargo.CargoRepository;
@@ -32,9 +38,9 @@ public class BookingServiceTest {
3238

3339
@Before
3440
public void setUp() {
35-
cargoRepository = createMock(CargoRepository.class);
36-
locationRepository = createMock(LocationRepository.class);
37-
routingService = createMock(RoutingService.class);
41+
cargoRepository = mock(CargoRepository.class);
42+
locationRepository = mock(LocationRepository.class);
43+
routingService = mock(RoutingService.class);
3844
bookingService = new BookingServiceImpl(cargoRepository, locationRepository, routingService);
3945
}
4046

@@ -44,20 +50,17 @@ public void testRegisterNew() {
4450
UnLocode fromUnlocode = new UnLocode("USCHI");
4551
UnLocode toUnlocode = new UnLocode("SESTO");
4652

47-
expect(cargoRepository.nextTrackingId()).andReturn(expectedTrackingId);
48-
expect(locationRepository.find(fromUnlocode)).andReturn(CHICAGO);
49-
expect(locationRepository.find(toUnlocode)).andReturn(STOCKHOLM);
50-
51-
cargoRepository.store(isA(Cargo.class));
52-
53-
replay(cargoRepository, locationRepository);
53+
when(cargoRepository.nextTrackingId()).thenReturn(expectedTrackingId);
54+
when(locationRepository.find(fromUnlocode)).thenReturn(CHICAGO);
55+
when(locationRepository.find(toUnlocode)).thenReturn(STOCKHOLM);
5456

5557
TrackingId trackingId = bookingService.bookNewCargo(fromUnlocode, toUnlocode, new Date());
5658
assertThat(trackingId).isEqualTo(expectedTrackingId);
5759
}
5860

5961
@After
6062
public void tearDown() {
61-
verify(cargoRepository, locationRepository);
63+
verify(cargoRepository, times(1)).store(isA(Cargo.class));
64+
verify(locationRepository, times(2)).find(any(UnLocode.class));
6265
}
6366
}

src/test/java/se/citerus/dddsample/application/HandlingEventServiceTest.java

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
package se.citerus.dddsample.application;
22

3-
import static org.easymock.EasyMock.createMock;
4-
import static org.easymock.EasyMock.expect;
5-
import static org.easymock.EasyMock.isA;
6-
import static org.easymock.EasyMock.replay;
7-
import static org.easymock.EasyMock.verify;
3+
import static org.mockito.Matchers.isA;
4+
import static org.mockito.Mockito.mock;
5+
import static org.mockito.Mockito.times;
6+
import static org.mockito.Mockito.verify;
7+
import static org.mockito.Mockito.when;
88
import static se.citerus.dddsample.domain.model.location.SampleLocations.HAMBURG;
99
import static se.citerus.dddsample.domain.model.location.SampleLocations.STOCKHOLM;
1010
import static se.citerus.dddsample.domain.model.location.SampleLocations.TOKYO;
@@ -39,30 +39,27 @@ public class HandlingEventServiceTest {
3939

4040
@Before
4141
public void setUp() {
42-
cargoRepository = createMock(CargoRepository.class);
43-
voyageRepository = createMock(VoyageRepository.class);
44-
handlingEventRepository = createMock(HandlingEventRepository.class);
45-
locationRepository = createMock(LocationRepository.class);
46-
applicationEvents = createMock(ApplicationEvents.class);
42+
cargoRepository = mock(CargoRepository.class);
43+
voyageRepository = mock(VoyageRepository.class);
44+
handlingEventRepository = mock(HandlingEventRepository.class);
45+
locationRepository = mock(LocationRepository.class);
46+
applicationEvents = mock(ApplicationEvents.class);
4747

4848
HandlingEventFactory handlingEventFactory = new HandlingEventFactory(cargoRepository, voyageRepository, locationRepository);
4949
service = new HandlingEventServiceImpl(handlingEventRepository, applicationEvents, handlingEventFactory);
5050
}
5151

5252
@After
5353
public void tearDown() {
54-
verify(cargoRepository, voyageRepository, handlingEventRepository, applicationEvents);
54+
verify(handlingEventRepository, times(1)).store(isA(HandlingEvent.class));
55+
verify(applicationEvents, times(1)).cargoWasHandled(isA(HandlingEvent.class));
5556
}
5657

5758
@Test
5859
public void testRegisterEvent() throws Exception {
59-
expect(cargoRepository.find(cargo.trackingId())).andReturn(cargo);
60-
expect(voyageRepository.find(CM001.voyageNumber())).andReturn(CM001);
61-
expect(locationRepository.find(STOCKHOLM.unLocode())).andReturn(STOCKHOLM);
62-
handlingEventRepository.store(isA(HandlingEvent.class));
63-
applicationEvents.cargoWasHandled(isA(HandlingEvent.class));
64-
65-
replay(cargoRepository, voyageRepository, handlingEventRepository, locationRepository, applicationEvents);
60+
when(cargoRepository.find(cargo.trackingId())).thenReturn(cargo);
61+
when(voyageRepository.find(CM001.voyageNumber())).thenReturn(CM001);
62+
when(locationRepository.find(STOCKHOLM.unLocode())).thenReturn(STOCKHOLM);
6663

6764
service.registerHandlingEvent(new Date(), cargo.trackingId(), CM001.voyageNumber(), STOCKHOLM.unLocode(), HandlingEvent.Type.LOAD);
6865
}

src/test/java/se/citerus/dddsample/domain/model/handling/HandlingEventFactoryTest.java

Lines changed: 14 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,8 @@
22

33
import static org.assertj.core.api.Assertions.assertThat;
44
import static org.assertj.core.api.Assertions.fail;
5-
import static org.easymock.EasyMock.createMock;
6-
import static org.easymock.EasyMock.expect;
7-
import static org.easymock.EasyMock.replay;
8-
import static org.easymock.EasyMock.verify;
5+
import static org.mockito.Mockito.mock;
6+
import static org.mockito.Mockito.when;
97
import static se.citerus.dddsample.domain.model.handling.HandlingEvent.Type;
108
import static se.citerus.dddsample.domain.model.location.SampleLocations.HELSINKI;
119
import static se.citerus.dddsample.domain.model.location.SampleLocations.STOCKHOLM;
@@ -14,7 +12,6 @@
1412

1513
import java.util.Date;
1614

17-
import org.junit.After;
1815
import org.junit.Before;
1916
import org.junit.Test;
2017

@@ -32,33 +29,29 @@
3229

3330
public class HandlingEventFactoryTest {
3431

35-
HandlingEventFactory factory;
36-
CargoRepository cargoRepository;
37-
VoyageRepository voyageRepository;
38-
LocationRepository locationRepository;
39-
TrackingId trackingId;
40-
Cargo cargo;
32+
private HandlingEventFactory factory;
33+
private CargoRepository cargoRepository;
34+
private VoyageRepository voyageRepository;
35+
private LocationRepository locationRepository;
36+
private TrackingId trackingId;
37+
private Cargo cargo;
4138

4239
@Before
4340
public void setUp() {
4441

45-
cargoRepository = createMock(CargoRepository.class);
42+
cargoRepository = mock(CargoRepository.class);
4643
voyageRepository = new VoyageRepositoryInMem();
4744
locationRepository = new LocationRepositoryInMem();
4845
factory = new HandlingEventFactory(cargoRepository, voyageRepository, locationRepository);
4946

50-
51-
5247
trackingId = new TrackingId("ABC");
5348
RouteSpecification routeSpecification = new RouteSpecification(TOKYO, HELSINKI, new Date());
5449
cargo = new Cargo(trackingId, routeSpecification);
5550
}
5651

5752
@Test
5853
public void testCreateHandlingEventWithCarrierMovement() throws Exception {
59-
expect(cargoRepository.find(trackingId)).andReturn(cargo);
60-
61-
replay(cargoRepository);
54+
when(cargoRepository.find(trackingId)).thenReturn(cargo);
6255

6356
VoyageNumber voyageNumber = CM001.voyageNumber();
6457
UnLocode unLocode = STOCKHOLM.unLocode();
@@ -76,9 +69,7 @@ public void testCreateHandlingEventWithCarrierMovement() throws Exception {
7669

7770
@Test
7871
public void testCreateHandlingEventWithoutCarrierMovement() throws Exception {
79-
expect(cargoRepository.find(trackingId)).andReturn(cargo);
80-
81-
replay(cargoRepository);
72+
when(cargoRepository.find(trackingId)).thenReturn(cargo);
8273

8374
UnLocode unLocode = STOCKHOLM.unLocode();
8475
HandlingEvent handlingEvent = factory.createHandlingEvent(
@@ -95,9 +86,7 @@ public void testCreateHandlingEventWithoutCarrierMovement() throws Exception {
9586

9687
@Test
9788
public void testCreateHandlingEventUnknownLocation() throws Exception {
98-
expect(cargoRepository.find(trackingId)).andReturn(cargo);
99-
100-
replay(cargoRepository);
89+
when(cargoRepository.find(trackingId)).thenReturn(cargo);
10190

10291
UnLocode invalid = new UnLocode("NOEXT");
10392
try {
@@ -110,9 +99,7 @@ public void testCreateHandlingEventUnknownLocation() throws Exception {
11099

111100
@Test
112101
public void testCreateHandlingEventUnknownCarrierMovement() throws Exception {
113-
expect(cargoRepository.find(trackingId)).andReturn(cargo);
114-
115-
replay(cargoRepository);
102+
when(cargoRepository.find(trackingId)).thenReturn(cargo);
116103

117104
try {
118105
VoyageNumber invalid = new VoyageNumber("XXX");
@@ -125,9 +112,7 @@ public void testCreateHandlingEventUnknownCarrierMovement() throws Exception {
125112

126113
@Test
127114
public void testCreateHandlingEventUnknownTrackingId() throws Exception {
128-
expect(cargoRepository.find(trackingId)).andReturn(null);
129-
130-
replay(cargoRepository);
115+
when(cargoRepository.find(trackingId)).thenReturn(null);
131116

132117
try {
133118
factory.createHandlingEvent(
@@ -137,8 +122,4 @@ public void testCreateHandlingEventUnknownTrackingId() throws Exception {
137122
} catch (UnknownCargoException expected) {}
138123
}
139124

140-
@After
141-
public void tearDown() {
142-
verify(cargoRepository);
143-
}
144125
}
Lines changed: 15 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,28 @@
11
package se.citerus.dddsample.infrastructure.routing;
22

3-
import static org.assertj.core.api.Assertions.assertThat;
4-
import static org.easymock.EasyMock.createMock;
5-
import static org.easymock.EasyMock.expect;
6-
import static org.easymock.EasyMock.isA;
7-
import static org.easymock.EasyMock.replay;
8-
import static org.easymock.EasyMock.verify;
9-
import static se.citerus.dddsample.domain.model.location.SampleLocations.GOTHENBURG;
10-
import static se.citerus.dddsample.domain.model.location.SampleLocations.HELSINKI;
11-
import static se.citerus.dddsample.domain.model.location.SampleLocations.HONGKONG;
12-
import static se.citerus.dddsample.domain.model.location.SampleLocations.STOCKHOLM;
13-
import static se.citerus.dddsample.domain.model.location.SampleLocations.TOKYO;
14-
15-
import java.util.Arrays;
16-
import java.util.Date;
17-
import java.util.List;
18-
19-
import org.junit.Before;
20-
import org.junit.Test;
21-
223
import com.pathfinder.api.GraphTraversalService;
234
import com.pathfinder.internal.GraphDAOStub;
245
import com.pathfinder.internal.GraphTraversalServiceImpl;
25-
26-
import se.citerus.dddsample.domain.model.cargo.Cargo;
27-
import se.citerus.dddsample.domain.model.cargo.Itinerary;
28-
import se.citerus.dddsample.domain.model.cargo.Leg;
29-
import se.citerus.dddsample.domain.model.cargo.RouteSpecification;
30-
import se.citerus.dddsample.domain.model.cargo.TrackingId;
6+
import org.junit.Before;
7+
import org.junit.Test;
8+
import se.citerus.dddsample.domain.model.cargo.*;
319
import se.citerus.dddsample.domain.model.location.Location;
3210
import se.citerus.dddsample.domain.model.location.LocationRepository;
3311
import se.citerus.dddsample.domain.model.voyage.SampleVoyages;
3412
import se.citerus.dddsample.domain.model.voyage.VoyageNumber;
3513
import se.citerus.dddsample.domain.model.voyage.VoyageRepository;
3614
import se.citerus.dddsample.infrastructure.persistence.inmemory.LocationRepositoryInMem;
3715

16+
import java.util.Arrays;
17+
import java.util.Date;
18+
import java.util.List;
19+
20+
import static org.assertj.core.api.Assertions.assertThat;
21+
import static org.mockito.Matchers.isA;
22+
import static org.mockito.Mockito.mock;
23+
import static org.mockito.Mockito.when;
24+
import static se.citerus.dddsample.domain.model.location.SampleLocations.*;
25+
3826
public class ExternalRoutingServiceTest {
3927

4028
private ExternalRoutingService externalRoutingService;
@@ -46,7 +34,7 @@ public void setUp() {
4634
LocationRepository locationRepository = new LocationRepositoryInMem();
4735
externalRoutingService.setLocationRepository(locationRepository);
4836

49-
voyageRepository = createMock(VoyageRepository.class);
37+
voyageRepository = mock(VoyageRepository.class);
5038
externalRoutingService.setVoyageRepository(voyageRepository);
5139

5240
GraphTraversalService graphTraversalService = new GraphTraversalServiceImpl(new GraphDAOStub() {
@@ -67,9 +55,7 @@ public void testCalculatePossibleRoutes() {
6755
RouteSpecification routeSpecification = new RouteSpecification(HONGKONG, HELSINKI, new Date());
6856
Cargo cargo = new Cargo(trackingId, routeSpecification);
6957

70-
expect(voyageRepository.find(isA(VoyageNumber.class))).andStubReturn(SampleVoyages.CM002);
71-
72-
replay(voyageRepository);
58+
when(voyageRepository.find(isA(VoyageNumber.class))).thenReturn(SampleVoyages.CM002);
7359

7460
List<Itinerary> candidates = externalRoutingService.fetchRoutesForSpecification(routeSpecification);
7561
assertThat(candidates).isNotNull();
@@ -91,8 +77,6 @@ public void testCalculatePossibleRoutes() {
9177
assertThat(legs.get(i + 1).loadLocation()).isEqualTo(legs.get(i).unloadLocation());
9278
}
9379
}
94-
95-
verify(voyageRepository);
9680
}
9781

9882
}

src/test/java/se/citerus/dddsample/interfaces/booking/facade/internal/assembler/ItineraryCandidateDTOAssemblerTest.java

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
package se.citerus.dddsample.interfaces.booking.facade.internal.assembler;
22

33
import static org.assertj.core.api.Assertions.assertThat;
4-
import static org.easymock.EasyMock.createMock;
5-
import static org.easymock.EasyMock.expect;
6-
import static org.easymock.EasyMock.replay;
4+
import static org.mockito.Mockito.mock;
5+
import static org.mockito.Mockito.when;
76
import static se.citerus.dddsample.domain.model.location.SampleLocations.CHICAGO;
87
import static se.citerus.dddsample.domain.model.location.SampleLocations.HONGKONG;
98
import static se.citerus.dddsample.domain.model.location.SampleLocations.MELBOURNE;
@@ -68,15 +67,13 @@ public void testFromDTO() {
6867
legs.add(new LegDTO("CM001", "AAAAA", "BBBBB", new Date(), new Date()));
6968
legs.add(new LegDTO("CM001", "BBBBB", "CCCCC", new Date(), new Date()));
7069

71-
final LocationRepository locationRepository = createMock(LocationRepository.class);
72-
expect(locationRepository.find(new UnLocode("AAAAA"))).andReturn(HONGKONG);
73-
expect(locationRepository.find(new UnLocode("BBBBB"))).andReturn(TOKYO).times(2);
74-
expect(locationRepository.find(new UnLocode("CCCCC"))).andReturn(CHICAGO);
70+
final LocationRepository locationRepository = mock(LocationRepository.class);
71+
when(locationRepository.find(new UnLocode("AAAAA"))).thenReturn(HONGKONG);
72+
when(locationRepository.find(new UnLocode("BBBBB"))).thenReturn(TOKYO);
73+
when(locationRepository.find(new UnLocode("CCCCC"))).thenReturn(CHICAGO);
7574

7675
final VoyageRepository voyageRepository = new VoyageRepositoryInMem();
7776

78-
replay(locationRepository);
79-
8077

8178
// Tested call
8279
final Itinerary itinerary = assembler.fromDTO(new RouteCandidateDTO(legs), voyageRepository, locationRepository);

0 commit comments

Comments
 (0)