Skip to content

Commit

Permalink
test: more coverage
Browse files Browse the repository at this point in the history
  • Loading branch information
jy95 committed Jan 5, 2025
1 parent feb66f9 commit 7a91433
Showing 1 changed file with 83 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand All @@ -26,12 +27,92 @@ 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<Dosage> dosageList = List.of(dosage1);
String result = dosageUtils.asHumanReadableText(dosageList).get();
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<Dosage> 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";
}
}

}

0 comments on commit 7a91433

Please sign in to comment.