I am writing tests for ContentProvider , in insert I am reporting changes with getContext().getContentResolver().notifyChange(mUri, null);
my test class extends ProviderTestCase2 . I created the following layout of the ContentObserver class:
private class ContentObserverMock extends ContentObserver { public boolean changed = false; public ContentObserverMock(Handler handler) { super(handler);
and this is a test example:
public void testInsertNotifyContentChanges() { ContentResolver resolver = mContext.getContentResolver(); ContentObserverMock co = new ContentObserverMock(null); resolver.registerContentObserver(CONTENT_URI, true, co); ContentValues values = new ContentValues(); values.put(COLUMN_TAG_ID, 1); values.put(COLUMN_TAG_CONTENT, "TEST"); resolver.insert(CONTENT_URI, values); assertTrue(co.changed); }
it looks like onChange never called, I also tried ContentObserverMock co = new ContentObserverMock(new Handler()); with the same result.
what am i doing wrong here?
android android-contentresolver android-testing
Gal ben-haim
source share