Skip to content
This repository was archived by the owner on Oct 23, 2023. It is now read-only.

Commit 316ca57

Browse files
committed
Fix Intermittent failing test - #10
1 parent 7098a97 commit 316ca57

File tree

2 files changed

+30
-23
lines changed

2 files changed

+30
-23
lines changed

src/test/scala/com/weightwatchers/reactive/kinesis/consumer/ConsumerProcessingManagerSpec.scala

Lines changed: 29 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,16 @@ import akka.testkit.TestActor.AutoPilot
2525
import akka.testkit.{ImplicitSender, TestActor, TestDuration, TestKit, TestProbe}
2626
import com.amazonaws.services.kinesis.clientlibrary.interfaces.IRecordProcessorCheckpointer
2727
import com.amazonaws.services.kinesis.clientlibrary.lib.worker.Worker
28-
import com.amazonaws.services.kinesis.clientlibrary.types.{InitializationInput, ProcessRecordsInput, UserRecord}
28+
import com.amazonaws.services.kinesis.clientlibrary.types.{
29+
InitializationInput,
30+
ProcessRecordsInput,
31+
UserRecord
32+
}
2933
import com.amazonaws.services.kinesis.model.Record
30-
import com.weightwatchers.reactive.kinesis.consumer.ConsumerWorker.{ProcessEvents, ProcessingComplete}
34+
import com.weightwatchers.reactive.kinesis.consumer.ConsumerWorker.{
35+
ProcessEvents,
36+
ProcessingComplete
37+
}
3138
import com.weightwatchers.reactive.kinesis.models.{CompoundSequenceNumber, ConsumerEvent}
3239
import org.joda.time.{DateTime, DateTimeZone}
3340
import org.mockito.Mockito
@@ -43,7 +50,7 @@ import scala.concurrent.duration.{DurationDouble, FiniteDuration}
4350
import scala.concurrent.{Await, Future, Promise}
4451

4552
class ConsumerProcessingManagerSpec
46-
extends TestKit(ActorSystem("checkpoint-worker-spec"))
53+
extends TestKit(ActorSystem("checkpoint-worker-spec"))
4754
with ImplicitSender
4855
with FreeSpecLike
4956
with Matchers
@@ -61,10 +68,10 @@ class ConsumerProcessingManagerSpec
6168
Await.result(system.whenTerminated, 5.seconds)
6269
}
6370

64-
"The KinesisRecordProcessingManager" - {
71+
"The ConsumerProcessingManager" - {
6572
"Should set the shardId on init" in {
66-
val worker = TestProbe()
67-
val kcl = mock[Worker]
73+
val worker = TestProbe()
74+
val kcl = mock[Worker]
6875
val shardId = "12345"
6976

7077
val manager = new ConsumerProcessingManager(worker.ref, kcl, batchTimeout)
@@ -84,17 +91,17 @@ class ConsumerProcessingManagerSpec
8491
val worker = TestProbe()
8592
worker.setAutoPilot(workerAutoPilot(workerResponse))
8693

87-
val kcl = mock[Worker]
94+
val kcl = mock[Worker]
8895
val shardId = "12345"
8996

9097
val checkpointer = mock[IRecordProcessorCheckpointer]
9198

92-
val record1 = buildRecord("1", "payload1", new Date())
93-
val record2 = buildRecord("2", "payload2", new Date())
94-
val record3 = buildRecord("3", "payload3", new Date())
95-
val record4 = buildAggregatedRecord("4", 1, "payload3", new Date())
96-
val record5 = buildAggregatedRecord("4", 2, "payload3", new Date())
97-
val record6 = buildAggregatedRecord("4", 3, "payload3", new Date())
99+
val record1 = buildRecord("1", "payload1", new Date())
100+
val record2 = buildRecord("2", "payload2", new Date())
101+
val record3 = buildRecord("3", "payload3", new Date())
102+
val record4 = buildAggregatedRecord("4", 1, "payload3", new Date())
103+
val record5 = buildAggregatedRecord("4", 2, "payload3", new Date())
104+
val record6 = buildAggregatedRecord("4", 3, "payload3", new Date())
98105
val records: Seq[Record] = Seq(record1, record2, record3, record4, record5, record6)
99106

100107
val processInput = new ProcessRecordsInput()
@@ -113,11 +120,11 @@ class ConsumerProcessingManagerSpec
113120
//validate the probe received the Seq of ConsumerEvents
114121
val expectedMsg = ProcessEvents(
115122
ArrayBuffer(toConsumerEvent(record1),
116-
toConsumerEvent(record2),
117-
toConsumerEvent(record3),
118-
toConsumerEvent(record4),
119-
toConsumerEvent(record5),
120-
toConsumerEvent(record6)),
123+
toConsumerEvent(record2),
124+
toConsumerEvent(record3),
125+
toConsumerEvent(record4),
126+
toConsumerEvent(record5),
127+
toConsumerEvent(record6)),
121128
checkpointer,
122129
shardId
123130
)
@@ -144,9 +151,9 @@ class ConsumerProcessingManagerSpec
144151

145152
"When the response is a failed batch it should shutdown and stop processing" in new ProcessingSetup {
146153

147-
workerResponse.success(ProcessingComplete(false)) //complete with a failed batch
148-
149154
whenReady(processResult) { _ =>
155+
workerResponse.success(ProcessingComplete(false)) //complete with a failed batch
156+
150157
processResult.isCompleted should be(true)
151158

152159
manager.shuttingDown.get() should be(true)
@@ -181,10 +188,10 @@ class ConsumerProcessingManagerSpec
181188
//use a promise to block the response
182189
val worker = TestProbe()
183190

184-
val kcl = mock[Worker]
191+
val kcl = mock[Worker]
185192
val shardId = "12345"
186193

187-
val checkpointer = mock[IRecordProcessorCheckpointer]
194+
val checkpointer = mock[IRecordProcessorCheckpointer]
188195
val records: Seq[Record] = Seq(buildRecord("1", "payload1", new Date()))
189196
val processInput = new ProcessRecordsInput()
190197
.withCheckpointer(checkpointer)

src/test/scala/com/weightwatchers/reactive/kinesis/consumer/KinesisConsumerSpec.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,7 @@ class KinesisConsumerSpec
252252
}
253253

254254
Given("A Worker which throws an Exception")
255-
val exception = new RuntimeException()
255+
val exception = new RuntimeException("TEST")
256256
Mockito.when(worker.run()).thenThrow(exception)
257257

258258
When("We start the Consumer")

0 commit comments

Comments
 (0)