1b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxu/* 2b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxu * Copyright (C) 2016 The Android Open Source Project 3b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxu * 4b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxu * Licensed under the Apache License, Version 2.0 (the "License"); 5b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxu * you may not use this file except in compliance with the License. 6b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxu * You may obtain a copy of the License at 7b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxu * 8b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxu * http://www.apache.org/licenses/LICENSE-2.0 9b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxu * 10b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxu * Unless required by applicable law or agreed to in writing, software 11b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxu * distributed under the License is distributed on an "AS IS" BASIS, 12b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxu * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxu * See the License for the specific language governing permissions and 14b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxu * limitations under the License. 15b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxu */ 16b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxupackage com.android.internal.telephony.imsphone; 17b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxu 18b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxuimport android.os.HandlerThread; 19b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxuimport android.test.suitebuilder.annotation.SmallTest; 20b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxuimport com.android.internal.telephony.PhoneNotifier; 21b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxuimport com.android.internal.telephony.TelephonyTest; 22b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxu 23b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxuimport org.junit.After; 24b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxuimport org.junit.Before; 25b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxuimport org.junit.Test; 26b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxuimport org.mockito.Mock; 27b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxuimport static org.junit.Assert.assertNotNull; 28b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxuimport static org.junit.Assert.assertEquals; 29b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxuimport static org.mockito.Mockito.eq; 30b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxuimport static org.mockito.Mockito.times; 31b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxuimport static org.mockito.Mockito.verify; 32b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxu 33b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxupublic class ImsPhoneFactoryTest extends TelephonyTest { 34b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxu 35b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxu @Mock 36b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxu private PhoneNotifier mPhoneNotifer; 37b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxu private ImsPhone mImsPhoneUT; 387e9240253edb59e0aa657de434faa1ccdf17a742Amit Mahajan private ImsPhoneFactoryHandler mImsPhoneFactoryHandler; 39b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxu 40b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxu private class ImsPhoneFactoryHandler extends HandlerThread { 41b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxu 42b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxu private ImsPhoneFactoryHandler(String name) { 43b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxu super(name); 44b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxu } 45b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxu @Override 46b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxu public void onLooperPrepared() { 47b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxu mImsPhoneUT = ImsPhoneFactory.makePhone(mContext, mPhoneNotifer, mPhone); 48b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxu setReady(true); 49b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxu } 50b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxu } 51b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxu 52b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxu @Before 53b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxu public void setUp() throws Exception { 54b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxu super.setUp(this.getClass().getSimpleName()); 557e9240253edb59e0aa657de434faa1ccdf17a742Amit Mahajan mImsPhoneFactoryHandler = new ImsPhoneFactoryHandler(this.getClass().getSimpleName()); 567e9240253edb59e0aa657de434faa1ccdf17a742Amit Mahajan mImsPhoneFactoryHandler.start(); 57b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxu 58b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxu waitUntilReady(); 59b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxu } 60b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxu 61b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxu @After 62b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxu public void tearDown() throws Exception { 63ae6e8f99bdb297f906d6dcdc0a385ba27eee47fdJack Yu mImsPhoneFactoryHandler.quit(); 64b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxu super.tearDown(); 65b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxu } 66b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxu 67b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxu @Test @SmallTest 68b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxu public void testMakeImsPhone() throws Exception { 69b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxu assertNotNull(mImsPhoneUT); 70b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxu assertEquals(mPhone, mImsPhoneUT.getDefaultPhone()); 71b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxu 72b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxu mImsPhoneUT.notifyDataActivity(); 73b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxu verify(mPhoneNotifer, times(1)).notifyDataActivity(eq(mImsPhoneUT)); 74b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxu } 75b15af5a82377b8ad6d46b5f93186510b56b4a449fionaxu} 76