package org.robobinding.widgetaddon.seekbar; import static org.junit.Assert.assertTrue; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.robobinding.util.RandomValues; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; import android.widget.SeekBar; import android.widget.SeekBar.OnSeekBarChangeListener; /** * * @since 1.0 * @version $Revision: 1.0 $ * @author Cheng Wei */ @Config(manifest = Config.NONE) @RunWith(RobolectricTestRunner.class) public class SeekBarAddOnTest { private SeekBar view; private SeekBarAddOn viewListeners; @Before public void setUp() { view = new SeekBar(RuntimeEnvironment.application); viewListeners = new SeekBarAddOn(view); } @Test public void shouldSupportMultipleOnSeekBarChangeListeners() { MockOnSeekBarChangeListener listener1 = new MockOnSeekBarChangeListener(); MockOnSeekBarChangeListener listener2 = new MockOnSeekBarChangeListener(); viewListeners.addOnSeekBarChangeListener(listener1); viewListeners.addOnSeekBarChangeListener(listener2); int newProgressValue = RandomValues.anyInteger(); view.setProgress(newProgressValue); assertTrue(listener1.seekBarChangeEventFired); assertTrue(listener2.seekBarChangeEventFired); } private static class MockOnSeekBarChangeListener implements OnSeekBarChangeListener { private boolean seekBarChangeEventFired; @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { seekBarChangeEventFired = true; } @Override public void onStartTrackingTouch(SeekBar seekBar) { } @Override public void onStopTrackingTouch(SeekBar seekBar) { } } }