RxPreferences { @NonNull public Single<Map<String, ?>> getAllOnce() { return Single.fromCallable(preferences::getAll); } 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 getAllOnce_emitsMapFromInternalPreferences() { final Map<String, ?> testMap = Collections.singletonMap("Made up map key", 23498); when(mockSharedPreferences.getAll()).thenReturn((Map) testMap); final TestObserver<Map<String, ?>> subscription = rxPreferences.getAllOnce() .test(); subscriptions.add(subscription); subscription .assertComplete() .assertValueCount(1) .assertValue(testMap); }
@Test public void getAllOnce_getsAfterSubscribe() { final Map<String, ?> testMap = Collections.singletonMap("Made up map key", 234234); when(mockSharedPreferences.getAll()).thenReturn((Map) testMap); final Disposable subscription = rxPreferences.getAllOnce() .subscribeOn(testScheduler) .subscribe(); subscriptions.add(subscription); verifyNoMoreInteractions(mockSharedPreferences); advanceScheduler(); verify(mockSharedPreferences).getAll(); verifyNoMoreInteractions(mockSharedPreferences); }