198e4b7a419c91797a7ef66158fa0ce9aaacc8817George Mount/*
298e4b7a419c91797a7ef66158fa0ce9aaacc8817George Mount * Copyright (C) 2015 The Android Open Source Project
398e4b7a419c91797a7ef66158fa0ce9aaacc8817George Mount * Licensed under the Apache License, Version 2.0 (the "License");
498e4b7a419c91797a7ef66158fa0ce9aaacc8817George Mount * you may not use this file except in compliance with the License.
598e4b7a419c91797a7ef66158fa0ce9aaacc8817George Mount * You may obtain a copy of the License at
698e4b7a419c91797a7ef66158fa0ce9aaacc8817George Mount *      http://www.apache.org/licenses/LICENSE-2.0
798e4b7a419c91797a7ef66158fa0ce9aaacc8817George Mount * Unless required by applicable law or agreed to in writing, software
898e4b7a419c91797a7ef66158fa0ce9aaacc8817George Mount * distributed under the License is distributed on an "AS IS" BASIS,
998e4b7a419c91797a7ef66158fa0ce9aaacc8817George Mount * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1098e4b7a419c91797a7ef66158fa0ce9aaacc8817George Mount * See the License for the specific language governing permissions and
1198e4b7a419c91797a7ef66158fa0ce9aaacc8817George Mount * limitations under the License.
1298e4b7a419c91797a7ef66158fa0ce9aaacc8817George Mount */
1398e4b7a419c91797a7ef66158fa0ce9aaacc8817George Mount
14fead9ca09b117136b35bc5bf137340a754f9edddGeorge Mountpackage android.databinding.testapp;
1598e4b7a419c91797a7ef66158fa0ce9aaacc8817George Mount
162e2043d30f95585de2069e1cbb23e022ab0e71c4George Mountimport android.databinding.testapp.databinding.BindToFinalObservableBinding;
17fead9ca09b117136b35bc5bf137340a754f9edddGeorge Mountimport android.databinding.testapp.vo.PublicFinalWithObservableTestVo;
1898e4b7a419c91797a7ef66158fa0ce9aaacc8817George Mount
1998e4b7a419c91797a7ef66158fa0ce9aaacc8817George Mountimport android.test.UiThreadTest;
2098e4b7a419c91797a7ef66158fa0ce9aaacc8817George Mountimport android.widget.TextView;
2198e4b7a419c91797a7ef66158fa0ce9aaacc8817George Mount
224c5cc009bcbcfb19e33fb19db5ec80f83f7b3326George Mountpublic class BindToFinalObservableFieldTest extends BaseDataBinderTest<BindToFinalObservableBinding>{
2398e4b7a419c91797a7ef66158fa0ce9aaacc8817George Mount
2498e4b7a419c91797a7ef66158fa0ce9aaacc8817George Mount    public BindToFinalObservableFieldTest() {
254c5cc009bcbcfb19e33fb19db5ec80f83f7b3326George Mount        super(BindToFinalObservableBinding.class);
2698e4b7a419c91797a7ef66158fa0ce9aaacc8817George Mount    }
2798e4b7a419c91797a7ef66158fa0ce9aaacc8817George Mount
2898e4b7a419c91797a7ef66158fa0ce9aaacc8817George Mount    @UiThreadTest
2998e4b7a419c91797a7ef66158fa0ce9aaacc8817George Mount    public void testSimple() {
303f73e3149732132c02f5d19aab7b5da429794058Yigit Boyar        initBinder();
3198e4b7a419c91797a7ef66158fa0ce9aaacc8817George Mount        final PublicFinalWithObservableTestVo vo = new PublicFinalWithObservableTestVo(R.string.app_name);
3298e4b7a419c91797a7ef66158fa0ce9aaacc8817George Mount        mBinder.setObj(vo);
334c5cc009bcbcfb19e33fb19db5ec80f83f7b3326George Mount        mBinder.executePendingBindings();
3498e4b7a419c91797a7ef66158fa0ce9aaacc8817George Mount        final TextView textView = (TextView) mBinder.getRoot().findViewById(R.id.text_view);
3598e4b7a419c91797a7ef66158fa0ce9aaacc8817George Mount        assertEquals(getActivity().getResources().getString(R.string.app_name), textView.getText().toString());
36b0c02d8951351c7b1b2c87dacd751ba56d103013Yigit Boyar        vo.myFinalVo.setVal(R.string.rain);
374c5cc009bcbcfb19e33fb19db5ec80f83f7b3326George Mount        mBinder.executePendingBindings();
38b0c02d8951351c7b1b2c87dacd751ba56d103013Yigit Boyar        assertEquals("The field should be observed and its notify event should've invalidated"
39b0c02d8951351c7b1b2c87dacd751ba56d103013Yigit Boyar                        + " binder flags.", getActivity().getResources().getString(R.string.rain),
40b0c02d8951351c7b1b2c87dacd751ba56d103013Yigit Boyar                textView.getText().toString());
4198e4b7a419c91797a7ef66158fa0ce9aaacc8817George Mount    }
4298e4b7a419c91797a7ef66158fa0ce9aaacc8817George Mount
4398e4b7a419c91797a7ef66158fa0ce9aaacc8817George Mount
4498e4b7a419c91797a7ef66158fa0ce9aaacc8817George Mount}
45