Skip to content

Commit

Permalink
Merge pull request #1176 from nurkiewicz/patch-2
Browse files Browse the repository at this point in the history
Failing test case when two requests with the same request argument are collapsed
  • Loading branch information
mattrjacobs authored Jul 13, 2016
2 parents c9b1006 + c0cc08d commit 8f96fde
Showing 1 changed file with 35 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -262,6 +262,41 @@ public Observable<String> call()
assertTrue(ObservableCollapserGetWordForNumber.getCmdCount() < noOfRequests);
}

@Test
public void shouldCollapseSameRequests()
{
//given
final HystrixContextScheduler contextAwareScheduler = new HystrixContextScheduler(Schedulers.computation());

//when
TestSubscriber<String> subscriber1 = getWordForNumber(contextAwareScheduler, 0);
TestSubscriber<String> subscriber2 = getWordForNumber(contextAwareScheduler, 0);

//then
subscriberReceived(subscriber1, 0);
subscriberReceived(subscriber2, 0);
}

private TestSubscriber<String> getWordForNumber(HystrixContextScheduler contextAwareScheduler, final int number) {
final TestSubscriber<String> subscriber = new TestSubscriber<String>();
Observable.defer(new Func0<Observable<String>>()
{
@Override
public Observable<String> call()
{
return new ObservableCollapserGetWordForNumber(number).toObservable();
}
}).subscribeOn(contextAwareScheduler).subscribe(subscriber);
return subscriber;
}

private void subscriberReceived(TestSubscriber<String> subscriber, int number) {
subscriber.awaitTerminalEvent(10, TimeUnit.SECONDS);
assertThat(subscriber.getOnErrorEvents().toString(), subscriber.getOnErrorEvents().size(), is(0));
assertThat(subscriber.getOnNextEvents().size(), is(1));
assertThat(subscriber.getOnNextEvents().get(0), equalTo(numberToWord(number)));
}

private String numberToWord(final int number)
{
return ObservableCommandNumbersToWords.dict.get(number);
Expand Down

0 comments on commit 8f96fde

Please sign in to comment.