18533f27db6c31b0c295ae62d314dbf07ea640571Yigit Boyar/*
28533f27db6c31b0c295ae62d314dbf07ea640571Yigit Boyar * Copyright (C) 2015 The Android Open Source Project
38533f27db6c31b0c295ae62d314dbf07ea640571Yigit Boyar * Licensed under the Apache License, Version 2.0 (the "License");
48533f27db6c31b0c295ae62d314dbf07ea640571Yigit Boyar * you may not use this file except in compliance with the License.
58533f27db6c31b0c295ae62d314dbf07ea640571Yigit Boyar * You may obtain a copy of the License at
68533f27db6c31b0c295ae62d314dbf07ea640571Yigit Boyar *      http://www.apache.org/licenses/LICENSE-2.0
78533f27db6c31b0c295ae62d314dbf07ea640571Yigit Boyar * Unless required by applicable law or agreed to in writing, software
88533f27db6c31b0c295ae62d314dbf07ea640571Yigit Boyar * distributed under the License is distributed on an "AS IS" BASIS,
98533f27db6c31b0c295ae62d314dbf07ea640571Yigit Boyar * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
108533f27db6c31b0c295ae62d314dbf07ea640571Yigit Boyar * See the License for the specific language governing permissions and
118533f27db6c31b0c295ae62d314dbf07ea640571Yigit Boyar * limitations under the License.
128533f27db6c31b0c295ae62d314dbf07ea640571Yigit Boyar */
138533f27db6c31b0c295ae62d314dbf07ea640571Yigit Boyar
148533f27db6c31b0c295ae62d314dbf07ea640571Yigit Boyarpackage android.databinding.testapp;
158533f27db6c31b0c295ae62d314dbf07ea640571Yigit Boyar
168533f27db6c31b0c295ae62d314dbf07ea640571Yigit Boyarimport android.databinding.testapp.databinding.ConstantBindingWithConditionalBinding;
178533f27db6c31b0c295ae62d314dbf07ea640571Yigit Boyarimport android.databinding.testapp.vo.BasicObject;
188533f27db6c31b0c295ae62d314dbf07ea640571Yigit Boyarimport android.databinding.testapp.vo.ConstantBindingTestObject;
198533f27db6c31b0c295ae62d314dbf07ea640571Yigit Boyarimport android.test.UiThreadTest;
208533f27db6c31b0c295ae62d314dbf07ea640571Yigit Boyar
218533f27db6c31b0c295ae62d314dbf07ea640571Yigit Boyarimport java.util.ArrayList;
228533f27db6c31b0c295ae62d314dbf07ea640571Yigit Boyar
238533f27db6c31b0c295ae62d314dbf07ea640571Yigit Boyarpublic class ConstantWithConditionalTest extends BaseDataBinderTest<ConstantBindingWithConditionalBinding>{
248533f27db6c31b0c295ae62d314dbf07ea640571Yigit Boyar
258533f27db6c31b0c295ae62d314dbf07ea640571Yigit Boyar    public ConstantWithConditionalTest() {
268533f27db6c31b0c295ae62d314dbf07ea640571Yigit Boyar        super(ConstantBindingWithConditionalBinding.class);
278533f27db6c31b0c295ae62d314dbf07ea640571Yigit Boyar    }
288533f27db6c31b0c295ae62d314dbf07ea640571Yigit Boyar
298533f27db6c31b0c295ae62d314dbf07ea640571Yigit Boyar    @UiThreadTest
308533f27db6c31b0c295ae62d314dbf07ea640571Yigit Boyar    public void testValues() {
318533f27db6c31b0c295ae62d314dbf07ea640571Yigit Boyar        initBinder();
328533f27db6c31b0c295ae62d314dbf07ea640571Yigit Boyar        mBinder.executePendingBindings();
338533f27db6c31b0c295ae62d314dbf07ea640571Yigit Boyar        BasicObject basicObject = new BasicObject();
348533f27db6c31b0c295ae62d314dbf07ea640571Yigit Boyar        basicObject.setField1("tt");
358533f27db6c31b0c295ae62d314dbf07ea640571Yigit Boyar        basicObject.setField2("blah");
368533f27db6c31b0c295ae62d314dbf07ea640571Yigit Boyar        ConstantBindingTestObject obj = new ConstantBindingTestObject();
378533f27db6c31b0c295ae62d314dbf07ea640571Yigit Boyar        mBinder.setVm(obj);
388533f27db6c31b0c295ae62d314dbf07ea640571Yigit Boyar        mBinder.executePendingBindings();
398533f27db6c31b0c295ae62d314dbf07ea640571Yigit Boyar        assertTrue(mBinder.myTextView.hasFixedSize());
408533f27db6c31b0c295ae62d314dbf07ea640571Yigit Boyar        assertTrue(mBinder.progressBar.isIndeterminate());
418533f27db6c31b0c295ae62d314dbf07ea640571Yigit Boyar
428533f27db6c31b0c295ae62d314dbf07ea640571Yigit Boyar        obj.setErrorMessage("blah");
438533f27db6c31b0c295ae62d314dbf07ea640571Yigit Boyar        mBinder.invalidateAll();
448533f27db6c31b0c295ae62d314dbf07ea640571Yigit Boyar        mBinder.executePendingBindings();
458533f27db6c31b0c295ae62d314dbf07ea640571Yigit Boyar        assertFalse(mBinder.progressBar.isIndeterminate());
468533f27db6c31b0c295ae62d314dbf07ea640571Yigit Boyar
478533f27db6c31b0c295ae62d314dbf07ea640571Yigit Boyar        obj.setErrorMessage(null);
488533f27db6c31b0c295ae62d314dbf07ea640571Yigit Boyar        ArrayList<String> list = new ArrayList<>();
498533f27db6c31b0c295ae62d314dbf07ea640571Yigit Boyar        obj.setCountryModels(list);
508533f27db6c31b0c295ae62d314dbf07ea640571Yigit Boyar        mBinder.invalidateAll();
518533f27db6c31b0c295ae62d314dbf07ea640571Yigit Boyar        mBinder.executePendingBindings();
528533f27db6c31b0c295ae62d314dbf07ea640571Yigit Boyar        assertTrue(mBinder.progressBar.isIndeterminate());
538533f27db6c31b0c295ae62d314dbf07ea640571Yigit Boyar
548533f27db6c31b0c295ae62d314dbf07ea640571Yigit Boyar        list.add("abc");
558533f27db6c31b0c295ae62d314dbf07ea640571Yigit Boyar        mBinder.invalidateAll();
568533f27db6c31b0c295ae62d314dbf07ea640571Yigit Boyar        mBinder.executePendingBindings();
578533f27db6c31b0c295ae62d314dbf07ea640571Yigit Boyar        assertFalse(mBinder.progressBar.isIndeterminate());
588533f27db6c31b0c295ae62d314dbf07ea640571Yigit Boyar
598533f27db6c31b0c295ae62d314dbf07ea640571Yigit Boyar    }
608533f27db6c31b0c295ae62d314dbf07ea640571Yigit Boyar}
61