public void GivenValidTemplate_WhenCreateObservation_ThenCorrectProcessorInvoked_Test() { var template = Substitute.For <IFhirTemplate>(); var lookup = Substitute.For <ILookupTemplate <IFhirTemplate> >(); lookup.GetTemplate("a").Returns(template); var observationGroup = Substitute.For <IObservationGroup>(); observationGroup.Name.Returns("a"); var p1 = Substitute.For <IFhirTemplateProcessor <IFhirTemplate, string> >(); p1.SupportedTemplateType.Returns(template.GetType()); p1.CreateObservation(null, null).ReturnsForAnyArgs("new"); var processor = new TestFhirLookupTemplateProcessor(p1); var result = processor.CreateObservation(lookup, observationGroup); Assert.Equal("new", result); _ = observationGroup.Received(1).Name; lookup.Received(1).GetTemplate("a"); template.Received(1).GetType(); p1.Received(1).CreateObservation(template, observationGroup); }
public void GivenTemplateWithNoMatchingProcessor_WhenCreateObservation_ThenNotSupportedExceptionThrown_Test() { var p1 = Substitute.For <IFhirTemplateProcessor <IFhirTemplate, string> >(); p1.SupportedTemplateType.Returns(typeof(IFhirTemplate)); var template = Substitute.For <IFhirTemplate>(); var lookup = Substitute.For <ILookupTemplate <IFhirTemplate> >(); lookup.GetTemplate("a").Returns(template); var observationGroup = Substitute.For <IObservationGroup>(); observationGroup.Name.Returns("a"); var processor = new TestFhirLookupTemplateProcessor(p1); var ex = Assert.Throws <NotSupportedException>(() => processor.CreateObservation(lookup, observationGroup)); _ = observationGroup.Received(1).Name; lookup.Received(1).GetTemplate("a"); template.Received(1).GetType(); p1.DidNotReceiveWithAnyArgs().CreateObservation(null, null); }