ConditionalBindingTest.java revision d615f15f0f0cc4c4de7570119d181e13d44e708a
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    private void testCorrectness(boolean cond1, boolean cond2) {
34        NotBindableVo o1 = new NotBindableVo("a");
35        NotBindableVo o2 = new NotBindableVo("b");
36        NotBindableVo o3 = new NotBindableVo("c");
37        mBinder.setObj1(o1);
38        mBinder.setObj2(o2);
39        mBinder.setObj3(o3);
40        mBinder.setCond1(cond1);
41        mBinder.setCond2(cond2);
42        mBinder.executePendingBindings();
43        final String text = mBinder.textView.getText().toString();
44        assertEquals(cond1 && cond2, "a".equals(text));
45        assertEquals(cond1 && !cond2, "b".equals(text));
46        assertEquals(!cond1, "c".equals(text));
47    }
48}
49