ObservableFieldTest.java revision d37b47419005587c52ca4c099432327b7f06478d
1/*
2 * Copyright (C) 2015 The Android Open Source Project
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *      http://www.apache.org/licenses/LICENSE-2.0
7 * Unless required by applicable law or agreed to in writing, software
8 * distributed under the License is distributed on an "AS IS" BASIS,
9 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
10 * See the License for the specific language governing permissions and
11 * limitations under the License.
12 */
13
14package android.databinding.testapp;
15
16import android.databinding.testapp.databinding.ObservableFieldTestBinding;
17import android.databinding.testapp.vo.ObservableFieldBindingObject;
18
19import android.test.UiThreadTest;
20import android.widget.TextView;
21
22public class ObservableFieldTest extends BaseDataBinderTest<ObservableFieldTestBinding> {
23    private ObservableFieldBindingObject mObj;
24
25    public ObservableFieldTest() {
26        super(ObservableFieldTestBinding.class);
27    }
28
29    @Override
30    protected void setUp() throws Exception {
31        super.setUp();
32        initBinder(new Runnable() {
33            @Override
34            public void run() {
35                mObj = new ObservableFieldBindingObject();
36                mBinder.setObj(mObj);
37                mBinder.executePendingBindings();
38            }
39        });
40    }
41
42    @UiThreadTest
43    public void testBoolean() {
44        TextView view = mBinder.bField;
45        assertEquals("false", view.getText());
46
47        mObj.bField.set(true);
48        mBinder.executePendingBindings();
49
50        assertEquals("true", view.getText());
51    }
52
53    @UiThreadTest
54    public void testByte() {
55        TextView view = mBinder.tField;
56        assertEquals("0", view.getText());
57
58        mObj.tField.set((byte) 1);
59        mBinder.executePendingBindings();
60
61        assertEquals("1", view.getText());
62    }
63
64    @UiThreadTest
65    public void testShort() {
66        TextView view = mBinder.sField;
67        assertEquals("0", view.getText());
68
69        mObj.sField.set((short) 1);
70        mBinder.executePendingBindings();
71
72        assertEquals("1", view.getText());
73    }
74
75    @UiThreadTest
76    public void testChar() {
77        TextView view = mBinder.cField;
78        assertEquals("\u0000", view.getText());
79
80        mObj.cField.set('A');
81        mBinder.executePendingBindings();
82
83        assertEquals("A", view.getText());
84    }
85
86    @UiThreadTest
87    public void testInt() {
88        TextView view = mBinder.iField;
89        assertEquals("0", view.getText());
90
91        mObj.iField.set(1);
92        mBinder.executePendingBindings();
93
94        assertEquals("1", view.getText());
95    }
96
97    @UiThreadTest
98    public void testLong() {
99        TextView view = mBinder.lField;
100        assertEquals("0", view.getText());
101
102        mObj.lField.set(1);
103        mBinder.executePendingBindings();
104
105        assertEquals("1", view.getText());
106    }
107
108    @UiThreadTest
109    public void testFloat() {
110        TextView view = mBinder.fField;
111        assertEquals("0.0", view.getText());
112
113        mObj.fField.set(1);
114        mBinder.executePendingBindings();
115
116        assertEquals("1.0", view.getText());
117    }
118
119    @UiThreadTest
120    public void testDouble() {
121        TextView view = mBinder.dField;
122        assertEquals("0.0", view.getText());
123
124        mObj.dField.set(1);
125        mBinder.executePendingBindings();
126
127        assertEquals("1.0", view.getText());
128    }
129
130    @UiThreadTest
131    public void testObject() {
132        TextView view = mBinder.oField;
133        assertEquals("Hello", view.getText());
134
135        mObj.oField.set("World");
136        mBinder.executePendingBindings();
137
138        assertEquals("World", view.getText());
139    }
140
141    @UiThreadTest
142    public void testParcelable() {
143        TextView x = mBinder.pFieldx;
144        TextView y = mBinder.pFieldy;
145        assertEquals(x.getText().toString(), String.valueOf(mObj.pField.get().getX()));
146        assertEquals(y.getText().toString(), mObj.pField.get().getY());
147        ObservableFieldBindingObject.MyParcelable p2 =
148                new ObservableFieldBindingObject.MyParcelable(7, "updated");
149        mObj.pField.set(p2);
150        mBinder.executePendingBindings();
151
152        assertEquals(x.getText().toString(), String.valueOf(mObj.pField.get().getX()));
153        assertEquals(y.getText().toString(), mObj.pField.get().getY());
154    }
155}
156