BluetoothMapContentObserverTest.java revision acc87cca571c89322980423e190b188fdd8fa265
1package com.android.bluetooth.map; 2 3import android.content.Context; 4import android.content.ContentResolver; 5import android.content.ContentProvider; 6import android.database.sqlite.SQLiteException; 7import android.database.Cursor; 8import android.net.Uri; 9import android.os.Looper; 10import android.os.RemoteException; 11import android.os.UserManager; 12import android.provider.Telephony.Sms; 13import android.test.AndroidTestCase; 14import android.test.mock.MockContentResolver; 15import android.test.mock.MockContentProvider; 16import android.telephony.TelephonyManager; 17import android.util.Log; 18 19import junit.framework.Assert; 20 21import static org.mockito.Mockito.mock; 22import static org.mockito.Mockito.when; 23 24public class BluetoothMapContentObserverTest extends AndroidTestCase { 25 26 class ExceptionTestProvider extends MockContentProvider { 27 public ExceptionTestProvider(Context context) { 28 super(context); 29 } 30 31 @Override 32 public Cursor query(Uri uri, String[] b, String s, String[] c, String d) { 33 throw new SQLiteException(); 34 } 35 } 36 37 public void testInitMsgList() { 38 if (Looper.myLooper() == null) Looper.prepare(); 39 40 Context mockContext = mock(Context.class); 41 MockContentResolver mockResolver = new MockContentResolver(); 42 ExceptionTestProvider mockProvider = new ExceptionTestProvider(mockContext); 43 mockResolver.addProvider("sms", mockProvider); 44 45 TelephonyManager mockTelephony = mock(TelephonyManager.class); 46 UserManager mockUserService = mock(UserManager.class); 47 BluetoothMapMasInstance mockMas = mock(BluetoothMapMasInstance.class); 48 49 // Functions that get called when BluetoothMapContentObserver is created 50 when(mockUserService.isUserUnlocked()).thenReturn(true); 51 when(mockContext.getContentResolver()).thenReturn(mockResolver); 52 when(mockContext.getSystemService(Context.TELEPHONY_SERVICE)) 53 .thenReturn(mockTelephony); 54 when(mockContext.getSystemService(Context.USER_SERVICE)) 55 .thenReturn(mockUserService); 56 57 BluetoothMapContentObserver observer; 58 try { 59 // The constructor of BluetoothMapContentObserver calls initMsgList 60 observer = new BluetoothMapContentObserver(mockContext, null, 61 mockMas, null, true); 62 } catch(RemoteException e) { 63 fail("Failed to created BluetoothMapContentObserver object"); 64 } catch(SQLiteException e) { 65 fail("Threw SQLiteException instead of failing cleanly"); 66 } 67 } 68} 69