diff --git a/opensrp-chw-core/build.gradle b/opensrp-chw-core/build.gradle index 9ba8b0e830..5b82caca71 100644 --- a/opensrp-chw-core/build.gradle +++ b/opensrp-chw-core/build.gradle @@ -152,6 +152,7 @@ dependencies { exclude group: 'com.android.support', module: 'design' exclude group: 'io.ona.rdt-capture', module: 'lib' exclude group: 'com.google.guava', module: 'guava' + exclude group: 'com.github.raihan-mpower', module: 'FancyAlertDialog-Android' } compileOnly 'com.ibm.fhir:fhir-model:4.7.0' diff --git a/opensrp-chw-core/src/main/res/anim/slide_in.xml b/opensrp-chw-core/src/main/res/anim/slide_in.xml new file mode 100644 index 0000000000..369ee121d5 --- /dev/null +++ b/opensrp-chw-core/src/main/res/anim/slide_in.xml @@ -0,0 +1,6 @@ + + \ No newline at end of file diff --git a/opensrp-chw-core/src/main/res/anim/slide_out.xml b/opensrp-chw-core/src/main/res/anim/slide_out.xml new file mode 100644 index 0000000000..df981bde8a --- /dev/null +++ b/opensrp-chw-core/src/main/res/anim/slide_out.xml @@ -0,0 +1,6 @@ + + \ No newline at end of file diff --git a/opensrp-chw-core/src/test/java/org/smartregister/chw/core/repository/MalariaRegisterRepositoryTest.java b/opensrp-chw-core/src/test/java/org/smartregister/chw/core/repository/MalariaRegisterRepositoryTest.java new file mode 100644 index 0000000000..baa0b14e2e --- /dev/null +++ b/opensrp-chw-core/src/test/java/org/smartregister/chw/core/repository/MalariaRegisterRepositoryTest.java @@ -0,0 +1,94 @@ +package org.smartregister.chw.core.repository; + +import static org.smartregister.repository.BaseRepository.COLLATE_NOCASE; + +import net.sqlcipher.MatrixCursor; +import net.sqlcipher.database.SQLiteDatabase; + +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.mockito.ArgumentCaptor; +import org.mockito.Captor; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.smartregister.chw.anc.util.Constants; +import org.smartregister.chw.core.BaseRobolectricTest; + +import java.util.HashMap; + +public class MalariaRegisterRepositoryTest extends BaseRobolectricTest { + @Mock + private MalariaRegisterRepository malariaRegisterRepository; + + @Mock + private SQLiteDatabase database; + + @Captor + ArgumentCaptor tableNameCaptor; + @Captor + ArgumentCaptor tableColumnsCaptor; + @Captor + ArgumentCaptor selectionCaptor; + @Captor + ArgumentCaptor selectionArgsCaptor; + @Captor + ArgumentCaptor groupByCaptor; + @Captor + ArgumentCaptor havingCaptor; + @Captor + ArgumentCaptor orderByCaptor; + + + @Before + public void setUp() throws Exception { + malariaRegisterRepository = Mockito.spy(new MalariaRegisterRepository()); + Mockito.doReturn(database).when(malariaRegisterRepository).getReadableDatabase(); + } + + @Test + public void testDatabaseQueryIsCreatedWithTheCorrectArgumentInGetFamilyNamePhone(){ + String baseEntityId = "4b3e6408-0549-470a-b24a-82ac71180a30"; + String selection = "base_entity_id = ? "+COLLATE_NOCASE; + malariaRegisterRepository.getFamilyNameAndPhone(baseEntityId); + Mockito.verify(database).query(tableNameCaptor.capture(), tableColumnsCaptor.capture(), selectionCaptor.capture(), selectionArgsCaptor.capture(), + groupByCaptor.capture(), havingCaptor.capture(), orderByCaptor.capture()); + Assert.assertEquals(MalariaRegisterRepository.TABLE_NAME, tableNameCaptor.getValue()); + Assert.assertArrayEquals(MalariaRegisterRepository.TABLE_COLUMNS, tableColumnsCaptor.getValue()); + Assert.assertArrayEquals(new String[]{baseEntityId}, selectionArgsCaptor.getValue()); + Assert.assertEquals(selection, selectionCaptor.getValue()); + } + + + + @Test + public void testGetFamilyNameAndPhoneWithBaseEntityIdReturnsCorrectDetails(){ + + String correctBaseEntityId = "4b3e6408-0549-470a-b24a-82ac71180a30"; + + HashMap results = new HashMap<>(); + results.put(Constants.ANC_MEMBER_OBJECTS.FAMILY_HEAD_NAME, "Emilio Mwai Kibaki"); + results.put(Constants.ANC_MEMBER_OBJECTS.FAMILY_HEAD_PHONE, "0799938383"); + + MatrixCursor mockCursor = new MatrixCursor(new String[] + { + MalariaRegisterRepository.FIRST_NAME, + MalariaRegisterRepository.LAST_NAME, + MalariaRegisterRepository.MIDDLE_NAME, + MalariaRegisterRepository.PHONE_NUMBER + }); + + mockCursor.newRow() + .add("Emilio") + .add("Kibaki") + .add("Mwai") + .add("0799938383"); + + Mockito.doReturn(mockCursor).when(database).query(Mockito.any(), Mockito.any(), Mockito.any(), + Mockito.any(), Mockito.any(), Mockito.any(), Mockito.any()); + + Assert.assertEquals(results, malariaRegisterRepository.getFamilyNameAndPhone(correctBaseEntityId)); + + } + +}