Loading src/com/android/contacts/database/SimContactDaoImpl.java +4 −0 Original line number Original line Diff line number Diff line Loading @@ -274,6 +274,10 @@ public class SimContactDaoImpl extends SimContactDao { private ArrayList<SimContact> loadFrom(Uri uri) { private ArrayList<SimContact> loadFrom(Uri uri) { synchronized (SIM_READ_LOCK) { synchronized (SIM_READ_LOCK) { final Cursor cursor = mResolver.query(uri, null, null, null, null); final Cursor cursor = mResolver.query(uri, null, null, null, null); if (cursor == null) { // Assume null means there are no SIM contacts. return new ArrayList<>(0); } try { try { return loadFromCursor(cursor); return loadFromCursor(cursor); Loading tests/src/com/android/contacts/database/SimContactDaoTests.java +26 −0 Original line number Original line Diff line number Diff line Loading @@ -26,14 +26,19 @@ import static org.hamcrest.Matchers.allOf; import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.equalTo; import static org.junit.Assert.assertThat; import static org.junit.Assert.assertThat; import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertTrue; import static org.mockito.Matchers.any; import static org.mockito.Matchers.anyString; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import static org.mockito.Mockito.when; import android.content.ContentProvider; import android.content.ContentProviderOperation; import android.content.ContentProviderOperation; import android.content.ContentResolver; import android.content.ContentResolver; import android.content.Context; import android.content.Context; import android.content.OperationApplicationException; import android.content.OperationApplicationException; import android.database.Cursor; import android.database.Cursor; import android.net.Uri; import android.os.CancellationSignal; import android.os.RemoteException; import android.os.RemoteException; import android.provider.ContactsContract; import android.provider.ContactsContract; import android.provider.ContactsContract.CommonDataKinds.Email; import android.provider.ContactsContract.CommonDataKinds.Email; Loading Loading @@ -701,6 +706,27 @@ public class SimContactDaoTests { .loadContactsForSim(new SimCard("123", "carrier", "sim", null, "us")); .loadContactsForSim(new SimCard("123", "carrier", "sim", null, "us")); assertTrue(result.isEmpty()); assertTrue(result.isEmpty()); } } @Test public void returnsEmptyListForNullCursor() { mContext = mock(MockContext.class); final MockContentResolver mockResolver = new MockContentResolver(); final ContentProvider mockProvider = mock(android.test.mock.MockContentProvider.class); when(mockProvider.query(any(Uri.class), any(String[].class), anyString(), any(String[].class), anyString())) .thenReturn(null); when(mockProvider.query(any(Uri.class), any(String[].class), anyString(), any(String[].class), anyString(), any(CancellationSignal.class))) .thenReturn(null); mockResolver.addProvider("icc", mockProvider); when(mContext.getContentResolver()).thenReturn(mockResolver); final SimContactDao sut = SimContactDao.create(mContext); final List<SimContact> result = sut .loadContactsForSim(new SimCard("123", "carrier", "sim", null, "us")); assertTrue(result.isEmpty()); } } } @LargeTest @LargeTest Loading Loading
src/com/android/contacts/database/SimContactDaoImpl.java +4 −0 Original line number Original line Diff line number Diff line Loading @@ -274,6 +274,10 @@ public class SimContactDaoImpl extends SimContactDao { private ArrayList<SimContact> loadFrom(Uri uri) { private ArrayList<SimContact> loadFrom(Uri uri) { synchronized (SIM_READ_LOCK) { synchronized (SIM_READ_LOCK) { final Cursor cursor = mResolver.query(uri, null, null, null, null); final Cursor cursor = mResolver.query(uri, null, null, null, null); if (cursor == null) { // Assume null means there are no SIM contacts. return new ArrayList<>(0); } try { try { return loadFromCursor(cursor); return loadFromCursor(cursor); Loading
tests/src/com/android/contacts/database/SimContactDaoTests.java +26 −0 Original line number Original line Diff line number Diff line Loading @@ -26,14 +26,19 @@ import static org.hamcrest.Matchers.allOf; import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.equalTo; import static org.junit.Assert.assertThat; import static org.junit.Assert.assertThat; import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertTrue; import static org.mockito.Matchers.any; import static org.mockito.Matchers.anyString; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import static org.mockito.Mockito.when; import android.content.ContentProvider; import android.content.ContentProviderOperation; import android.content.ContentProviderOperation; import android.content.ContentResolver; import android.content.ContentResolver; import android.content.Context; import android.content.Context; import android.content.OperationApplicationException; import android.content.OperationApplicationException; import android.database.Cursor; import android.database.Cursor; import android.net.Uri; import android.os.CancellationSignal; import android.os.RemoteException; import android.os.RemoteException; import android.provider.ContactsContract; import android.provider.ContactsContract; import android.provider.ContactsContract.CommonDataKinds.Email; import android.provider.ContactsContract.CommonDataKinds.Email; Loading Loading @@ -701,6 +706,27 @@ public class SimContactDaoTests { .loadContactsForSim(new SimCard("123", "carrier", "sim", null, "us")); .loadContactsForSim(new SimCard("123", "carrier", "sim", null, "us")); assertTrue(result.isEmpty()); assertTrue(result.isEmpty()); } } @Test public void returnsEmptyListForNullCursor() { mContext = mock(MockContext.class); final MockContentResolver mockResolver = new MockContentResolver(); final ContentProvider mockProvider = mock(android.test.mock.MockContentProvider.class); when(mockProvider.query(any(Uri.class), any(String[].class), anyString(), any(String[].class), anyString())) .thenReturn(null); when(mockProvider.query(any(Uri.class), any(String[].class), anyString(), any(String[].class), anyString(), any(CancellationSignal.class))) .thenReturn(null); mockResolver.addProvider("icc", mockProvider); when(mContext.getContentResolver()).thenReturn(mockResolver); final SimContactDao sut = SimContactDao.create(mContext); final List<SimContact> result = sut .loadContactsForSim(new SimCard("123", "carrier", "sim", null, "us")); assertTrue(result.isEmpty()); } } } @LargeTest @LargeTest Loading