RxPreferences { @NonNull public Single<Boolean> containsOnce(@NonNull String key) { return Single.fromCallable(() -> preferences.contains(key)); } RxPreferences(@NonNull SharedPreferences preferences); @NonNull Single<Map<String, ?>> getAllOnce(); @NonNull Single<String> getStringOnce(@NonNull String key, @NonNull String defaultValue); @NonNull Single<Set<String>> getStringSetOnce(@NonNull String key, @NonNull Set<String> defaultValues); @NonNull Single<Integer> getIntOnce(@NonNull String key, int defaultValue); @NonNull Single<Long> getLongOnce(@NonNull String key, long defaultValue); @NonNull Single<Float> getFloatOnce(@NonNull String key, float defaultValue); @NonNull Single<Boolean> getBooleanOnce(@NonNull String key, boolean defaultValue); @NonNull Single<Boolean> containsOnce(@NonNull String key); @NonNull Observable<Map<String, ?>> getAllStream(); @NonNull Observable<String> getStringStream(@NonNull String key, @NonNull String defaultValue); @NonNull Observable<Set<String>> getStringSetStream(@NonNull String key, @NonNull Set<String> defaultValue); @NonNull Observable<Integer> getIntStream(@NonNull String key, int defaultValue); @NonNull Observable<Long> getLongStream(@NonNull String key, long defaultValue); @NonNull Observable<Float> getFloatStream(@NonNull String key, float defaultValue); @NonNull Observable<Boolean> getBooleanStream(@NonNull String key, boolean defaultValue); @NonNull Observable<Boolean> containsStream(@NonNull String key); @NonNull Editor edit();  }
@Test public void containsOnce_emitsFromInternalPreferences() { final String testKey = "Test key"; when(mockSharedPreferences.contains(testKey)).thenReturn(true); final TestObserver<Boolean> subscription = rxPreferences.containsOnce(testKey) .test(); subscriptions.add(subscription); subscription .assertComplete() .assertValueCount(1) .assertValue(true); }
@Test public void containsOnce_getsAfterSubscribe() { final String testKey = "Test key"; when(mockSharedPreferences.contains(testKey)).thenReturn(true); final Disposable subscription = rxPreferences.containsOnce(testKey) .subscribeOn(testScheduler) .subscribe(); subscriptions.add(subscription); verifyNoMoreInteractions(mockSharedPreferences); advanceScheduler(); verify(mockSharedPreferences).contains(testKey); verifyNoMoreInteractions(mockSharedPreferences); }