ConditionalBindingTest.java revision 91beb3a1a89a58b1c0b6b874d889394a3be90b6c
1package android.databinding.testapp; 2 3import android.databinding.testapp.databinding.ConditionalBindingBinding; 4import android.databinding.testapp.vo.ConditionalVo; 5import android.databinding.testapp.vo.NotBindableVo; 6 7import android.test.UiThreadTest; 8 9public class ConditionalBindingTest extends BaseDataBinderTest<ConditionalBindingBinding>{ 10 11 public ConditionalBindingTest() { 12 super(ConditionalBindingBinding.class); 13 } 14 15 @UiThreadTest 16 public void test1() { 17 initBinder(); 18 testCorrectness(true, true); 19 } 20 21 @UiThreadTest 22 public void testTernary() throws Throwable { 23 ConditionalVo obj4 = new ConditionalVo(); 24 initBinder(); 25 mBinder.setObj4(obj4); 26 mBinder.executePendingBindings(); 27 assertEquals("hello", mBinder.textView1.getText().toString()); 28 obj4.setUseHello(true); 29 mBinder.executePendingBindings(); 30 assertEquals("Hello World", mBinder.textView1.getText().toString()); 31 } 32 33 @UiThreadTest 34 public void testNullListener() throws Throwable { 35 ConditionalVo obj4 = new ConditionalVo(); 36 initBinder(); 37 mBinder.setObj4(obj4); 38 mBinder.executePendingBindings(); 39 mBinder.view1.callOnClick(); 40 assertFalse(obj4.wasClicked); 41 mBinder.setCond1(true); 42 mBinder.executePendingBindings(); 43 mBinder.view1.callOnClick(); 44 assertTrue(obj4.wasClicked); 45 } 46 47 private void testCorrectness(boolean cond1, boolean cond2) { 48 NotBindableVo o1 = new NotBindableVo("a"); 49 NotBindableVo o2 = new NotBindableVo("b"); 50 NotBindableVo o3 = new NotBindableVo("c"); 51 mBinder.setObj1(o1); 52 mBinder.setObj2(o2); 53 mBinder.setObj3(o3); 54 mBinder.setCond1(cond1); 55 mBinder.setCond2(cond2); 56 mBinder.executePendingBindings(); 57 final String text = mBinder.textView.getText().toString(); 58 assertEquals(cond1 && cond2, "a".equals(text)); 59 assertEquals(cond1 && !cond2, "b".equals(text)); 60 assertEquals(!cond1, "c".equals(text)); 61 } 62} 63