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