package com.jakewharton.rxbinding2.widget; import android.content.Context; import android.support.test.InstrumentationRegistry; import android.support.test.annotation.UiThreadTest; import android.support.test.rule.UiThreadTestRule; import android.support.test.runner.AndroidJUnit4; import android.widget.ProgressBar; import io.reactivex.functions.Consumer; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; @RunWith(AndroidJUnit4.class) public final class RxProgressBarTest { @Rule public final UiThreadTestRule uiThread = new UiThreadTestRule(); private final Context context = InstrumentationRegistry.getContext(); private final ProgressBar view = new ProgressBar(context, null, 0); // Explicit no defStyleAttr. @Test @UiThreadTest public void incrementProgressBy() throws Exception { Consumer<? super Integer> action = RxProgressBar.incrementProgressBy(view); assertEquals(0, view.getProgress()); action.accept(10); assertEquals(10, view.getProgress()); action.accept(20); assertEquals(30, view.getProgress()); action.accept(30); assertEquals(60, view.getProgress()); action.accept(40); assertEquals(100, view.getProgress()); } @Test @UiThreadTest public void incrementSecondaryProgressBy() throws Exception { Consumer<? super Integer> action = RxProgressBar.incrementSecondaryProgressBy(view); assertEquals(0, view.getSecondaryProgress()); action.accept(10); assertEquals(10, view.getSecondaryProgress()); action.accept(20); assertEquals(30, view.getSecondaryProgress()); action.accept(30); assertEquals(60, view.getSecondaryProgress()); action.accept(40); assertEquals(100, view.getSecondaryProgress()); } @Test @UiThreadTest public void indeterminate() throws Exception { Consumer<? super Boolean> action = RxProgressBar.indeterminate(view); action.accept(true); assertTrue(view.isIndeterminate()); action.accept(false); assertFalse(view.isIndeterminate()); } @Test @UiThreadTest public void max() throws Exception { Consumer<? super Integer> action = RxProgressBar.max(view); action.accept(100); assertEquals(100, view.getMax()); action.accept(1000); assertEquals(1000, view.getMax()); } @Test @UiThreadTest public void progress() throws Exception { Consumer<? super Integer> action = RxProgressBar.progress(view); assertEquals(0, view.getProgress()); action.accept(50); assertEquals(50, view.getProgress()); action.accept(100); assertEquals(100, view.getProgress()); } @Test @UiThreadTest public void secondaryProgress() throws Exception { Consumer<? super Integer> action = RxProgressBar.secondaryProgress(view); assertEquals(0, view.getSecondaryProgress()); action.accept(50); assertEquals(50, view.getSecondaryProgress()); action.accept(100); assertEquals(100, view.getSecondaryProgress()); } }