From 7a9143315c4e731924ac43a05680e55c42d915b5 Mon Sep 17 00:00:00 2001 From: jy95 Date: Sun, 5 Jan 2025 20:32:36 +0100 Subject: [PATCH] test: more coverage --- .../methods/AsHumanReadableTextTest.java | 85 ++++++++++++++++++- 1 file changed, 83 insertions(+), 2 deletions(-) diff --git a/src/test/java/jy95/fhir/r4/dosage/utils/methods/AsHumanReadableTextTest.java b/src/test/java/jy95/fhir/r4/dosage/utils/methods/AsHumanReadableTextTest.java index 2a611d732..58a8e4fd9 100644 --- a/src/test/java/jy95/fhir/r4/dosage/utils/methods/AsHumanReadableTextTest.java +++ b/src/test/java/jy95/fhir/r4/dosage/utils/methods/AsHumanReadableTextTest.java @@ -2,7 +2,8 @@ import jy95.fhir.r4.dosage.utils.AbstractFhirTest; import jy95.fhir.r4.dosage.utils.classes.FhirDosageUtils; -import org.hl7.fhir.r4.model.Dosage; +import jy95.fhir.r4.dosage.utils.config.FDUConfig; +import org.hl7.fhir.r4.model.*; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; @@ -26,7 +27,12 @@ void testEmptyList(Locale locale) throws ExecutionException, InterruptedExceptio @ParameterizedTest @MethodSource("localeProvider") void testOneItem(Locale locale) throws ExecutionException, InterruptedException { - FhirDosageUtils dosageUtils = new FhirDosageUtils(); + FhirDosageUtils dosageUtils = getDosageUtilsInstance( + FDUConfig + .builder() + .locale(locale) + .build() + ); Dosage dosage1 = new Dosage(); dosage1.setPatientInstruction("A prendre avec de l'eau"); List dosageList = List.of(dosage1); @@ -34,4 +40,79 @@ void testOneItem(Locale locale) throws ExecutionException, InterruptedException assertEquals("A prendre avec de l'eau", result); } + @ParameterizedTest + @MethodSource("localeProvider") + void testMultipleItems(Locale locale) throws ExecutionException, InterruptedException { + FhirDosageUtils dosageUtils = getDosageUtilsInstance( + FDUConfig + .builder() + .locale(locale) + .build() + ); + Dosage dosage1 = getFirstDosage(); + Dosage dosage2 = getSecondDosage(); + Dosage dosage3 = getThirdDosage(); + List dosageList = List.of(dosage1, dosage2, dosage3); + String result = dosageUtils.asHumanReadableText(dosageList).get(); + String expected = getExpectedText(locale); + assertEquals(expected, result); + } + + // For the setup of testMultipleItems + private static Dosage getFirstDosage() { + Dosage dosage = new Dosage(); + Timing timing = new Timing(); + dosage.setSequence(1); + Timing.TimingRepeatComponent repeatComponent = new Timing.TimingRepeatComponent(); + repeatComponent.setCount(2); + Quantity duration = new Duration(); + duration.setValue(2); + duration.setCode("wk"); + duration.setSystem("http://hl7.org/fhir/ValueSet/duration-units"); + repeatComponent.setBounds(duration); + timing.setRepeat(repeatComponent); + dosage.setTiming(timing); + return dosage; + } + + // For the setup of testMultipleItems + private static Dosage getSecondDosage() { + Dosage dosage = new Dosage(); + Timing timing = new Timing(); + dosage.setSequence(2); + Timing.TimingRepeatComponent repeatComponent = new Timing.TimingRepeatComponent(); + repeatComponent.setCount(1); + repeatComponent.setPeriod(1); + repeatComponent.setPeriodUnit(Timing.UnitsOfTime.D); + timing.setRepeat(repeatComponent); + dosage.setTiming(timing); + return dosage; + } + + // For the setup of testMultipleItems + private static Dosage getThirdDosage() { + Dosage dosage = new Dosage(); + Timing timing = new Timing(); + BooleanType asNeeded = new BooleanType(true); + dosage.setSequence(2); + Timing.TimingRepeatComponent repeatComponent = new Timing.TimingRepeatComponent(); + repeatComponent.setCount(1); + timing.setRepeat(repeatComponent); + dosage.setTiming(timing); + dosage.setAsNeeded(asNeeded); + return dosage; + } + + private static String getExpectedText(Locale locale) { + if (locale.equals(Locale.ENGLISH)) { + return "for 2 weeks - take 2 times then every day - take 1 time and as required - take 1 time"; + } else if (locale.equals(Locale.FRENCH)) { + return "pour 2 semaines - 2 fois puis chaque jour - prendre 1 fois et si nécessaire - prendre 1 fois"; + } else if (locale.equals(Locale.GERMAN)) { + return "für 2 Wochen - 2 Mal nehmen dann jede Tag - 1 Mal nehmen und bei Bedarf - 1 Mal nehmen"; + } else { + return "gedurende 2 weken - 2 keer nemen vervolgens elke dag - 1 keer nemen en indien nodig - 1 keer nemen"; + } + } + }