• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /**
2  * Copyright (C) 2016 The Android Open Source Project
3  * <p>
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  * <p>
8  * http://www.apache.org/licenses/LICENSE-2.0
9  * <p>
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.android.cellbroadcastreceiver;
18 
19 import android.app.Service;
20 import android.content.ComponentName;
21 import android.content.Context;
22 import android.content.ContextWrapper;
23 import android.content.Intent;
24 import android.telephony.CarrierConfigManager;
25 import android.test.ServiceTestCase;
26 import android.util.Log;
27 
28 import org.junit.Before;
29 import org.mockito.Mock;
30 import org.mockito.MockitoAnnotations;
31 
32 public abstract class CellBroadcastServiceTestCase<T extends Service> extends ServiceTestCase<T> {
33 
34     @Mock
35     protected CarrierConfigManager mMockedCarrierConfigManager;
36 
37     Intent mServiceIntentToVerify;
38 
39     Intent mActivityIntentToVerify;
40 
CellBroadcastServiceTestCase(Class<T> serviceClass)41     CellBroadcastServiceTestCase(Class<T> serviceClass) {
42         super(serviceClass);
43     }
44 
waitForMs(long ms)45     protected static void waitForMs(long ms) {
46         try {
47             Thread.sleep(ms);
48         } catch (InterruptedException e) {
49         }
50     }
51 
52     private class TestContextWrapper extends ContextWrapper {
53 
54         private final String TAG = TestContextWrapper.class.getSimpleName();
55 
TestContextWrapper(Context base)56         public TestContextWrapper(Context base) {
57             super(base);
58         }
59 
60         @Override
startService(Intent service)61         public ComponentName startService(Intent service) {
62             mServiceIntentToVerify = service;
63             return null;
64         }
65 
66         @Override
startActivity(Intent intent)67         public void startActivity(Intent intent) {
68             mActivityIntentToVerify = intent;
69         }
70 
71         @Override
getApplicationContext()72         public Context getApplicationContext() {
73             return this;
74         }
75 
76         @Override
getSystemService(String name)77         public Object getSystemService(String name) {
78             if (name.equals(Context.CARRIER_CONFIG_SERVICE)) {
79                 Log.d(TAG, "return mocked svc for " + name + ", " + mMockedCarrierConfigManager);
80                 return mMockedCarrierConfigManager;
81             }
82             Log.d(TAG, "return real service " + name);
83             return super.getSystemService(name);
84         }
85     }
86 
87     @Before
setUp()88     public void setUp() throws Exception {
89         MockitoAnnotations.initMocks(this);
90         mContext = new TestContextWrapper(getContext());
91         setContext(mContext);
92     }
93 }
94 
95