11package org .smartregister .reporting ;
22
3+ import net .sqlcipher .database .SQLiteDatabase ;
4+
35import org .junit .Before ;
46import org .junit .Test ;
57import org .junit .runner .RunWith ;
68import org .mockito .Mock ;
9+ import org .mockito .Mockito ;
710import org .mockito .MockitoAnnotations ;
8- import org .powermock .modules .junit4 .PowerMockRunner ;
11+ import org .mockito .junit .MockitoJUnitRunner ;
12+ import org .powermock .reflect .Whitebox ;
913import org .smartregister .Context ;
1014import org .smartregister .commonregistry .CommonFtsObject ;
15+ import org .smartregister .reporting .repository .IndicatorQueryRepository ;
16+ import org .smartregister .reporting .repository .IndicatorRepository ;
1117import org .smartregister .repository .Repository ;
1218
1319import static org .junit .Assert .assertNotNull ;
1420
15- @ RunWith (PowerMockRunner .class )
21+ @ RunWith (MockitoJUnitRunner .class )
1622public class ReportingLibraryTest {
1723
1824 @ Mock
1925 private Context context ;
26+
2027 @ Mock
2128 private Repository repository ;
29+
30+ @ Mock
31+ private IndicatorRepository indicatorRepository ;
32+
33+ @ Mock
34+ private IndicatorQueryRepository indicatorQueryRepository ;
35+
36+
2237 @ Mock
2338 private CommonFtsObject commonFtsObject ;
2439
40+ @ Mock
41+ private SQLiteDatabase sqliteDatabase ;
42+
2543 private int appVersion = 1 ;
2644 private int dbVersion = 1 ;
2745
@@ -46,4 +64,18 @@ public void testThatAllRepositoriesAreInitialized() {
4664 assertNotNull (reportingLibrary .dailyIndicatorCountRepository ());
4765
4866 }
67+
68+ @ Test
69+ public void truncateIndicatorTablesWithDBInvokesRepositoryTruncate () {
70+ ReportingLibrary .init (context , repository , commonFtsObject , appVersion , dbVersion );
71+ ReportingLibrary reportingLibrary = ReportingLibrary .getInstance ();
72+ ReportingLibrary reportingLibrarySpy = Mockito .spy (reportingLibrary );
73+ // Magic
74+ Whitebox .setInternalState (reportingLibrarySpy , "indicatorRepository" , indicatorRepository );
75+ Whitebox .setInternalState (reportingLibrarySpy , "indicatorQueryRepository" , indicatorQueryRepository );
76+
77+ reportingLibrarySpy .truncateIndicatorDefinitionTables (sqliteDatabase );
78+ Mockito .verify (indicatorRepository , Mockito .times (1 )).truncateTable (sqliteDatabase );
79+ Mockito .verify (indicatorQueryRepository , Mockito .times (1 )).truncateTable (sqliteDatabase );
80+ }
4981}
0 commit comments