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