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