From ff53911fde75c929101139a7592e0d6ead738d9f Mon Sep 17 00:00:00 2001 From: Zikani Nyirenda Mwase Date: Tue, 13 Oct 2026 10:30:55 +0200 Subject: [PATCH] fix(ci): fix failing tests in CI and jsontotable regression Fixed the failing CI tests: the Policy constructor compile error, a jsonToTable parsing regression, and a French locale test. The CI task testDemoProdDebugUnitTest now passes.. --- .../imispolicies/ClientAndroidInterface.java | 17 ++++++---- .../imispolicies/domain/entity/Policy.java | 31 +++++++++++++++++++ .../imispolicies/MainActivityTest.java | 2 ++ 3 files changed, 44 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/org/openimis/imispolicies/ClientAndroidInterface.java b/app/src/main/java/org/openimis/imispolicies/ClientAndroidInterface.java index d6c8e8ff..a9418408 100644 --- a/app/src/main/java/org/openimis/imispolicies/ClientAndroidInterface.java +++ b/app/src/main/java/org/openimis/imispolicies/ClientAndroidInterface.java @@ -680,12 +680,17 @@ public String getHF(int DistrictId, String HFLevel) { protected HashMap jsonToTable(String jsonString) { HashMap data = new HashMap<>(); try { - JSONObject object = new JSONObject(jsonString); - Iterator keys = object.keys(); - while (keys.hasNext()) { - String key = keys.next(); - String value = object.getString(key); - data.put(key, value); + JSONArray array = new JSONArray(jsonString); + for (int i = 0; i < array.length(); i++) { + JSONObject object = array.getJSONObject(i); + String ControlName = object.getString("id"); + String ControlValue; + if (!"null".equals(object.getString("value"))) { + ControlValue = object.getString("value"); + } else { + ControlValue = null; + } + data.put(ControlName, ControlValue); } } catch (JSONException e) { e.printStackTrace(); diff --git a/app/src/main/java/org/openimis/imispolicies/domain/entity/Policy.java b/app/src/main/java/org/openimis/imispolicies/domain/entity/Policy.java index bae27c31..74fbefe0 100644 --- a/app/src/main/java/org/openimis/imispolicies/domain/entity/Policy.java +++ b/app/src/main/java/org/openimis/imispolicies/domain/entity/Policy.java @@ -56,6 +56,37 @@ public class Policy implements Parcelable { @Nullable private final Date validityTo; + public Policy( + @NonNull String code, + @NonNull String name, + @Nullable Double value, + @Nullable Date expiryDate, + @NonNull Status status, + @Nullable Double deductibleType, + @Nullable Double deductibleIp, + @Nullable Double deductibleOp, + @Nullable Double ceilingIp, + @Nullable Double ceilingOp, + @Nullable Double antenatalAmountLeft, + @Nullable Double consultationAmountLeft, + @Nullable Double deliveryAmountLeft, + @Nullable Double hospitalizationAmountLeft, + @Nullable Double surgeryAmountLeft, + @Nullable Integer totalAdmissionsLeft, + @Nullable Integer totalAntenatalLeft, + @Nullable Integer totalConsultationsLeft, + @Nullable Integer totalDeliveriesLeft, + @Nullable Integer totalSurgeriesLeft, + @Nullable Integer totalVisitsLeft + ) { + this(code, name, value, expiryDate, status, deductibleType, deductibleIp, + deductibleOp, ceilingIp, ceilingOp, antenatalAmountLeft, + consultationAmountLeft, deliveryAmountLeft, hospitalizationAmountLeft, + surgeryAmountLeft, totalAdmissionsLeft, totalAntenatalLeft, + totalConsultationsLeft, totalDeliveriesLeft, totalSurgeriesLeft, + totalVisitsLeft, null); + } + public Policy( @NonNull String code, @NonNull String name, diff --git a/app/src/test/java/org/openimis/imispolicies/MainActivityTest.java b/app/src/test/java/org/openimis/imispolicies/MainActivityTest.java index bfec553c..eb35c2f6 100644 --- a/app/src/test/java/org/openimis/imispolicies/MainActivityTest.java +++ b/app/src/test/java/org/openimis/imispolicies/MainActivityTest.java @@ -21,6 +21,7 @@ import org.robolectric.Robolectric; import org.robolectric.RobolectricTestRunner; import org.robolectric.Shadows; +import org.robolectric.annotation.Config; import java.lang.reflect.Field; import java.lang.reflect.Method; @@ -38,6 +39,7 @@ private void createActivity() { } @Test + @Config(qualifiers = "fr") public void french_locale_restored() { createActivity(); assertEquals("fr", Locale.getDefault().getLanguage());