1e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin/*
2e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin * Copyright (C) 2013 The Android Open Source Project
3e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin *
4e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin * Licensed under the Apache License, Version 2.0 (the "License");
5e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin * you may not use this file except in compliance with the License.
6e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin * You may obtain a copy of the License at
7e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin *
8e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin *      http://www.apache.org/licenses/LICENSE-2.0
9e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin *
10e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin * Unless required by applicable law or agreed to in writing, software
11e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin * distributed under the License is distributed on an "AS IS" BASIS,
12e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin * See the License for the specific language governing permissions and
14e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin * limitations under the License.
15e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin */
16e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin
17e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkinpackage com.android.mediaframeworktest.unit;
18e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin
192f1a2e423e0fbb64467d6fcfa4e82c6384f31210Eino-Ville Talvalaimport android.hardware.camera2.CameraAccessException;
202f1a2e423e0fbb64467d6fcfa4e82c6384f31210Eino-Ville Talvalaimport android.hardware.camera2.utils.CameraRuntimeException;
212f1a2e423e0fbb64467d6fcfa4e82c6384f31210Eino-Ville Talvalaimport android.hardware.camera2.utils.UncheckedThrow;
22e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkinimport android.test.suitebuilder.annotation.SmallTest;
23e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin
24e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkinimport junit.framework.Assert;
25e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin
26e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkinpublic class CameraUtilsRuntimeExceptionTest extends junit.framework.TestCase {
27e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin
28e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin    @SmallTest
29e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin    public void testCameraRuntimeException1() {
30e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin        try {
31e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin            CameraRuntimeException runtimeExc = new CameraRuntimeException(12345);
32e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin            throw runtimeExc.asChecked();
33e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin        } catch (CameraAccessException e) {
34e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin            assertEquals(12345, e.getReason());
35e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin            assertNull(e.getMessage());
36e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin            assertNull(e.getCause());
37e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin        }
38e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin    }
39e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin
40e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin    @SmallTest
41e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin    public void testCameraRuntimeException2() {
42e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin        try {
43e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin            CameraRuntimeException runtimeExc = new CameraRuntimeException(12345, "Hello");
44e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin            throw runtimeExc.asChecked();
45e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin        } catch (CameraAccessException e) {
46e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin            assertEquals(12345, e.getReason());
47e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin            assertEquals("Hello", e.getMessage());
48e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin            assertNull(e.getCause());
49e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin        }
50e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin    }
51e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin
52e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin    @SmallTest
53e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin    public void testCameraRuntimeException3() {
54e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin        Throwable cause = new IllegalStateException("For great justice");
55e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin        try {
56e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin            CameraRuntimeException runtimeExc = new CameraRuntimeException(12345, cause);
57e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin            throw runtimeExc.asChecked();
58e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin        } catch (CameraAccessException e) {
59e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin            assertEquals(12345, e.getReason());
60e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin            assertNull(e.getMessage());
61e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin            assertEquals(cause, e.getCause());
62e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin        }
63e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin    }
64e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin
65e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin    @SmallTest
66e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin    public void testCameraRuntimeException4() {
67e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin        Throwable cause = new IllegalStateException("For great justice");
68e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin        try {
69e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin            CameraRuntimeException runtimeExc = new CameraRuntimeException(12345, "Hello", cause);
70e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin            throw runtimeExc.asChecked();
71e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin        } catch (CameraAccessException e) {
72e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin            assertEquals(12345, e.getReason());
73e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin            assertEquals("Hello", e.getMessage());
74e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin            assertEquals(cause, e.getCause());
75e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin        }
76e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin    }
77e363fbb2647aeb5ef4c87160d84c6b9ae8d45598Igor Murashkin}
78