13f73e3149732132c02f5d19aab7b5da429794058Yigit Boyarpackage android.databinding.testapp;
23f73e3149732132c02f5d19aab7b5da429794058Yigit Boyar
33f73e3149732132c02f5d19aab7b5da429794058Yigit Boyarimport android.databinding.testapp.databinding.MultiThreadLayoutBinding;
43f73e3149732132c02f5d19aab7b5da429794058Yigit Boyarimport android.test.UiThreadTest;
53f73e3149732132c02f5d19aab7b5da429794058Yigit Boyar
63f73e3149732132c02f5d19aab7b5da429794058Yigit Boyarimport java.util.concurrent.CountDownLatch;
73f73e3149732132c02f5d19aab7b5da429794058Yigit Boyar
83f73e3149732132c02f5d19aab7b5da429794058Yigit Boyarpublic class MultiThreadTest extends BaseDataBinderTest<MultiThreadLayoutBinding> {
93f73e3149732132c02f5d19aab7b5da429794058Yigit Boyar    public MultiThreadTest() {
103f73e3149732132c02f5d19aab7b5da429794058Yigit Boyar        super(MultiThreadLayoutBinding.class);
113f73e3149732132c02f5d19aab7b5da429794058Yigit Boyar    }
123f73e3149732132c02f5d19aab7b5da429794058Yigit Boyar
133f73e3149732132c02f5d19aab7b5da429794058Yigit Boyar    public void testSetOnBackgroundThread() throws Throwable {
143f73e3149732132c02f5d19aab7b5da429794058Yigit Boyar        initBinder();
153f73e3149732132c02f5d19aab7b5da429794058Yigit Boyar        mBinder.setText("a");
163f73e3149732132c02f5d19aab7b5da429794058Yigit Boyar        assertEquals("a", mBinder.getText());
173f73e3149732132c02f5d19aab7b5da429794058Yigit Boyar        Thread.sleep(500);
183f73e3149732132c02f5d19aab7b5da429794058Yigit Boyar        runTestOnUiThread(new Runnable() {
193f73e3149732132c02f5d19aab7b5da429794058Yigit Boyar            @Override
203f73e3149732132c02f5d19aab7b5da429794058Yigit Boyar            public void run() {
213f73e3149732132c02f5d19aab7b5da429794058Yigit Boyar                assertEquals("a", mBinder.myTextView.getText().toString());
223f73e3149732132c02f5d19aab7b5da429794058Yigit Boyar            }
233f73e3149732132c02f5d19aab7b5da429794058Yigit Boyar        });
243f73e3149732132c02f5d19aab7b5da429794058Yigit Boyar        mBinder.setText("b");
253f73e3149732132c02f5d19aab7b5da429794058Yigit Boyar        Thread.sleep(500);
263f73e3149732132c02f5d19aab7b5da429794058Yigit Boyar        assertEquals("b", mBinder.getText());
273f73e3149732132c02f5d19aab7b5da429794058Yigit Boyar        runTestOnUiThread(new Runnable() {
283f73e3149732132c02f5d19aab7b5da429794058Yigit Boyar            @Override
293f73e3149732132c02f5d19aab7b5da429794058Yigit Boyar            public void run() {
303f73e3149732132c02f5d19aab7b5da429794058Yigit Boyar                assertEquals("b", mBinder.myTextView.getText().toString());
313f73e3149732132c02f5d19aab7b5da429794058Yigit Boyar            }
323f73e3149732132c02f5d19aab7b5da429794058Yigit Boyar        });
333f73e3149732132c02f5d19aab7b5da429794058Yigit Boyar    }
343f73e3149732132c02f5d19aab7b5da429794058Yigit Boyar}
35