io.reactivex.Observable#blockingLast ( )源码实例Demo

下面列出了io.reactivex.Observable#blockingLast ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: java   文件: HangmanTest.java
@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);
}
 
源代码2 项目: java   文件: HangmanTest.java
@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();
}
 
源代码6 项目: java   文件: HangmanTest.java
@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);
}
 
源代码7 项目: java   文件: HangmanTest.java
@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);
}
 
源代码8 项目: java   文件: HangmanTest.java
@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();
}