14a424775eab77d5f9a805ef56eca2e526038f0a1Brad Ebinger/* 24a424775eab77d5f9a805ef56eca2e526038f0a1Brad Ebinger * Copyright (C) 2017 The Android Open Source Project 34a424775eab77d5f9a805ef56eca2e526038f0a1Brad Ebinger * 44a424775eab77d5f9a805ef56eca2e526038f0a1Brad Ebinger * Licensed under the Apache License, Version 2.0 (the "License"); 54a424775eab77d5f9a805ef56eca2e526038f0a1Brad Ebinger * you may not use this file except in compliance with the License. 64a424775eab77d5f9a805ef56eca2e526038f0a1Brad Ebinger * You may obtain a copy of the License at 74a424775eab77d5f9a805ef56eca2e526038f0a1Brad Ebinger * 84a424775eab77d5f9a805ef56eca2e526038f0a1Brad Ebinger * http://www.apache.org/licenses/LICENSE-2.0 94a424775eab77d5f9a805ef56eca2e526038f0a1Brad Ebinger * 104a424775eab77d5f9a805ef56eca2e526038f0a1Brad Ebinger * Unless required by applicable law or agreed to in writing, software 114a424775eab77d5f9a805ef56eca2e526038f0a1Brad Ebinger * distributed under the License is distributed on an "AS IS" BASIS, 124a424775eab77d5f9a805ef56eca2e526038f0a1Brad Ebinger * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 134a424775eab77d5f9a805ef56eca2e526038f0a1Brad Ebinger * See the License for the specific language governing permissions and 144a424775eab77d5f9a805ef56eca2e526038f0a1Brad Ebinger * limitations under the License. 154a424775eab77d5f9a805ef56eca2e526038f0a1Brad Ebinger */ 164a424775eab77d5f9a805ef56eca2e526038f0a1Brad Ebinger 174a424775eab77d5f9a805ef56eca2e526038f0a1Brad Ebingerpackage android.telephony.ims; 184a424775eab77d5f9a805ef56eca2e526038f0a1Brad Ebinger 19014a98a53ae59955940f96c4d17976d5abadf7b6Brad Ebingerimport android.content.Context; 204a424775eab77d5f9a805ef56eca2e526038f0a1Brad Ebingerimport android.telephony.ims.feature.MMTelFeature; 214a424775eab77d5f9a805ef56eca2e526038f0a1Brad Ebingerimport android.telephony.ims.feature.RcsFeature; 224a424775eab77d5f9a805ef56eca2e526038f0a1Brad Ebinger 234a424775eab77d5f9a805ef56eca2e526038f0a1Brad Ebingerimport org.mockito.MockitoAnnotations; 24c386675f3560b33e7e8b097a4567cfa50bab1f0dBrad Ebingerimport org.mockito.Spy; 25c386675f3560b33e7e8b097a4567cfa50bab1f0dBrad Ebinger 26c386675f3560b33e7e8b097a4567cfa50bab1f0dBrad Ebingerimport static org.mockito.Mockito.spy; 274a424775eab77d5f9a805ef56eca2e526038f0a1Brad Ebinger 284a424775eab77d5f9a805ef56eca2e526038f0a1Brad Ebinger/** 294a424775eab77d5f9a805ef56eca2e526038f0a1Brad Ebinger * Test ImsService used by mockito to verify functionality. 304a424775eab77d5f9a805ef56eca2e526038f0a1Brad Ebinger */ 314a424775eab77d5f9a805ef56eca2e526038f0a1Brad Ebinger 324a424775eab77d5f9a805ef56eca2e526038f0a1Brad Ebingerpublic class TestImsService extends ImsService { 334a424775eab77d5f9a805ef56eca2e526038f0a1Brad Ebinger 34c386675f3560b33e7e8b097a4567cfa50bab1f0dBrad Ebinger public TestMMTelFeature mSpyMMTelFeature; 35c386675f3560b33e7e8b097a4567cfa50bab1f0dBrad Ebinger private TestMMTelFeature mTestMMTelFeature; 36c386675f3560b33e7e8b097a4567cfa50bab1f0dBrad Ebinger 37014a98a53ae59955940f96c4d17976d5abadf7b6Brad Ebinger public TestImsService(Context context) { 38014a98a53ae59955940f96c4d17976d5abadf7b6Brad Ebinger attachBaseContext(context); 394a424775eab77d5f9a805ef56eca2e526038f0a1Brad Ebinger MockitoAnnotations.initMocks(this); 40c386675f3560b33e7e8b097a4567cfa50bab1f0dBrad Ebinger // Must create real MMTelFeature to initialize ImsFeature objects. 41c386675f3560b33e7e8b097a4567cfa50bab1f0dBrad Ebinger mTestMMTelFeature = new TestMMTelFeature(); 42c386675f3560b33e7e8b097a4567cfa50bab1f0dBrad Ebinger mSpyMMTelFeature = spy(mTestMMTelFeature); 434a424775eab77d5f9a805ef56eca2e526038f0a1Brad Ebinger } 444a424775eab77d5f9a805ef56eca2e526038f0a1Brad Ebinger 454a424775eab77d5f9a805ef56eca2e526038f0a1Brad Ebinger @Override 464a424775eab77d5f9a805ef56eca2e526038f0a1Brad Ebinger public MMTelFeature onCreateEmergencyMMTelImsFeature(int slotId) { 474a424775eab77d5f9a805ef56eca2e526038f0a1Brad Ebinger return null; 484a424775eab77d5f9a805ef56eca2e526038f0a1Brad Ebinger } 494a424775eab77d5f9a805ef56eca2e526038f0a1Brad Ebinger 504a424775eab77d5f9a805ef56eca2e526038f0a1Brad Ebinger @Override 514a424775eab77d5f9a805ef56eca2e526038f0a1Brad Ebinger public MMTelFeature onCreateMMTelImsFeature(int slotId) { 52c386675f3560b33e7e8b097a4567cfa50bab1f0dBrad Ebinger return mSpyMMTelFeature; 534a424775eab77d5f9a805ef56eca2e526038f0a1Brad Ebinger } 544a424775eab77d5f9a805ef56eca2e526038f0a1Brad Ebinger 554a424775eab77d5f9a805ef56eca2e526038f0a1Brad Ebinger @Override 564a424775eab77d5f9a805ef56eca2e526038f0a1Brad Ebinger public RcsFeature onCreateRcsFeature(int slotId) { 574a424775eab77d5f9a805ef56eca2e526038f0a1Brad Ebinger return null; 584a424775eab77d5f9a805ef56eca2e526038f0a1Brad Ebinger } 594a424775eab77d5f9a805ef56eca2e526038f0a1Brad Ebinger} 60