package org.robobinding.widgetaddon.radiogroup;
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.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;
/**
*
* @since 1.0
* @version $Revision: 1.0 $
* @author Cheng Wei
*/
@Config(manifest = Config.NONE)
@RunWith(RobolectricTestRunner.class)
public class RadioGroupAddOnTest {
@Test
public void shouldSupportMultipleOnCheckedChangeListeners() {
RadioGroup view = new RadioGroup(RuntimeEnvironment.application);
RadioGroupAddOn viewAddOn = new RadioGroupAddOn(view);
MockOnCheckedChangeListener listener1 = new MockOnCheckedChangeListener();
MockOnCheckedChangeListener listener2 = new MockOnCheckedChangeListener();
viewAddOn.addOnCheckedChangeListener(listener1);
viewAddOn.addOnCheckedChangeListener(listener2);
view.check(RandomValues.anyIntegerGreaterThanZero());
assertTrue(listener1.checkedChangeEventFired);
assertTrue(listener2.checkedChangeEventFired);
}
private static class MockOnCheckedChangeListener implements OnCheckedChangeListener {
private boolean checkedChangeEventFired;
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
checkedChangeEventFired = true;
}
}
}