blob: 373c8471109f70be17fa141447feb4f8c8ad981d [file] [log] [blame]
package org.robolectric.shadows;
import android.widget.RadioGroup;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.Robolectric;
import org.robolectric.TestRunners;
import java.util.ArrayList;
import java.util.Arrays;
import static org.fest.assertions.api.Assertions.assertThat;
import static org.junit.Assert.assertEquals;
@RunWith(TestRunners.WithDefaults.class)
public class RadioGroupTest {
private static final int BUTTON_ID = 3245;
@Test
public void checkedRadioButtonId() throws Exception {
RadioGroup radioGroup = new RadioGroup(Robolectric.application);
assertThat(radioGroup.getCheckedRadioButtonId()).isEqualTo(-1);
radioGroup.check(99);
assertThat(radioGroup.getCheckedRadioButtonId()).isEqualTo(99);
}
@Test
public void check_shouldCallOnCheckedChangeListener() throws Exception {
RadioGroup radioGroup = new RadioGroup(Robolectric.application);
TestOnCheckedChangeListener listener = new TestOnCheckedChangeListener();
radioGroup.setOnCheckedChangeListener(listener);
radioGroup.check(BUTTON_ID);
assertEquals(Arrays.asList(BUTTON_ID), listener.onCheckedChangedCheckedIds);
assertEquals(Arrays.asList(radioGroup), listener.onCheckedChangedGroups);
}
@Test
public void clearCheck_shouldCallOnCheckedChangeListenerTwice() throws Exception {
RadioGroup radioGroup = new RadioGroup(Robolectric.application);
TestOnCheckedChangeListener listener = new TestOnCheckedChangeListener();
radioGroup.check(BUTTON_ID);
radioGroup.setOnCheckedChangeListener(listener);
radioGroup.clearCheck();
assertEquals(Arrays.asList(BUTTON_ID, -1), listener.onCheckedChangedCheckedIds);
assertEquals(Arrays.asList(radioGroup, radioGroup), listener.onCheckedChangedGroups);
}
private static class TestOnCheckedChangeListener implements RadioGroup.OnCheckedChangeListener {
public ArrayList<RadioGroup> onCheckedChangedGroups = new ArrayList<RadioGroup>();
public ArrayList<Integer> onCheckedChangedCheckedIds = new ArrayList<Integer>();
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
onCheckedChangedGroups.add(group);
onCheckedChangedCheckedIds.add(checkedId);
}
}
}