All Downloads are FREE. Search and download functionalities are using the official Maven repository.

uk.camsw.rxjava.test.dsl.source.BaseSource Maven / Gradle / Ivy

The newest version!
package uk.camsw.rxjava.test.dsl.source;

import rx.Observable;
import rx.subjects.PublishSubject;
import rx.subjects.Subject;
import uk.camsw.rxjava.test.dsl.given.IGiven;
import uk.camsw.rxjava.test.dsl.scenario.ExecutionContext;
import uk.camsw.rxjava.test.dsl.when.IWhen;

public class BaseSource implements ISource {

    private final ExecutionContext context;
    private final Subject publisher;


    public BaseSource(ExecutionContext context) {
        this.context = context;
        this.publisher = PublishSubject.create();
    }

    public BaseSource(Subject customSource, ExecutionContext context) {
        this.context = context;
        this.publisher = customSource;
    }

    public WHEN emits(T event) {
        context.addCommand(c -> {
            publisher.onNext(event);
        });
        return context.getWhen();
    }

    public WHEN completes() {
        context.addCommand(c -> publisher.onCompleted());
        return context.getWhen();
    }

    public WHEN errors(Throwable t) {
        context.addCommand(c -> publisher.onError(t));
        return context.getWhen();
    }

    public Observable asObservable() {
        return publisher;
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy