下面列出了io.reactivex.Observable#blockingLast ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Ignore("Remove to run test")
@Test
public void gameInProgress() {
Observable<Output> result = hangman.play(
Observable.fromArray("secret"),
Observable.fromArray("a", "e", "o", "s"));
Output last = result.blockingLast();
assertEquals("se__e_", last.discovered);
assertEquals(Set.of("e", "s"), last.guess);
assertEquals(Set.of("a", "o"), last.misses);
assertEquals(
Arrays.asList(
Part.HEAD,
Part.BODY),
last.parts);
assertEquals(Status.PLAYING, last.status);
}
@Ignore("Remove to run test")
@Test
public void lostGame() {
Observable<Output> result = hangman.play(
Observable.fromArray("secret"),
Observable.fromArray("a", "b", "c", "d", "e", "f", "g", "h"));
Output last = result.blockingLast();
assertEquals("_ec_e_", last.discovered);
assertEquals(Set.of("a", "b", "d", "f", "g", "h"), last.misses);
assertEquals(Status.LOSS, last.status);
assertEquals(
Arrays.asList(
Part.HEAD,
Part.BODY,
Part.LEFT_ARM,
Part.RIGHT_ARM,
Part.LEFT_LEG,
Part.RIGHT_LEG),
last.parts);
}
@Override
protected Exception getFailure(Observable instance) {
AtomicReference<Exception> reference = new AtomicReference<>();
try {
//noinspection ResultOfMethodCallIgnored
instance.blockingLast();
} catch (Exception e) {
reference.set(e);
}
return reference.get();
}
@SuppressWarnings("unchecked")
@Override
protected String getOne(Observable instance) {
Observable<String> single = instance.cast(String.class);
try {
return single.blockingLast();
} catch (NoSuchElementException e) {
return null;
}
}
@Override
protected Exception getFailure(Observable instance) {
AtomicReference<Exception> reference = new AtomicReference<>();
try {
//noinspection ResultOfMethodCallIgnored
instance.blockingLast();
} catch (Exception e) {
reference.set(e);
}
return reference.get();
}
@Ignore("Remove to run test")
@Test
public void firstGuess() {
Observable<Output> result = hangman.play(
Observable.fromArray("secret"),
Observable.fromArray("e"));
Output last = result.blockingLast();
assertEquals("_e__e_", last.discovered);
assertEquals(Collections.singleton("e"), last.guess);
assertEquals(Collections.emptySet(), last.misses);
assertEquals(Collections.emptyList(), last.parts);
assertEquals(Status.PLAYING, last.status);
}
@Ignore("Remove to run test")
@Test
public void firstMiss() {
Observable<Output> result = hangman.play(
Observable.fromArray("secret"),
Observable.fromArray("a"));
Output last = result.blockingLast();
assertEquals("______", last.discovered);
assertEquals(Collections.emptySet(), last.guess);
assertEquals(Collections.singleton("a"), last.misses);
assertEquals(Collections.singletonList(Part.HEAD), last.parts);
assertEquals(Status.PLAYING, last.status);
}
@Ignore("Remove to run test")
@Test
public void wonGame() {
Observable<Output> result = hangman.play(
Observable.fromArray("secret"),
Observable.fromArray("a", "e", "o", "s", "c", "r", "g", "t"));
Output last = result.blockingLast();
assertEquals("secret", last.discovered);
assertEquals(Set.of("c", "e", "r", "s", "t"), last.guess);
assertEquals(Status.WIN, last.status);
}
@SuppressWarnings("unchecked")
@Override
protected String getOne(Observable instance) {
Observable<String> single = instance.cast(String.class);
return single.blockingLast();
}