Skip to content

Instantly share code, notes, and snippets.

@dlhartveld
Created February 28, 2013 15:16
Show Gist options
  • Save dlhartveld/5057460 to your computer and use it in GitHub Desktop.
Save dlhartveld/5057460 to your computer and use it in GitHub Desktop.
A few simple test cases for the Observable from https://gist.github.com/dlhartveld/5057313. Uses JUnit and Mockito.
package com.hartveld.examples;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
import java.util.function.Consumer;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
@RunWith(MockitoJUnitRunner.class)
public class ObservableTest {
@Mock
private Consumer<String> strTarget;
@Mock
private Consumer<Integer> intTarget;
@Test
public void testSubscribe() {
Observable<String> strings = onNext -> {
onNext.accept("Hello");
onNext.accept("World");
};
strings.subscribe(strTarget);
verify(strTarget).accept("Hello");
verify(strTarget).accept("World");
verifyNoMoreInteractions(strTarget);
}
@Test
public void testMap() {
Observable<String> strings = onNext -> {
onNext.accept("Hello");
onNext.accept("World");
};
strings.map(s -> s.substring(0, 2)).subscribe(strTarget);
verify(strTarget).accept("He");
verify(strTarget).accept("Wo");
verifyNoMoreInteractions(strTarget);
}
@Test
public void testFilter() {
Observable<String> strings = onNext -> {
onNext.accept("Hello");
onNext.accept("World");
};
strings.filter(s -> s.startsWith("W")).subscribe(strTarget);
verify(strTarget).accept("World");
verifyNoMoreInteractions(strTarget);
}
@Test
public void testBind() {
Observable<String> strings = onNext -> {
onNext.accept("XYZ");
onNext.accept("X");
};
Observable<Integer> ints = onNext -> {
onNext.accept(1);
onNext.accept(2);
onNext.accept(3);
};
strings.bind(s -> ints.filter(i -> i == s.length())).subscribe(intTarget);
verify(intTarget).accept(1);
verify(intTarget).accept(3);
verifyNoMoreInteractions(intTarget);
}
@Test
public void testFilter2() {
Observable<String> strings = onNext -> {
onNext.accept("Hello");
onNext.accept("World");
};
strings.filter2(s -> s.startsWith("W")).subscribe(strTarget);
verify(strTarget).accept("World");
verifyNoMoreInteractions(strTarget);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment