package org.robobinding.widgetaddon.ratingbar;
import static org.junit.Assert.assertTrue;
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.RatingBar;
import android.widget.RatingBar.OnRatingBarChangeListener;
/**
*
* @since 1.0
* @version $Revision: 1.0 $
* @author Robert Taylor
*/
@Config(manifest = Config.NONE)
@RunWith(RobolectricTestRunner.class)
public class RatingBarAddOnTest {
@Test
public void shouldSupportMultipleOnRatingBarChangeListenersInRatingBar() {
RatingBar ratingBar = new RatingBar(RuntimeEnvironment.application);
RatingBarAddOn ratingBarAddOn = new RatingBarAddOn(ratingBar);
MockOnRatingBarChangeListener listener1 = new MockOnRatingBarChangeListener();
MockOnRatingBarChangeListener listener2 = new MockOnRatingBarChangeListener();
ratingBarAddOn.addOnRatingBarChangeListener(listener1);
ratingBarAddOn.addOnRatingBarChangeListener(listener2);
ratingBar.setRating(RandomValues.anyFloat());
assertTrue(listener1.ratingBarEventFired);
assertTrue(listener2.ratingBarEventFired);
}
private static class MockOnRatingBarChangeListener implements OnRatingBarChangeListener {
private boolean ratingBarEventFired;
@Override
public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {
ratingBarEventFired = true;
}
}
}