1 /*
2  * Copyright (C) 2017 The Android Open Source Project
3  *
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  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
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 package com.android.providers.telephony;
17 
18 import android.database.sqlite.SQLiteDatabase;
19 import android.database.sqlite.SQLiteOpenHelper;
20 import android.util.Log;
21 
22 import com.android.providers.telephony.CarrierProvider;
23 import static com.android.providers.telephony.CarrierDatabaseHelper.*;
24 
25 /**
26  * A subclass of TelephonyProvider used for testing on an in-memory database
27  */
28 public class CarrierProviderTestable extends CarrierProvider {
29     private static final String TAG = "CarrierProviderTestable";
30 
31     private InMemoryCarrierProviderDbHelper mDbHelper;
32 
33     @Override
onCreate()34     public boolean onCreate() {
35         Log.d(TAG, "onCreate called: mDbHelper = new InMemoryCarrierProviderDbHelper()");
36         mDbHelper = new InMemoryCarrierProviderDbHelper();
37         return true;
38     }
39 
40     // close mDbHelper database object
closeDatabase()41     protected void closeDatabase() {
42         mDbHelper.close();
43     }
44 
45     @Override
getReadableDatabase()46     SQLiteDatabase getReadableDatabase() {
47         Log.d(TAG, "getReadableDatabase called" + mDbHelper.getReadableDatabase());
48         return mDbHelper.getReadableDatabase();
49     }
50 
51     @Override
getWritableDatabase()52     SQLiteDatabase getWritableDatabase() {
53         Log.d(TAG, "getWritableDatabase called" + mDbHelper.getWritableDatabase());
54         return mDbHelper.getWritableDatabase();
55     }
56 
57     /**
58      * An in memory DB for CarrierProviderTestable to use
59      */
60     public static class InMemoryCarrierProviderDbHelper extends SQLiteOpenHelper {
61 
62 
InMemoryCarrierProviderDbHelper()63         public InMemoryCarrierProviderDbHelper() {
64             super(null,      // no context is needed for in-memory db
65                     null,    // db file name is null for in-memory db
66                     null,    // CursorFactory is null by default
67                     1);      // db version is no-op for tests
68             Log.d(TAG, "InMemoryCarrierProviderDbHelper creating in-memory database");
69         }
70 
71         @Override
onCreate(SQLiteDatabase db)72         public void onCreate(SQLiteDatabase db) {
73 
74             //set up the Carrier key table
75             Log.d(TAG, "InMemoryCarrierProviderDbHelper onCreate creating the carrier key table");
76             db.execSQL(getStringForCarrierKeyTableCreation(CARRIER_KEY_TABLE));
77         }
78 
79         @Override
onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)80         public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
81             Log.d(TAG, "InMemoryCarrierProviderDbHelper onUpgrade doing nothing");
82             return;
83         }
84     }
85 }
86