184c8e78264cc160819f32a6006049f87d81c43deDavid Farber & Joe Moorepackage com.xtremelabs.robolectric.shadows; 284c8e78264cc160819f32a6006049f87d81c43deDavid Farber & Joe Moore 384c8e78264cc160819f32a6006049f87d81c43deDavid Farber & Joe Mooreimport android.widget.RadioGroup; 484c8e78264cc160819f32a6006049f87d81c43deDavid Farber & Joe Mooreimport com.xtremelabs.robolectric.WithTestDefaultsRunner; 584c8e78264cc160819f32a6006049f87d81c43deDavid Farber & Joe Mooreimport org.junit.Test; 684c8e78264cc160819f32a6006049f87d81c43deDavid Farber & Joe Mooreimport org.junit.runner.RunWith; 784c8e78264cc160819f32a6006049f87d81c43deDavid Farber & Joe Moore 88ad000a99b0143c4579812485ef921dd515b6cc7Aaron VonderHaar & Phil Goodwinimport java.util.ArrayList; 98ad000a99b0143c4579812485ef921dd515b6cc7Aaron VonderHaar & Phil Goodwinimport java.util.Arrays; 108ad000a99b0143c4579812485ef921dd515b6cc7Aaron VonderHaar & Phil Goodwin 1184c8e78264cc160819f32a6006049f87d81c43deDavid Farber & Joe Mooreimport static org.hamcrest.CoreMatchers.equalTo; 128ad000a99b0143c4579812485ef921dd515b6cc7Aaron VonderHaar & Phil Goodwinimport static org.junit.Assert.assertEquals; 1384c8e78264cc160819f32a6006049f87d81c43deDavid Farber & Joe Mooreimport static org.junit.Assert.assertThat; 1484c8e78264cc160819f32a6006049f87d81c43deDavid Farber & Joe Moore 1584c8e78264cc160819f32a6006049f87d81c43deDavid Farber & Joe Moore@RunWith(WithTestDefaultsRunner.class) 1684c8e78264cc160819f32a6006049f87d81c43deDavid Farber & Joe Moorepublic class RadioGroupTest { 178ad000a99b0143c4579812485ef921dd515b6cc7Aaron VonderHaar & Phil Goodwin private static final int BUTTON_ID = 3245; 188ad000a99b0143c4579812485ef921dd515b6cc7Aaron VonderHaar & Phil Goodwin 1984c8e78264cc160819f32a6006049f87d81c43deDavid Farber & Joe Moore @Test 2084c8e78264cc160819f32a6006049f87d81c43deDavid Farber & Joe Moore public void checkedRadioButtonId() throws Exception { 2184c8e78264cc160819f32a6006049f87d81c43deDavid Farber & Joe Moore RadioGroup radioGroup = new RadioGroup(null); 2284c8e78264cc160819f32a6006049f87d81c43deDavid Farber & Joe Moore assertThat(radioGroup.getCheckedRadioButtonId(), equalTo(-1)); 2384c8e78264cc160819f32a6006049f87d81c43deDavid Farber & Joe Moore radioGroup.check(99); 2484c8e78264cc160819f32a6006049f87d81c43deDavid Farber & Joe Moore assertThat(radioGroup.getCheckedRadioButtonId(), equalTo(99)); 2584c8e78264cc160819f32a6006049f87d81c43deDavid Farber & Joe Moore } 268ad000a99b0143c4579812485ef921dd515b6cc7Aaron VonderHaar & Phil Goodwin 278ad000a99b0143c4579812485ef921dd515b6cc7Aaron VonderHaar & Phil Goodwin @Test 288ad000a99b0143c4579812485ef921dd515b6cc7Aaron VonderHaar & Phil Goodwin public void check_shouldCallOnCheckedChangeListener() throws Exception { 298ad000a99b0143c4579812485ef921dd515b6cc7Aaron VonderHaar & Phil Goodwin RadioGroup radioGroup = new RadioGroup(null); 308ad000a99b0143c4579812485ef921dd515b6cc7Aaron VonderHaar & Phil Goodwin TestOnCheckedChangeListener listener = new TestOnCheckedChangeListener(); 318ad000a99b0143c4579812485ef921dd515b6cc7Aaron VonderHaar & Phil Goodwin radioGroup.setOnCheckedChangeListener(listener); 328ad000a99b0143c4579812485ef921dd515b6cc7Aaron VonderHaar & Phil Goodwin 338ad000a99b0143c4579812485ef921dd515b6cc7Aaron VonderHaar & Phil Goodwin radioGroup.check(BUTTON_ID); 348ad000a99b0143c4579812485ef921dd515b6cc7Aaron VonderHaar & Phil Goodwin 358ad000a99b0143c4579812485ef921dd515b6cc7Aaron VonderHaar & Phil Goodwin assertEquals(Arrays.asList(BUTTON_ID), listener.onCheckedChangedCheckedIds); 368ad000a99b0143c4579812485ef921dd515b6cc7Aaron VonderHaar & Phil Goodwin assertEquals(Arrays.asList(radioGroup), listener.onCheckedChangedGroups); 378ad000a99b0143c4579812485ef921dd515b6cc7Aaron VonderHaar & Phil Goodwin } 388ad000a99b0143c4579812485ef921dd515b6cc7Aaron VonderHaar & Phil Goodwin 398ad000a99b0143c4579812485ef921dd515b6cc7Aaron VonderHaar & Phil Goodwin @Test 408ad000a99b0143c4579812485ef921dd515b6cc7Aaron VonderHaar & Phil Goodwin public void clearCheck_shouldCallOnCheckedChangeListenerTwice() throws Exception { 418ad000a99b0143c4579812485ef921dd515b6cc7Aaron VonderHaar & Phil Goodwin RadioGroup radioGroup = new RadioGroup(null); 428ad000a99b0143c4579812485ef921dd515b6cc7Aaron VonderHaar & Phil Goodwin TestOnCheckedChangeListener listener = new TestOnCheckedChangeListener(); 438ad000a99b0143c4579812485ef921dd515b6cc7Aaron VonderHaar & Phil Goodwin 448ad000a99b0143c4579812485ef921dd515b6cc7Aaron VonderHaar & Phil Goodwin radioGroup.check(BUTTON_ID); 458ad000a99b0143c4579812485ef921dd515b6cc7Aaron VonderHaar & Phil Goodwin radioGroup.setOnCheckedChangeListener(listener); 468ad000a99b0143c4579812485ef921dd515b6cc7Aaron VonderHaar & Phil Goodwin radioGroup.clearCheck(); 478ad000a99b0143c4579812485ef921dd515b6cc7Aaron VonderHaar & Phil Goodwin 488ad000a99b0143c4579812485ef921dd515b6cc7Aaron VonderHaar & Phil Goodwin assertEquals(Arrays.asList(BUTTON_ID, -1), listener.onCheckedChangedCheckedIds); 498ad000a99b0143c4579812485ef921dd515b6cc7Aaron VonderHaar & Phil Goodwin assertEquals(Arrays.asList(radioGroup, radioGroup), listener.onCheckedChangedGroups); 508ad000a99b0143c4579812485ef921dd515b6cc7Aaron VonderHaar & Phil Goodwin 518ad000a99b0143c4579812485ef921dd515b6cc7Aaron VonderHaar & Phil Goodwin } 528ad000a99b0143c4579812485ef921dd515b6cc7Aaron VonderHaar & Phil Goodwin 538ad000a99b0143c4579812485ef921dd515b6cc7Aaron VonderHaar & Phil Goodwin private static class TestOnCheckedChangeListener implements RadioGroup.OnCheckedChangeListener { 548ad000a99b0143c4579812485ef921dd515b6cc7Aaron VonderHaar & Phil Goodwin public ArrayList<RadioGroup> onCheckedChangedGroups = new ArrayList<RadioGroup>(); 558ad000a99b0143c4579812485ef921dd515b6cc7Aaron VonderHaar & Phil Goodwin public ArrayList<Integer> onCheckedChangedCheckedIds = new ArrayList<Integer>(); 568ad000a99b0143c4579812485ef921dd515b6cc7Aaron VonderHaar & Phil Goodwin 578ad000a99b0143c4579812485ef921dd515b6cc7Aaron VonderHaar & Phil Goodwin @Override 588ad000a99b0143c4579812485ef921dd515b6cc7Aaron VonderHaar & Phil Goodwin public void onCheckedChanged(RadioGroup group, int checkedId) { 598ad000a99b0143c4579812485ef921dd515b6cc7Aaron VonderHaar & Phil Goodwin onCheckedChangedGroups.add(group); 608ad000a99b0143c4579812485ef921dd515b6cc7Aaron VonderHaar & Phil Goodwin onCheckedChangedCheckedIds.add(checkedId); 618ad000a99b0143c4579812485ef921dd515b6cc7Aaron VonderHaar & Phil Goodwin } 628ad000a99b0143c4579812485ef921dd515b6cc7Aaron VonderHaar & Phil Goodwin } 6384c8e78264cc160819f32a6006049f87d81c43deDavid Farber & Joe Moore} 64