### Question:
RxGoldfingerImpl implements RxGoldfinger { @Override public Observable<Goldfinger.Result> encrypt( @NonNull final Goldfinger.PromptParams params, @NonNull final String key, @NonNull final String value ) { return Observable.create(new ObservableOnSubscribe<Goldfinger.Result>() { @Override public void subscribe(ObservableEmitter<Goldfinger.Result> observableEmitter) { callback = new RxGoldfingerCallback(observableEmitter); goldfinger.encrypt(params, key, value, callback); } }); } RxGoldfingerImpl(@NonNull Goldfinger goldfinger); @NonNull @Override Observable<Goldfinger.Result> authenticate(@NonNull final Goldfinger.PromptParams params); @Override boolean canAuthenticate(); @Override void cancel(); @Override Observable<Goldfinger.Result> decrypt(
        @NonNull final Goldfinger.PromptParams params,
        @NonNull final String key,
        @NonNull final String value
    ); @Override Observable<Goldfinger.Result> encrypt(
        @NonNull final Goldfinger.PromptParams params,
        @NonNull final String key,
        @NonNull final String value
    ); @Override boolean hasEnrolledFingerprint(); @Override boolean hasFingerprintHardware();  }### Answer:
@Test public void encrypt_delegatedOnSubscribe() { Goldfinger.PromptParams params = params(); rxGoldfinger.encrypt(params, KEY, VALUE).subscribe(observer); verify(goldfinger).encrypt(eq(params), eq(KEY), eq(VALUE), any(Goldfinger.Callback.class)); }
@Test public void encrypt_notDelegated() { Goldfinger.PromptParams params = params(); rxGoldfinger.encrypt(params, KEY, VALUE); verify(goldfinger, never()).encrypt(eq(params), eq(KEY), eq(VALUE), any(Goldfinger.Callback.class)); }