Skip to content

Commit 2a1a165

Browse files
committed
Make tests reflect recent changes
1 parent 61a3d1c commit 2a1a165

File tree

3 files changed

+28
-14
lines changed

3 files changed

+28
-14
lines changed

src/test/java/com/spotify/reaper/unit/resources/RepairRunResourceTest.java

+5
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@
4242
import static org.junit.Assert.assertNull;
4343
import static org.junit.Assert.assertTrue;
4444
import static org.mockito.Matchers.any;
45+
import static org.mockito.Matchers.anyCollection;
46+
import static org.mockito.Matchers.anyCollectionOf;
4547
import static org.mockito.Matchers.anyString;
4648
import static org.mockito.Mockito.mock;
4749
import static org.mockito.Mockito.when;
@@ -96,6 +98,9 @@ public void setUp() throws Exception {
9698
when(proxy.isConnectionAlive()).thenReturn(Boolean.TRUE);
9799
when(proxy.tokenRangeToEndpoint(anyString(), any(RingRange.class))).thenReturn(
98100
Collections.singletonList(""));
101+
when(proxy.triggerRepair(any(BigInteger.class), any(BigInteger.class), anyString(),
102+
any(RepairParallelism.class), anyCollectionOf(String.class))).thenReturn(1);
103+
99104
context.jmxConnectionFactory = new JmxConnectionFactory() {
100105
@Override
101106
public JmxProxy connect(Optional<RepairStatusHandler> handler, String host)

src/test/java/com/spotify/reaper/unit/service/RepairRunnerTest.java

+18-9
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
import java.math.BigInteger;
4646
import java.util.Collections;
4747
import java.util.Set;
48+
import java.util.concurrent.Semaphore;
4849
import java.util.concurrent.TimeUnit;
4950
import java.util.concurrent.atomic.AtomicInteger;
5051

@@ -53,6 +54,7 @@
5354
import static org.junit.Assert.fail;
5455
import static org.mockito.Matchers.any;
5556
import static org.mockito.Matchers.anyString;
57+
import static org.mockito.Mockito.doNothing;
5658
import static org.mockito.Mockito.mock;
5759
import static org.mockito.Mockito.when;
5860

@@ -135,8 +137,10 @@ public void testHangingRepair() throws ReaperException, InterruptedException {
135137
context.repairManager = new RepairManager();
136138
context.repairManager.initializeThreadPool(1, 500, TimeUnit.MILLISECONDS, 1, TimeUnit.MILLISECONDS);
137139

140+
final Semaphore mutex = new Semaphore(0);
141+
138142
context.jmxConnectionFactory = new JmxConnectionFactory() {
139-
final AtomicInteger repairAttempts = new AtomicInteger(0);
143+
final AtomicInteger repairAttempts = new AtomicInteger(1);
140144

141145
@Override
142146
public JmxProxy connect(final Optional<RepairStatusHandler> handler, String host)
@@ -146,9 +150,10 @@ public JmxProxy connect(final Optional<RepairStatusHandler> handler, String host
146150
when(jmx.isConnectionAlive()).thenReturn(true);
147151
when(jmx.tokenRangeToEndpoint(anyString(), any(RingRange.class)))
148152
.thenReturn(Lists.newArrayList(""));
153+
//doNothing().when(jmx).cancelAllRepairs();
149154
when(jmx.triggerRepair(any(BigInteger.class), any(BigInteger.class), anyString(),
150-
Matchers.<RepairParallelism>any(),
151-
Sets.newHashSet(anyString()))).then(
155+
Matchers.<RepairParallelism>any(),
156+
Sets.newHashSet(anyString()))).then(
152157
new Answer<Integer>() {
153158
@Override
154159
public Integer answer(InvocationOnMock invocation) throws Throwable {
@@ -157,7 +162,7 @@ public Integer answer(InvocationOnMock invocation) throws Throwable {
157162

158163
final int repairNumber = repairAttempts.getAndIncrement();
159164
switch (repairNumber) {
160-
case 0:
165+
case 1:
161166
new Thread() {
162167
@Override
163168
public void run() {
@@ -168,20 +173,22 @@ public void run() {
168173
}
169174
}.start();
170175
break;
171-
case 1:
176+
case 2:
172177
new Thread() {
173178
@Override
174179
public void run() {
175180
handler.get()
176181
.handle(repairNumber, ActiveRepairService.Status.STARTED, null);
177182
assertEquals(RepairSegment.State.RUNNING,
178-
storage.getRepairSegment(SEGMENT_ID).get().getState());
183+
storage.getRepairSegment(SEGMENT_ID).get().getState());
179184
handler.get()
180185
.handle(repairNumber, ActiveRepairService.Status.SESSION_SUCCESS, null);
181-
assertEquals(RepairSegment.State.RUNNING,
182-
storage.getRepairSegment(SEGMENT_ID).get().getState());
186+
assertEquals(RepairSegment.State.DONE,
187+
storage.getRepairSegment(SEGMENT_ID).get().getState());
183188
handler.get()
184189
.handle(repairNumber, ActiveRepairService.Status.FINISHED, null);
190+
mutex.release();
191+
System.out.println("MUTEX RELEASED");
185192
}
186193
}.start();
187194
break;
@@ -198,7 +205,9 @@ public void run() {
198205

199206
// TODO: refactor so that we can properly wait for the repair runner to finish rather than
200207
// TODO: using this sleep().
201-
Thread.sleep(600);
208+
mutex.acquire();
209+
System.out.println("MUTEX ACQUIRED");
210+
Thread.sleep(100);
202211
assertEquals(RepairRun.RunState.DONE, storage.getRepairRun(RUN_ID).get().getRunState());
203212
}
204213

src/test/java/com/spotify/reaper/unit/service/SegmentRunnerTest.java

+5-5
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ public void run() {
166166
"Repair command 2 has failed");
167167
handler.get().handle(1, ActiveRepairService.Status.SESSION_SUCCESS,
168168
"Repair session succeeded in command 1");
169-
assertEquals(RepairSegment.State.RUNNING,
169+
assertEquals(RepairSegment.State.DONE,
170170
storage.getRepairSegment(segmentId).get().getState());
171171
handler.get().handle(1, ActiveRepairService.Status.FINISHED,
172172
"Repair command 1 has finished");
@@ -232,14 +232,14 @@ public void run() {
232232
"Repair command 1 has started");
233233
assertEquals(RepairSegment.State.RUNNING,
234234
storage.getRepairSegment(segmentId).get().getState());
235-
handler.get().handle(1, ActiveRepairService.Status.SESSION_SUCCESS,
236-
"Repair session succeeded in command 1");
237-
assertEquals(RepairSegment.State.RUNNING,
238-
storage.getRepairSegment(segmentId).get().getState());
239235
handler.get().handle(1, ActiveRepairService.Status.SESSION_FAILED,
240236
"Repair command 1 has failed");
241237
assertEquals(RepairSegment.State.NOT_STARTED,
242238
storage.getRepairSegment(segmentId).get().getState());
239+
handler.get().handle(1, ActiveRepairService.Status.FINISHED,
240+
"Repair command 1 has finished");
241+
assertEquals(RepairSegment.State.NOT_STARTED,
242+
storage.getRepairSegment(segmentId).get().getState());
243243
}
244244
}));
245245

0 commit comments

Comments
 (0)