• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 package com.xtremelabs.robolectric.shadows;
2 
3 import android.widget.RadioGroup;
4 import com.xtremelabs.robolectric.WithTestDefaultsRunner;
5 import org.junit.Test;
6 import org.junit.runner.RunWith;
7 
8 import java.util.ArrayList;
9 import java.util.Arrays;
10 
11 import static org.hamcrest.CoreMatchers.equalTo;
12 import static org.junit.Assert.assertEquals;
13 import static org.junit.Assert.assertThat;
14 
15 @RunWith(WithTestDefaultsRunner.class)
16 public class RadioGroupTest {
17     private static final int BUTTON_ID = 3245;
18 
19     @Test
checkedRadioButtonId()20     public void checkedRadioButtonId() throws Exception {
21         RadioGroup radioGroup = new RadioGroup(null);
22         assertThat(radioGroup.getCheckedRadioButtonId(), equalTo(-1));
23         radioGroup.check(99);
24         assertThat(radioGroup.getCheckedRadioButtonId(), equalTo(99));
25     }
26 
27     @Test
check_shouldCallOnCheckedChangeListener()28     public void check_shouldCallOnCheckedChangeListener() throws Exception {
29         RadioGroup radioGroup = new RadioGroup(null);
30         TestOnCheckedChangeListener listener = new TestOnCheckedChangeListener();
31         radioGroup.setOnCheckedChangeListener(listener);
32 
33         radioGroup.check(BUTTON_ID);
34 
35         assertEquals(Arrays.asList(BUTTON_ID), listener.onCheckedChangedCheckedIds);
36         assertEquals(Arrays.asList(radioGroup), listener.onCheckedChangedGroups);
37     }
38 
39     @Test
clearCheck_shouldCallOnCheckedChangeListenerTwice()40     public void clearCheck_shouldCallOnCheckedChangeListenerTwice() throws Exception {
41         RadioGroup radioGroup = new RadioGroup(null);
42         TestOnCheckedChangeListener listener = new TestOnCheckedChangeListener();
43 
44         radioGroup.check(BUTTON_ID);
45         radioGroup.setOnCheckedChangeListener(listener);
46         radioGroup.clearCheck();
47 
48         assertEquals(Arrays.asList(BUTTON_ID, -1), listener.onCheckedChangedCheckedIds);
49         assertEquals(Arrays.asList(radioGroup, radioGroup), listener.onCheckedChangedGroups);
50 
51     }
52 
53     private static class TestOnCheckedChangeListener implements RadioGroup.OnCheckedChangeListener {
54         public ArrayList<RadioGroup> onCheckedChangedGroups = new ArrayList<RadioGroup>();
55         public ArrayList<Integer> onCheckedChangedCheckedIds = new ArrayList<Integer>();
56 
57         @Override
onCheckedChanged(RadioGroup group, int checkedId)58         public void onCheckedChanged(RadioGroup group, int checkedId) {
59             onCheckedChangedGroups.add(group);
60             onCheckedChangedCheckedIds.add(checkedId);
61         }
62     }
63 }
64