1d3dc1b70aa71e8343dbf5e05a2feeb72bb29b6ecYigit Boyar/* 2d3dc1b70aa71e8343dbf5e05a2feeb72bb29b6ecYigit Boyar * Copyright (C) 2015 The Android Open Source Project 3d3dc1b70aa71e8343dbf5e05a2feeb72bb29b6ecYigit Boyar * Licensed under the Apache License, Version 2.0 (the "License"); 4d3dc1b70aa71e8343dbf5e05a2feeb72bb29b6ecYigit Boyar * you may not use this file except in compliance with the License. 5d3dc1b70aa71e8343dbf5e05a2feeb72bb29b6ecYigit Boyar * You may obtain a copy of the License at 6d3dc1b70aa71e8343dbf5e05a2feeb72bb29b6ecYigit Boyar * http://www.apache.org/licenses/LICENSE-2.0 7d3dc1b70aa71e8343dbf5e05a2feeb72bb29b6ecYigit Boyar * Unless required by applicable law or agreed to in writing, software 8d3dc1b70aa71e8343dbf5e05a2feeb72bb29b6ecYigit Boyar * distributed under the License is distributed on an "AS IS" BASIS, 9d3dc1b70aa71e8343dbf5e05a2feeb72bb29b6ecYigit Boyar * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 10d3dc1b70aa71e8343dbf5e05a2feeb72bb29b6ecYigit Boyar * See the License for the specific language governing permissions and 11d3dc1b70aa71e8343dbf5e05a2feeb72bb29b6ecYigit Boyar * limitations under the License. 12d3dc1b70aa71e8343dbf5e05a2feeb72bb29b6ecYigit Boyar */ 13d3dc1b70aa71e8343dbf5e05a2feeb72bb29b6ecYigit Boyar 14d3dc1b70aa71e8343dbf5e05a2feeb72bb29b6ecYigit Boyarpackage android.databinding; 15d3dc1b70aa71e8343dbf5e05a2feeb72bb29b6ecYigit Boyar 16d3dc1b70aa71e8343dbf5e05a2feeb72bb29b6ecYigit Boyar 17d3dc1b70aa71e8343dbf5e05a2feeb72bb29b6ecYigit Boyarimport android.test.AndroidTestCase; 18d3dc1b70aa71e8343dbf5e05a2feeb72bb29b6ecYigit Boyarimport android.view.View; 19d3dc1b70aa71e8343dbf5e05a2feeb72bb29b6ecYigit Boyar 20d3dc1b70aa71e8343dbf5e05a2feeb72bb29b6ecYigit Boyarpublic class DataBindingMapperTest extends AndroidTestCase { 21d3dc1b70aa71e8343dbf5e05a2feeb72bb29b6ecYigit Boyar public void testNotDataBindingId() { 22d3dc1b70aa71e8343dbf5e05a2feeb72bb29b6ecYigit Boyar View view = new View(getContext()); 23d3dc1b70aa71e8343dbf5e05a2feeb72bb29b6ecYigit Boyar view.setTag("layout/unexpected"); 24d3dc1b70aa71e8343dbf5e05a2feeb72bb29b6ecYigit Boyar android.databinding.DataBinderMapper mapper = new android.databinding.DataBinderMapper(); 25d3dc1b70aa71e8343dbf5e05a2feeb72bb29b6ecYigit Boyar ViewDataBinding binding = mapper.getDataBinder(null, view, 1); 26d3dc1b70aa71e8343dbf5e05a2feeb72bb29b6ecYigit Boyar assertNull(binding); 27d3dc1b70aa71e8343dbf5e05a2feeb72bb29b6ecYigit Boyar } 28d3dc1b70aa71e8343dbf5e05a2feeb72bb29b6ecYigit Boyar public void testInvalidView() { 29d3dc1b70aa71e8343dbf5e05a2feeb72bb29b6ecYigit Boyar View view = new View(getContext()); 30d3dc1b70aa71e8343dbf5e05a2feeb72bb29b6ecYigit Boyar view.setTag("layout/unexpected"); 31d3dc1b70aa71e8343dbf5e05a2feeb72bb29b6ecYigit Boyar android.databinding.DataBinderMapper mapper = new android.databinding.DataBinderMapper(); 32d3dc1b70aa71e8343dbf5e05a2feeb72bb29b6ecYigit Boyar Throwable error = null; 33d3dc1b70aa71e8343dbf5e05a2feeb72bb29b6ecYigit Boyar try { 34d3dc1b70aa71e8343dbf5e05a2feeb72bb29b6ecYigit Boyar mapper.getDataBinder(null, view, android.databinding.testapp.R.layout.multi_res_layout); 35d3dc1b70aa71e8343dbf5e05a2feeb72bb29b6ecYigit Boyar } catch (Throwable t) { 36d3dc1b70aa71e8343dbf5e05a2feeb72bb29b6ecYigit Boyar error = t; 37d3dc1b70aa71e8343dbf5e05a2feeb72bb29b6ecYigit Boyar } 38d3dc1b70aa71e8343dbf5e05a2feeb72bb29b6ecYigit Boyar assertNotNull(error); 39d3dc1b70aa71e8343dbf5e05a2feeb72bb29b6ecYigit Boyar assertEquals("The tag for multi_res_layout is invalid. Received: layout/unexpected", 40d3dc1b70aa71e8343dbf5e05a2feeb72bb29b6ecYigit Boyar error.getMessage()); 41d3dc1b70aa71e8343dbf5e05a2feeb72bb29b6ecYigit Boyar 42d3dc1b70aa71e8343dbf5e05a2feeb72bb29b6ecYigit Boyar } 43d3dc1b70aa71e8343dbf5e05a2feeb72bb29b6ecYigit Boyar} 44