17920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount/*
27920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount * Copyright (C) 2015 The Android Open Source Project
37920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount * Licensed under the Apache License, Version 2.0 (the "License");
47920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount * you may not use this file except in compliance with the License.
57920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount * You may obtain a copy of the License at
67920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount *      http://www.apache.org/licenses/LICENSE-2.0
77920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount * Unless required by applicable law or agreed to in writing, software
87920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount * distributed under the License is distributed on an "AS IS" BASIS,
97920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
107920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount * See the License for the specific language governing permissions and
117920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount * limitations under the License.
127920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount */
137920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount
14fead9ca09b117136b35bc5bf137340a754f9edddGeorge Mountpackage android.databinding.testapp;
157920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount
162e2043d30f95585de2069e1cbb23e022ab0e71c4George Mountimport android.databinding.testapp.databinding.ObservableFieldTestBinding;
17fead9ca09b117136b35bc5bf137340a754f9edddGeorge Mountimport android.databinding.testapp.vo.ObservableFieldBindingObject;
187920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount
197920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mountimport android.test.UiThreadTest;
207920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mountimport android.widget.TextView;
217920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount
224c5cc009bcbcfb19e33fb19db5ec80f83f7b3326George Mountpublic class ObservableFieldTest extends BaseDataBinderTest<ObservableFieldTestBinding> {
237920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount    private ObservableFieldBindingObject mObj;
247920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount
257920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount    public ObservableFieldTest() {
264c5cc009bcbcfb19e33fb19db5ec80f83f7b3326George Mount        super(ObservableFieldTestBinding.class);
277920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount    }
287920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount
297920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount    @Override
307920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount    protected void setUp() throws Exception {
317920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount        super.setUp();
323f73e3149732132c02f5d19aab7b5da429794058Yigit Boyar        initBinder(new Runnable() {
333f73e3149732132c02f5d19aab7b5da429794058Yigit Boyar            @Override
343f73e3149732132c02f5d19aab7b5da429794058Yigit Boyar            public void run() {
353f73e3149732132c02f5d19aab7b5da429794058Yigit Boyar                mObj = new ObservableFieldBindingObject();
363f73e3149732132c02f5d19aab7b5da429794058Yigit Boyar                mBinder.setObj(mObj);
373f73e3149732132c02f5d19aab7b5da429794058Yigit Boyar                mBinder.executePendingBindings();
383f73e3149732132c02f5d19aab7b5da429794058Yigit Boyar            }
393f73e3149732132c02f5d19aab7b5da429794058Yigit Boyar        });
407920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount    }
417920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount
427920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount    @UiThreadTest
437920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount    public void testBoolean() {
4434a18e6a231f3b64726bd93e7e097a0d5a75995dGeorge Mount        TextView view = mBinder.bField;
457920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount        assertEquals("false", view.getText());
467920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount
477920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount        mObj.bField.set(true);
484c5cc009bcbcfb19e33fb19db5ec80f83f7b3326George Mount        mBinder.executePendingBindings();
497920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount
507920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount        assertEquals("true", view.getText());
517920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount    }
527920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount
537920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount    @UiThreadTest
547920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount    public void testByte() {
5534a18e6a231f3b64726bd93e7e097a0d5a75995dGeorge Mount        TextView view = mBinder.tField;
567920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount        assertEquals("0", view.getText());
577920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount
587920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount        mObj.tField.set((byte) 1);
594c5cc009bcbcfb19e33fb19db5ec80f83f7b3326George Mount        mBinder.executePendingBindings();
607920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount
617920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount        assertEquals("1", view.getText());
627920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount    }
637920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount
647920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount    @UiThreadTest
657920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount    public void testShort() {
6634a18e6a231f3b64726bd93e7e097a0d5a75995dGeorge Mount        TextView view = mBinder.sField;
677920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount        assertEquals("0", view.getText());
687920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount
697920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount        mObj.sField.set((short) 1);
704c5cc009bcbcfb19e33fb19db5ec80f83f7b3326George Mount        mBinder.executePendingBindings();
717920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount
727920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount        assertEquals("1", view.getText());
737920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount    }
747920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount
757920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount    @UiThreadTest
767920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount    public void testChar() {
7734a18e6a231f3b64726bd93e7e097a0d5a75995dGeorge Mount        TextView view = mBinder.cField;
787920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount        assertEquals("\u0000", view.getText());
797920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount
807920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount        mObj.cField.set('A');
814c5cc009bcbcfb19e33fb19db5ec80f83f7b3326George Mount        mBinder.executePendingBindings();
827920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount
837920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount        assertEquals("A", view.getText());
847920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount    }
857920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount
867920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount    @UiThreadTest
877920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount    public void testInt() {
8834a18e6a231f3b64726bd93e7e097a0d5a75995dGeorge Mount        TextView view = mBinder.iField;
897920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount        assertEquals("0", view.getText());
907920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount
917920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount        mObj.iField.set(1);
924c5cc009bcbcfb19e33fb19db5ec80f83f7b3326George Mount        mBinder.executePendingBindings();
937920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount
947920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount        assertEquals("1", view.getText());
957920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount    }
967920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount
977920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount    @UiThreadTest
987920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount    public void testLong() {
9934a18e6a231f3b64726bd93e7e097a0d5a75995dGeorge Mount        TextView view = mBinder.lField;
1007920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount        assertEquals("0", view.getText());
1017920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount
1027920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount        mObj.lField.set(1);
1034c5cc009bcbcfb19e33fb19db5ec80f83f7b3326George Mount        mBinder.executePendingBindings();
1047920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount
1057920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount        assertEquals("1", view.getText());
1067920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount    }
1077920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount
1087920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount    @UiThreadTest
1097920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount    public void testFloat() {
11034a18e6a231f3b64726bd93e7e097a0d5a75995dGeorge Mount        TextView view = mBinder.fField;
1117920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount        assertEquals("0.0", view.getText());
1127920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount
1137920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount        mObj.fField.set(1);
1144c5cc009bcbcfb19e33fb19db5ec80f83f7b3326George Mount        mBinder.executePendingBindings();
1157920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount
1167920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount        assertEquals("1.0", view.getText());
1177920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount    }
1187920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount
1197920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount    @UiThreadTest
1207920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount    public void testDouble() {
12134a18e6a231f3b64726bd93e7e097a0d5a75995dGeorge Mount        TextView view = mBinder.dField;
1227920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount        assertEquals("0.0", view.getText());
1237920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount
1247920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount        mObj.dField.set(1);
1254c5cc009bcbcfb19e33fb19db5ec80f83f7b3326George Mount        mBinder.executePendingBindings();
1267920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount
1277920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount        assertEquals("1.0", view.getText());
1287920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount    }
1297920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount
1307920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount    @UiThreadTest
1317920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount    public void testObject() {
13234a18e6a231f3b64726bd93e7e097a0d5a75995dGeorge Mount        TextView view = mBinder.oField;
1337920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount        assertEquals("Hello", view.getText());
1347920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount
1357920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount        mObj.oField.set("World");
1364c5cc009bcbcfb19e33fb19db5ec80f83f7b3326George Mount        mBinder.executePendingBindings();
1377920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount
1387920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount        assertEquals("World", view.getText());
1397920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount    }
140d37b47419005587c52ca4c099432327b7f06478dYigit Boyar
141d37b47419005587c52ca4c099432327b7f06478dYigit Boyar    @UiThreadTest
142d37b47419005587c52ca4c099432327b7f06478dYigit Boyar    public void testParcelable() {
143d37b47419005587c52ca4c099432327b7f06478dYigit Boyar        TextView x = mBinder.pFieldx;
144d37b47419005587c52ca4c099432327b7f06478dYigit Boyar        TextView y = mBinder.pFieldy;
145d37b47419005587c52ca4c099432327b7f06478dYigit Boyar        assertEquals(x.getText().toString(), String.valueOf(mObj.pField.get().getX()));
146d37b47419005587c52ca4c099432327b7f06478dYigit Boyar        assertEquals(y.getText().toString(), mObj.pField.get().getY());
147d37b47419005587c52ca4c099432327b7f06478dYigit Boyar        ObservableFieldBindingObject.MyParcelable p2 =
148d37b47419005587c52ca4c099432327b7f06478dYigit Boyar                new ObservableFieldBindingObject.MyParcelable(7, "updated");
149d37b47419005587c52ca4c099432327b7f06478dYigit Boyar        mObj.pField.set(p2);
150d37b47419005587c52ca4c099432327b7f06478dYigit Boyar        mBinder.executePendingBindings();
151d37b47419005587c52ca4c099432327b7f06478dYigit Boyar
152d37b47419005587c52ca4c099432327b7f06478dYigit Boyar        assertEquals(x.getText().toString(), String.valueOf(mObj.pField.get().getX()));
153d37b47419005587c52ca4c099432327b7f06478dYigit Boyar        assertEquals(y.getText().toString(), mObj.pField.get().getY());
154d37b47419005587c52ca4c099432327b7f06478dYigit Boyar    }
1557920e17f7b501d5792e7e3250e9dbb69eca86adeGeorge Mount}
156