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