Skip to content

Commit dbf0d4b

Browse files
committed
Change tests to use Mockito (instead of EasyMock).
1 parent 0502fec commit dbf0d4b

2 files changed

Lines changed: 169 additions & 178 deletions

File tree

Lines changed: 154 additions & 165 deletions
Original file line numberDiff line numberDiff line change
@@ -1,165 +1,154 @@
1-
package pl.edu.agh.iisg.timeline.editpart.dynamic;
2-
3-
import static org.junit.Assert.assertFalse;
4-
import static org.junit.Assert.assertTrue;
5-
6-
import java.util.Arrays;
7-
import java.util.Collection;
8-
9-
import org.easymock.EasyMock;
10-
import org.junit.Before;
11-
import org.junit.Test;
12-
13-
import pl.edu.agh.iisg.timeline.editpart.dynamic.DynamicModelRefresher;
14-
import pl.edu.agh.iisg.timeline.editpart.dynamic.IRangeControl;
15-
import pl.edu.agh.iisg.timeline.editpart.dynamic.ModelRefresh;
16-
import pl.edu.agh.iisg.timeline.model.AxisElement;
17-
import pl.edu.agh.iisg.timeline.model.Separator;
18-
import pl.edu.agh.iisg.timeline.positioner.IPositioner;
19-
20-
public class DynamicModelRefresherTest {
21-
22-
private DynamicModelRefresher refresher;
23-
24-
private IPositioner positioner;
25-
26-
private IRangeControl range;
27-
28-
private AxisElement element1 = EasyMock.createMock(AxisElement.class);
29-
private AxisElement element2 = EasyMock.createMock(AxisElement.class);
30-
private AxisElement element3 = EasyMock.createMock(AxisElement.class);
31-
private AxisElement element4 = EasyMock.createMock(AxisElement.class);
32-
33-
private Separator separator1 = EasyMock.createMock(Separator.class);
34-
private Separator separator2 = EasyMock.createMock(Separator.class);
35-
private Separator separator3 = EasyMock.createMock(Separator.class);
36-
private Separator separator4 = EasyMock.createMock(Separator.class);
37-
38-
private Collection<AxisElement> elements1 = Arrays.asList(element1,
39-
element2, element3);
40-
41-
private Collection<Separator> separators1 = Arrays.asList(separator1,
42-
separator2, separator3);
43-
44-
private Collection<AxisElement> elements2 = Arrays.asList(element2,
45-
element3, element4);
46-
private Collection<Separator> separators2 = Arrays.asList(separator1,
47-
separator4);
48-
private Collection<AxisElement> elements2minus1 = Arrays.asList(element4);
49-
private Collection<Separator> separators2minus1 = Arrays.asList(separator4);
50-
private Collection<AxisElement> elements1minus2 = Arrays.asList(element1);
51-
private Collection<Separator> separators1minus2 = Arrays.asList(separator2,
52-
separator3);
53-
54-
@Before
55-
public void setUp() {
56-
positioner = EasyMock.createMock(IPositioner.class);
57-
range = EasyMock.createMock(IRangeControl.class);
58-
refresher = new DynamicModelRefresher(positioner, range);
59-
}
60-
61-
@Test
62-
public void testShouldNotRefresh() {
63-
// given
64-
range.setScrollPosition(EasyMock.anyInt());
65-
EasyMock.expect(range.isChanged()).andReturn(false);
66-
EasyMock.replay(range);
67-
68-
// when
69-
ModelRefresh refresh = refresher.refresh(0);
70-
71-
// then
72-
assertFalse(refresh.shouldRefresh());
73-
assertTrue(refresh.getElementsToAdd().isEmpty());
74-
assertTrue(refresh.getElementsToRemove().isEmpty());
75-
assertTrue(refresh.getSeparatorsToAdd().isEmpty());
76-
assertTrue(refresh.getSeparatorsToRemove().isEmpty());
77-
}
78-
79-
@Test
80-
public void testInitRefresh() {
81-
// given
82-
prepareMocksForInitRefresh();
83-
84-
// when
85-
ModelRefresh refresh = refresher.refresh(0);
86-
87-
// then
88-
assertTrue(refresh.shouldRefresh());
89-
assertTheSameElements(elements1, refresh.getElementsToAdd());
90-
assertTrue(refresh.getElementsToRemove().isEmpty());
91-
assertTheSameElements(separators1, refresh.getSeparatorsToAdd());
92-
assertTrue(refresh.getSeparatorsToRemove().isEmpty());
93-
}
94-
95-
private void assertTheSameElements(Collection<?> elements1,
96-
Collection<?> elements2) {
97-
assertTrue(elements1.containsAll(elements2));
98-
assertTrue(elements2.containsAll(elements1));
99-
100-
}
101-
102-
private void prepareMocksForInitRefresh() {
103-
mockRangeFirstRefresh();
104-
EasyMock.replay(range);
105-
106-
mockPositionerFirstRefresh();
107-
EasyMock.replay(positioner);
108-
}
109-
110-
@Test
111-
public void testChangeRangeRefresh() {
112-
// given
113-
prepareMocksForSecondRefresh();
114-
115-
// when
116-
refresher.refresh(0);
117-
ModelRefresh refresh = refresher.refresh(150);
118-
119-
// then
120-
assertTrue(refresh.shouldRefresh());
121-
assertTheSameElements(elements2minus1, refresh.getElementsToAdd());
122-
assertTheSameElements(elements1minus2, refresh.getElementsToRemove());
123-
assertTheSameElements(separators2minus1, refresh.getSeparatorsToAdd());
124-
assertTheSameElements(separators1minus2,
125-
refresh.getSeparatorsToRemove());
126-
}
127-
128-
private void prepareMocksForSecondRefresh() {
129-
mockRangeFirstRefresh();
130-
mockRangeSecondRefresh();
131-
EasyMock.replay(range);
132-
133-
mockPositionerFirstRefresh();
134-
mockPositionerSecondRefresh();
135-
EasyMock.replay(positioner);
136-
}
137-
138-
private void mockRangeFirstRefresh() {
139-
range.setScrollPosition(0);
140-
EasyMock.expect(range.isChanged()).andReturn(true);
141-
EasyMock.expect(range.getStart()).andReturn(0);
142-
EasyMock.expect(range.getEnd()).andReturn(100);
143-
}
144-
145-
private void mockRangeSecondRefresh() {
146-
range.setScrollPosition(150);
147-
EasyMock.expect(range.isChanged()).andReturn(true);
148-
EasyMock.expect(range.getStart()).andReturn(50);
149-
EasyMock.expect(range.getEnd()).andReturn(250);
150-
}
151-
152-
private void mockPositionerFirstRefresh() {
153-
EasyMock.expect(positioner.getElementsByPosition(0, 100)).andReturn(
154-
elements1);
155-
EasyMock.expect(positioner.getSeparatorsByPosition(0, 100)).andReturn(
156-
separators1);
157-
}
158-
159-
private void mockPositionerSecondRefresh() {
160-
EasyMock.expect(positioner.getElementsByPosition(50, 250)).andReturn(
161-
elements2);
162-
EasyMock.expect(positioner.getSeparatorsByPosition(50, 250)).andReturn(
163-
separators2);
164-
}
165-
}
1+
package pl.edu.agh.iisg.timeline.editpart.dynamic;
2+
3+
import static org.junit.Assert.assertFalse;
4+
import static org.junit.Assert.assertTrue;
5+
import static org.mockito.Mockito.mock;
6+
import static org.mockito.Mockito.when;
7+
8+
import java.util.Arrays;
9+
import java.util.Collection;
10+
11+
import org.junit.Before;
12+
import org.junit.Test;
13+
14+
import pl.edu.agh.iisg.timeline.model.AxisElement;
15+
import pl.edu.agh.iisg.timeline.model.Separator;
16+
import pl.edu.agh.iisg.timeline.positioner.IPositioner;
17+
18+
public class DynamicModelRefresherTest {
19+
20+
private DynamicModelRefresher refresher;
21+
22+
private IPositioner positioner;
23+
24+
private IRangeControl range;
25+
26+
private AxisElement element1 = mock(AxisElement.class);
27+
28+
private AxisElement element2 = mock(AxisElement.class);
29+
30+
private AxisElement element3 = mock(AxisElement.class);
31+
32+
private AxisElement element4 = mock(AxisElement.class);
33+
34+
private Separator separator1 = mock(Separator.class);
35+
36+
private Separator separator2 = mock(Separator.class);
37+
38+
private Separator separator3 = mock(Separator.class);
39+
40+
private Separator separator4 = mock(Separator.class);
41+
42+
private Collection<AxisElement> elements1 = Arrays.asList(element1, element2, element3);
43+
44+
private Collection<Separator> separators1 = Arrays.asList(separator1, separator2, separator3);
45+
46+
private Collection<AxisElement> elements2 = Arrays.asList(element2, element3, element4);
47+
48+
private Collection<Separator> separators2 = Arrays.asList(separator1, separator4);
49+
50+
private Collection<AxisElement> elements2minus1 = Arrays.asList(element4);
51+
52+
private Collection<Separator> separators2minus1 = Arrays.asList(separator4);
53+
54+
private Collection<AxisElement> elements1minus2 = Arrays.asList(element1);
55+
56+
private Collection<Separator> separators1minus2 = Arrays.asList(separator2, separator3);
57+
58+
@Before
59+
public void setUp() {
60+
positioner = mock(IPositioner.class);
61+
range = mock(IRangeControl.class);
62+
refresher = new DynamicModelRefresher(positioner, range);
63+
}
64+
65+
@Test
66+
public void testShouldNotRefresh() {
67+
// given
68+
when(range.isChanged()).thenReturn(false);
69+
70+
// when
71+
ModelRefresh refresh = refresher.refresh(0);
72+
73+
// then
74+
assertFalse(refresh.shouldRefresh());
75+
assertTrue(refresh.getElementsToAdd().isEmpty());
76+
assertTrue(refresh.getElementsToRemove().isEmpty());
77+
assertTrue(refresh.getSeparatorsToAdd().isEmpty());
78+
assertTrue(refresh.getSeparatorsToRemove().isEmpty());
79+
}
80+
81+
@Test
82+
public void testInitRefresh() {
83+
// given
84+
prepareMocksForInitRefresh();
85+
86+
// when
87+
ModelRefresh refresh = refresher.refresh(0);
88+
89+
// then
90+
assertTrue(refresh.shouldRefresh());
91+
assertTheSameElements(elements1, refresh.getElementsToAdd());
92+
assertTrue(refresh.getElementsToRemove().isEmpty());
93+
assertTheSameElements(separators1, refresh.getSeparatorsToAdd());
94+
assertTrue(refresh.getSeparatorsToRemove().isEmpty());
95+
}
96+
97+
private void assertTheSameElements(Collection<?> elements1, Collection<?> elements2) {
98+
assertTrue(elements1.containsAll(elements2));
99+
assertTrue(elements2.containsAll(elements1));
100+
101+
}
102+
103+
private void prepareMocksForInitRefresh() {
104+
mockRangeFirstRefresh();
105+
106+
mockPositionerFirstRefresh();
107+
}
108+
109+
@Test
110+
public void testChangeRangeRefresh() {
111+
// given
112+
prepareMocksForTwoRefreshes();
113+
114+
// when
115+
refresher.refresh(0);
116+
ModelRefresh refresh = refresher.refresh(150);
117+
118+
// then
119+
assertTrue(refresh.shouldRefresh());
120+
assertTheSameElements(elements2minus1, refresh.getElementsToAdd());
121+
assertTheSameElements(elements1minus2, refresh.getElementsToRemove());
122+
assertTheSameElements(separators2minus1, refresh.getSeparatorsToAdd());
123+
assertTheSameElements(separators1minus2, refresh.getSeparatorsToRemove());
124+
}
125+
126+
private void prepareMocksForTwoRefreshes() {
127+
mockRangeForTwoRefreshes();
128+
129+
mockPositionerFirstRefresh();
130+
mockPositionerSecondRefresh();
131+
}
132+
133+
private void mockRangeFirstRefresh() {
134+
when(range.isChanged()).thenReturn(true);
135+
when(range.getStart()).thenReturn(0);
136+
when(range.getEnd()).thenReturn(100);
137+
}
138+
139+
private void mockRangeForTwoRefreshes() {
140+
when(range.isChanged()).thenReturn(true, true);
141+
when(range.getStart()).thenReturn(0, 50);
142+
when(range.getEnd()).thenReturn(100, 250);
143+
}
144+
145+
private void mockPositionerFirstRefresh() {
146+
when(positioner.getElementsByPosition(0, 100)).thenReturn(elements1);
147+
when(positioner.getSeparatorsByPosition(0, 100)).thenReturn(separators1);
148+
}
149+
150+
private void mockPositionerSecondRefresh() {
151+
when(positioner.getElementsByPosition(50, 250)).thenReturn(elements2);
152+
when(positioner.getSeparatorsByPosition(50, 250)).thenReturn(separators2);
153+
}
154+
}

pl.edu.agh.iisg.timeline.tests/src/test/java/pl/edu/agh/iisg/timeline/positioner/DiscretePositionerTest.java

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,16 @@
22

33
import static org.junit.Assert.assertEquals;
44
import static org.junit.Assert.assertTrue;
5+
import static org.mockito.Matchers.any;
6+
import static org.mockito.Mockito.mock;
7+
import static org.mockito.Mockito.when;
58

69
import java.util.Arrays;
710

8-
import org.easymock.Capture;
9-
import org.easymock.EasyMock;
10-
import org.easymock.IAnswer;
1111
import org.junit.Test;
12+
import org.mockito.ArgumentCaptor;
13+
import org.mockito.invocation.InvocationOnMock;
14+
import org.mockito.stubbing.Answer;
1215

1316
import pl.edu.agh.iisg.timeline.model.Axis;
1417
import pl.edu.agh.iisg.timeline.model.AxisElement;
@@ -39,22 +42,21 @@ public void testPosition() {
3942
}
4043

4144
private IMeasurer mockMeasurer() {
42-
IMeasurer measurer = EasyMock.createMock(IMeasurer.class);
43-
EasyMock.expect(measurer.getHeightOf(EasyMock.anyObject(AxisElement.class))).andReturn(50).anyTimes();
44-
EasyMock.replay(measurer);
45+
IMeasurer measurer = mock(IMeasurer.class);
46+
when(measurer.getHeightOf(any(AxisElement.class))).thenReturn(50);
4547
return measurer;
4648
}
4749

4850
private ISeparatorFactory mockSeparatorFactory() {
49-
ISeparatorFactory separatorFactory = EasyMock.createMock(ISeparatorFactory.class);
50-
final Capture<Long> capture = new Capture<Long>();
51-
EasyMock.expect(separatorFactory.newSeparator(EasyMock.captureLong(capture))).andAnswer(new IAnswer<Separator>() {
51+
ISeparatorFactory separatorFactory = mock(ISeparatorFactory.class);
52+
final ArgumentCaptor<Long> captor = ArgumentCaptor.forClass(Long.class);
53+
when(separatorFactory.newSeparator(captor.capture())).thenAnswer(new Answer<Separator>() {
54+
5255
@Override
53-
public Separator answer() throws Throwable {
54-
return new Separator(capture.getValue(), AXIS_NUMBER);
56+
public Separator answer(InvocationOnMock invocation) throws Throwable {
57+
return new Separator(captor.getValue(), AXIS_NUMBER);
5558
}
56-
}).anyTimes();
57-
EasyMock.replay(separatorFactory);
59+
});
5860
return separatorFactory;
5961
}
6062
}

0 commit comments

Comments
 (0)