11b9940e612fc73202837fbe9db2f9035f307b5d1George Mount/* 21b9940e612fc73202837fbe9db2f9035f307b5d1George Mount * Copyright (C) 2015 The Android Open Source Project 31b9940e612fc73202837fbe9db2f9035f307b5d1George Mount * 41b9940e612fc73202837fbe9db2f9035f307b5d1George Mount * Licensed under the Apache License, Version 2.0 (the "License"); 51b9940e612fc73202837fbe9db2f9035f307b5d1George Mount * you may not use this file except in compliance with the License. 61b9940e612fc73202837fbe9db2f9035f307b5d1George Mount * You may obtain a copy of the License at 71b9940e612fc73202837fbe9db2f9035f307b5d1George Mount * 81b9940e612fc73202837fbe9db2f9035f307b5d1George Mount * http://www.apache.org/licenses/LICENSE-2.0 91b9940e612fc73202837fbe9db2f9035f307b5d1George Mount * 101b9940e612fc73202837fbe9db2f9035f307b5d1George Mount * Unless required by applicable law or agreed to in writing, software 111b9940e612fc73202837fbe9db2f9035f307b5d1George Mount * distributed under the License is distributed on an "AS IS" BASIS, 121b9940e612fc73202837fbe9db2f9035f307b5d1George Mount * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 131b9940e612fc73202837fbe9db2f9035f307b5d1George Mount * See the License for the specific language governing permissions and 141b9940e612fc73202837fbe9db2f9035f307b5d1George Mount * limitations under the License. 151b9940e612fc73202837fbe9db2f9035f307b5d1George Mount */ 16fead9ca09b117136b35bc5bf137340a754f9edddGeorge Mountpackage android.databinding.testapp; 171b9940e612fc73202837fbe9db2f9035f307b5d1George Mount 182e2043d30f95585de2069e1cbb23e022ab0e71c4George Mountimport android.databinding.testapp.databinding.AbsSpinnerAdapterTestBinding; 19fead9ca09b117136b35bc5bf137340a754f9edddGeorge Mountimport android.databinding.testapp.vo.AbsSpinnerBindingObject; 201b9940e612fc73202837fbe9db2f9035f307b5d1George Mountimport android.os.Build; 21c7cd9c61e55b43b712d20f855ca59d6fbc49e5b1George Mountimport android.test.UiThreadTest; 221b9940e612fc73202837fbe9db2f9035f307b5d1George Mountimport android.widget.Spinner; 231b9940e612fc73202837fbe9db2f9035f307b5d1George Mountimport android.widget.SpinnerAdapter; 241b9940e612fc73202837fbe9db2f9035f307b5d1George Mount 25c7cd9c61e55b43b712d20f855ca59d6fbc49e5b1George Mountimport java.util.List; 26c7cd9c61e55b43b712d20f855ca59d6fbc49e5b1George Mount 271b9940e612fc73202837fbe9db2f9035f307b5d1George Mountpublic class AbsSpinnerBindingAdapterTest 284c5cc009bcbcfb19e33fb19db5ec80f83f7b3326George Mount extends BindingAdapterTestBase<AbsSpinnerAdapterTestBinding, AbsSpinnerBindingObject> { 291b9940e612fc73202837fbe9db2f9035f307b5d1George Mount 301b9940e612fc73202837fbe9db2f9035f307b5d1George Mount Spinner mView; 311b9940e612fc73202837fbe9db2f9035f307b5d1George Mount 321b9940e612fc73202837fbe9db2f9035f307b5d1George Mount public AbsSpinnerBindingAdapterTest() { 334c5cc009bcbcfb19e33fb19db5ec80f83f7b3326George Mount super(AbsSpinnerAdapterTestBinding.class, AbsSpinnerBindingObject.class, 341b9940e612fc73202837fbe9db2f9035f307b5d1George Mount R.layout.abs_spinner_adapter_test); 351b9940e612fc73202837fbe9db2f9035f307b5d1George Mount } 361b9940e612fc73202837fbe9db2f9035f307b5d1George Mount 371b9940e612fc73202837fbe9db2f9035f307b5d1George Mount @Override 381b9940e612fc73202837fbe9db2f9035f307b5d1George Mount protected void setUp() throws Exception { 391b9940e612fc73202837fbe9db2f9035f307b5d1George Mount super.setUp(); 4034a18e6a231f3b64726bd93e7e097a0d5a75995dGeorge Mount mView = mBinder.view; 411b9940e612fc73202837fbe9db2f9035f307b5d1George Mount } 421b9940e612fc73202837fbe9db2f9035f307b5d1George Mount 43c7cd9c61e55b43b712d20f855ca59d6fbc49e5b1George Mount @UiThreadTest 441b9940e612fc73202837fbe9db2f9035f307b5d1George Mount public void testEntries() throws Throwable { 451b9940e612fc73202837fbe9db2f9035f307b5d1George Mount if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 461b9940e612fc73202837fbe9db2f9035f307b5d1George Mount validateEntries(); 471b9940e612fc73202837fbe9db2f9035f307b5d1George Mount 481b9940e612fc73202837fbe9db2f9035f307b5d1George Mount changeValues(); 491b9940e612fc73202837fbe9db2f9035f307b5d1George Mount 501b9940e612fc73202837fbe9db2f9035f307b5d1George Mount validateEntries(); 511b9940e612fc73202837fbe9db2f9035f307b5d1George Mount } 521b9940e612fc73202837fbe9db2f9035f307b5d1George Mount } 531b9940e612fc73202837fbe9db2f9035f307b5d1George Mount 54c7cd9c61e55b43b712d20f855ca59d6fbc49e5b1George Mount @UiThreadTest 55c7cd9c61e55b43b712d20f855ca59d6fbc49e5b1George Mount public void testList() throws Throwable { 56c7cd9c61e55b43b712d20f855ca59d6fbc49e5b1George Mount if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 57c7cd9c61e55b43b712d20f855ca59d6fbc49e5b1George Mount validateList(); 58c7cd9c61e55b43b712d20f855ca59d6fbc49e5b1George Mount 59c7cd9c61e55b43b712d20f855ca59d6fbc49e5b1George Mount mBindingObject.getList().add(1, "Cruel"); 60c7cd9c61e55b43b712d20f855ca59d6fbc49e5b1George Mount mBinder.executePendingBindings(); 61c7cd9c61e55b43b712d20f855ca59d6fbc49e5b1George Mount 62c7cd9c61e55b43b712d20f855ca59d6fbc49e5b1George Mount validateList(); 63c7cd9c61e55b43b712d20f855ca59d6fbc49e5b1George Mount } 64c7cd9c61e55b43b712d20f855ca59d6fbc49e5b1George Mount } 65c7cd9c61e55b43b712d20f855ca59d6fbc49e5b1George Mount 661b9940e612fc73202837fbe9db2f9035f307b5d1George Mount private void validateEntries() { 671b9940e612fc73202837fbe9db2f9035f307b5d1George Mount assertEquals(mBindingObject.getEntries().length, mView.getAdapter().getCount()); 681b9940e612fc73202837fbe9db2f9035f307b5d1George Mount CharSequence[] entries = mBindingObject.getEntries(); 691b9940e612fc73202837fbe9db2f9035f307b5d1George Mount SpinnerAdapter adapter = mView.getAdapter(); 701b9940e612fc73202837fbe9db2f9035f307b5d1George Mount for (int i = 0; i < entries.length; i++) { 711b9940e612fc73202837fbe9db2f9035f307b5d1George Mount assertEquals(adapter.getItem(i), entries[i]); 721b9940e612fc73202837fbe9db2f9035f307b5d1George Mount } 731b9940e612fc73202837fbe9db2f9035f307b5d1George Mount } 74c7cd9c61e55b43b712d20f855ca59d6fbc49e5b1George Mount 75c7cd9c61e55b43b712d20f855ca59d6fbc49e5b1George Mount private void validateList() { 76c7cd9c61e55b43b712d20f855ca59d6fbc49e5b1George Mount List<String> entries = mBindingObject.getList(); 77c7cd9c61e55b43b712d20f855ca59d6fbc49e5b1George Mount SpinnerAdapter adapter = mBinder.view2.getAdapter(); 78c7cd9c61e55b43b712d20f855ca59d6fbc49e5b1George Mount assertEquals(entries.size(), adapter.getCount()); 79c7cd9c61e55b43b712d20f855ca59d6fbc49e5b1George Mount for (int i = 0; i < entries.size(); i++) { 80c7cd9c61e55b43b712d20f855ca59d6fbc49e5b1George Mount assertEquals(adapter.getItem(i), entries.get(i)); 81c7cd9c61e55b43b712d20f855ca59d6fbc49e5b1George Mount } 82c7cd9c61e55b43b712d20f855ca59d6fbc49e5b1George Mount } 831b9940e612fc73202837fbe9db2f9035f307b5d1George Mount} 84