public void GivenEmptyTemplate_WhenCreateObservation_ThenShellObservationReturned_Test() { var valueProcessor = Substitute.For <IFhirValueProcessor <IObservationData, DataType> >(); var template = Substitute.For <CodeValueFhirTemplate>(); var values = new Dictionary <string, IEnumerable <(DateTime, string)> > { { "p1", new[] { (DateTime.UtcNow, "v1") } }, }; (DateTime start, DateTime end)boundary = (new DateTime(2019, 1, 1, 0, 0, 0, DateTimeKind.Utc), new DateTime(2019, 1, 2, 0, 0, 0, DateTimeKind.Utc)); var observationGroup = Substitute.For <IObservationGroup>() .Mock(m => m.Boundary.Returns(boundary)) .Mock(m => m.Name.Returns("code")) .Mock(m => m.GetValues().Returns(values)); var processor = new CodeValueFhirTemplateProcessor(valueProcessor); var observation = processor.CreateObservation(template, observationGroup); Assert.NotNull(observation); Assert.Equal("code", observation.Code.Text); Assert.Collection( observation.Code.Coding, c => { Assert.Equal(FhirImportService.ServiceSystem, c.System); Assert.Equal("code", c.Code); Assert.Equal("code", c.Display); }); Assert.Equal(ObservationStatus.Final, observation.Status); Assert.NotNull(observation.Issued); var period = observation.Effective as Period; Assert.NotNull(period); Assert.Equal(boundary.start, period.StartElement.ToDateTimeOffset(TimeSpan.Zero).UtcDateTime); Assert.Equal(boundary.end, period.EndElement.ToDateTimeOffset(TimeSpan.Zero).UtcDateTime); valueProcessor.DidNotReceiveWithAnyArgs().CreateValue(default, default);
public void GivenTemplate_WhenCreateObservationGroups_ThenPeriodIntervalCorrectlyUsed_Test() { var valueProcessor = Substitute.For <IFhirValueProcessor <IObservationData, DataType> >(); var template = Substitute.For <CodeValueFhirTemplate>().Mock(m => m.PeriodInterval.Returns(ObservationPeriodInterval.Single)); var measurementGroup = new MeasurementGroup { Data = new List <Measurement> { new Measurement { OccurrenceTimeUtc = DateTime.UtcNow }, }, }; var processor = new CodeValueFhirTemplateProcessor(valueProcessor); var result = processor.CreateObservationGroups(template, measurementGroup); Assert.Single(result); _ = template.Received(1).PeriodInterval; }
public void GivenDefaultCtor_WhenCtor_ThenProcessorCreated_Test() { var processor = new CodeValueFhirTemplateProcessor(); Assert.NotNull(processor); }