package org.robolectric.shadows;
import android.widget.RatingBar;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.TestRunners;
import java.util.ArrayList;
import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
@RunWith(TestRunners.MultiApiSelfTest.class)
public class ShadowRatingBarTest {
private RatingBar ratingBar;
private RatingBar.OnRatingBarChangeListener listener;
private List<String> transcript;
@Before
public void setup() {
ratingBar = new RatingBar(RuntimeEnvironment.application);
listener = new TestRatingBarChangedListener();
transcript = new ArrayList<>();
ratingBar.setOnRatingBarChangeListener(listener);
}
@Test
public void testOnSeekBarChangedListener() {
assertThat(ratingBar.getOnRatingBarChangeListener()).isSameAs(listener);
ratingBar.setOnRatingBarChangeListener(null);
assertThat(ratingBar.getOnRatingBarChangeListener()).isNull();
}
@Test
public void testOnChangeNotification() {
ratingBar.setRating(5.0f);
assertThat(transcript).containsExactly("onRatingChanged() - 5.0");
}
private class TestRatingBarChangedListener implements RatingBar.OnRatingBarChangeListener {
@Override
public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {
transcript.add("onRatingChanged() - " + rating);
}
}
}