Skip to content

Commit

Permalink
test: TimingRepeatExtension
Browse files Browse the repository at this point in the history
  • Loading branch information
jy95 committed Jan 2, 2025
1 parent 7a3e74d commit 3b15529
Showing 1 changed file with 77 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
package jy95.fhir.r4.dosage.utils.translators;

import jy95.fhir.r4.dosage.utils.AbstractFhirTest;
import jy95.fhir.r4.dosage.utils.classes.FhirDosageUtils;
import jy95.fhir.r4.dosage.utils.config.FDUConfig;
import jy95.fhir.r4.dosage.utils.types.DisplayOrder;
import org.hl7.fhir.r4.model.BooleanType;
import org.hl7.fhir.r4.model.Dosage;
import org.hl7.fhir.r4.model.Extension;
import org.hl7.fhir.r4.model.Timing;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.MethodSource;

import java.util.List;
import java.util.Locale;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;

import static org.junit.jupiter.api.Assertions.assertEquals;

public class TimingRepeatExtensionTest extends AbstractFhirTest {

@ParameterizedTest
@MethodSource("localeProvider")
void testNoExtension(Locale locale) throws ExecutionException, InterruptedException {
Dosage dosage = new Dosage();
FhirDosageUtils dosageUtils = getDosageUtilsInstance(locale, DisplayOrder.TIMING_REPEAT_EXTENSION);
String result = dosageUtils.asHumanReadableText(dosage).get();
assertEquals("", result);
}

@ParameterizedTest
@MethodSource("localeProvider")
void testWithExtension(Locale locale) throws ExecutionException, InterruptedException {
Dosage dosage = new Dosage();
List<org.hl7.fhir.r4.model.Extension> extensions = List.of(
new org.hl7.fhir.r4.model.Extension(
"http://hl7.org/fhir/StructureDefinition/timing-exact",
new BooleanType(true)
)
);
Timing timing = new Timing();
Timing.TimingRepeatComponent timingRepeatComponent = new Timing.TimingRepeatComponent();
timingRepeatComponent.setExtension(extensions);
timing.setRepeat(timingRepeatComponent);
dosage.setTiming(timing);
FhirDosageUtils dosageUtils = getDosageUtilsInstance(locale, DisplayOrder.TIMING_REPEAT_EXTENSION);
String result = dosageUtils.asHumanReadableText(dosage).get();
assertEquals("[{\"url\":\"http://hl7.org/fhir/StructureDefinition/timing-exact\",\"value[x]\":\"true\"}]", result);
}

@ParameterizedTest
@MethodSource("localeProvider")
void testWithExtensionCustom(Locale locale) throws ExecutionException, InterruptedException {
Dosage dosage = new Dosage();
List<org.hl7.fhir.r4.model.Extension> extensions = List.of(
new Extension(
"http://hl7.org/fhir/StructureDefinition/timing-exact",
new BooleanType(true)
)
);
Timing timing = new Timing();
Timing.TimingRepeatComponent timingRepeatComponent = new Timing.TimingRepeatComponent();
timingRepeatComponent.setExtension(extensions);
timing.setRepeat(timingRepeatComponent);
dosage.setTiming(timing);
FDUConfig config = FDUConfig
.builder()
.displayOrder(List.of(DisplayOrder.TIMING_REPEAT_EXTENSION))
.locale(locale)
.fromExtensionsToString(param -> CompletableFuture.completedFuture("(exact timing)"))
.build();
FhirDosageUtils dosageUtils = getDosageUtilsInstance(config);
String result = dosageUtils.asHumanReadableText(dosage).get();
assertEquals("(exact timing)", result);
}
}

0 comments on commit 3b15529

Please sign in to comment.