package com.kickstarter.libs.rx.transformers;
import org.junit.Test;
import rx.Observable;
import rx.observers.TestSubscriber;
import rx.subjects.PublishSubject;
public final class CompletedTransformerTest {
@Test
public void testEmitsCompleted() {
final PublishSubject<Integer> source = PublishSubject.create();
final Observable<Void> result = source
.materialize()
.compose(Transformers.completed());
final TestSubscriber<Void> resultTest = new TestSubscriber<>();
result.subscribe(resultTest);
source.onNext(1);
resultTest.assertNoValues();
// Only emit when a completed notification occurs.
source.onCompleted();
resultTest.assertValueCount(1);
}
@Test
public void testErrorDoesNotEmitACompletedNotification() {
final PublishSubject<Integer> source = PublishSubject.create();
final Observable<Void> result = source
.materialize()
.compose(Transformers.completed());
final TestSubscriber<Void> resultTest = new TestSubscriber<>();
result.subscribe(resultTest);
source.onError(new Throwable());
resultTest.assertValueCount(0);
}
}