Skip to content

Commit a92fd08

Browse files
authored
Merge pull request #39 from OpenSRP/38-refactor-check-has-initialized-indicators
38 Refactor check has initialized indicators
2 parents 69f7886 + 2bdaa9a commit a92fd08

File tree

3 files changed

+40
-5
lines changed

3 files changed

+40
-5
lines changed

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
VERSION_NAME=0.0.5-SNAPSHOT
1+
VERSION_NAME=0.0.6-SNAPSHOT
22
VERSION_CODE=1
33
GROUP=org.smartregister
44
POM_SETTING_DESCRIPTION=OpenSRP Client Reporting Library

opensrp-reporting/src/main/java/org/smartregister/reporting/ReportingLibrary.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -187,18 +187,21 @@ private boolean hasInitializedIndicators(SQLiteDatabase sqLiteDatabase) {
187187
if (!appOnDebugMode && (!isAppUpdated() || isIndicatorsInitialized())) {
188188
return true;
189189
}
190+
truncateIndicatorDefinitionTables(sqLiteDatabase);
191+
return false;
192+
}
190193

194+
public void truncateIndicatorDefinitionTables(SQLiteDatabase sqLiteDatabase) {
191195
if (sqLiteDatabase != null) {
192196
indicatorRepository.truncateTable(sqLiteDatabase);
193197
indicatorQueryRepository.truncateTable(sqLiteDatabase);
194198
} else {
195199
indicatorRepository.truncateTable();
196200
indicatorQueryRepository.truncateTable();
197201
}
198-
return false;
199202
}
200203

201-
private void readConfigFile(String configFilePath, SQLiteDatabase sqLiteDatabase) {
204+
public void readConfigFile(String configFilePath, SQLiteDatabase sqLiteDatabase) {
202205
initYamlIndicatorConfig();
203206
Iterable<Object> indicatorsFromFile = null;
204207
try {

opensrp-reporting/src/test/java/org/smartregister/reporting/ReportingLibraryTest.java

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,45 @@
11
package org.smartregister.reporting;
22

3+
import net.sqlcipher.database.SQLiteDatabase;
4+
35
import org.junit.Before;
46
import org.junit.Test;
57
import org.junit.runner.RunWith;
68
import org.mockito.Mock;
9+
import org.mockito.Mockito;
710
import org.mockito.MockitoAnnotations;
8-
import org.powermock.modules.junit4.PowerMockRunner;
11+
import org.mockito.junit.MockitoJUnitRunner;
12+
import org.powermock.reflect.Whitebox;
913
import org.smartregister.Context;
1014
import org.smartregister.commonregistry.CommonFtsObject;
15+
import org.smartregister.reporting.repository.IndicatorQueryRepository;
16+
import org.smartregister.reporting.repository.IndicatorRepository;
1117
import org.smartregister.repository.Repository;
1218

1319
import static org.junit.Assert.assertNotNull;
1420

15-
@RunWith(PowerMockRunner.class)
21+
@RunWith(MockitoJUnitRunner.class)
1622
public 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

Comments
 (0)