コード例 #1
0
        public void GivenInputWithRegisteredFactories_WhenCreate_ThenTemplateReturned_Test(string json)
        {
            IFhirTemplate nullReturn = null;

            var templateA = Substitute.For <IFhirTemplate>();

            templateA.TypeName.Returns("A");

            var templateB = Substitute.For <IFhirTemplate>();

            templateB.TypeName.Returns("B");

            var factoryA = Substitute.For <ITemplateFactory <TemplateContainer, IFhirTemplate> >();

            factoryA.Create(Arg.Is <TemplateContainer>(v => v.MatchTemplateName("mockA"))).Returns(templateA);
            factoryA.Create(Arg.Is <TemplateContainer>(v => !v.MatchTemplateName("mockA"))).Returns(nullReturn);

            var factoryB = Substitute.For <ITemplateFactory <TemplateContainer, IFhirTemplate> >();

            factoryB.Create(Arg.Is <TemplateContainer>(v => v.MatchTemplateName("mockB"))).Returns(templateB);
            factoryB.Create(Arg.Is <TemplateContainer>(v => !v.MatchTemplateName("mockB"))).Returns(nullReturn);

            var factory         = new CollectionFhirTemplateFactory(factoryA, factoryB);
            var templateContext = factory.Create(json);

            Assert.NotNull(templateContext);
            templateContext.EnsureValid();

            factoryA.ReceivedWithAnyArgs().Create(null);
            factoryB.ReceivedWithAnyArgs().Create(null);
        }
コード例 #2
0
        public void GivenInputWithUnregisteredFactories_WhenCreate_ThenException_Test(string json)
        {
            IFhirTemplate nullReturn = null;
            var           templateA  = Substitute.For <IFhirTemplate>();

            templateA.TypeName.Returns("A");

            var templateC = Substitute.For <IFhirTemplate>();

            templateC.TypeName.Returns("C");

            var factoryA = Substitute.For <ITemplateFactory <TemplateContainer, IFhirTemplate> >();

            factoryA.Create(Arg.Is <TemplateContainer>(v => v.MatchTemplateName("mockA"))).Returns(templateA);
            factoryA.Create(Arg.Is <TemplateContainer>(v => !v.MatchTemplateName("mockA"))).Returns(nullReturn);

            var factoryC = Substitute.For <ITemplateFactory <TemplateContainer, IFhirTemplate> >();

            factoryC.Create(Arg.Is <TemplateContainer>(v => v.MatchTemplateName("mockC"))).Returns(templateC);
            factoryC.Create(Arg.Is <TemplateContainer>(v => !v.MatchTemplateName("mockC"))).Returns(nullReturn);

            var factory         = new CollectionFhirTemplateFactory(factoryA, factoryC);
            var templateContext = factory.Create(json);

            Assert.Throws <ValidationException>(() => templateContext.EnsureValid());
            Assert.False(templateContext.IsValid(out _));

            factoryA.ReceivedWithAnyArgs().Create(null);
            factoryC.ReceivedWithAnyArgs().Create(null);
        }
コード例 #3
0
        private TTemplate CastTemplate(IFhirTemplate template)
        {
            EnsureArg.IsNotNull(template, nameof(template));

            if (!(template is TTemplate castTemplate))
            {
                throw new NotSupportedException($"Template type {template.GetType()} does not match supported type {SupportedTemplateType}.");
            }

            return(castTemplate);
        }
コード例 #4
0
 public TObservation MergeObservation(IFhirTemplate template, IObservationGroup observationGroup, TObservation existingObservation)
 {
     return(MergeObservationImpl(CastTemplate(template), observationGroup, existingObservation));
 }
コード例 #5
0
 public IEnumerable <IObservationGroup> CreateObservationGroups(IFhirTemplate template, IMeasurementGroup measurementGroup)
 {
     return(CreateObservationGroupsImpl(CastTemplate(template), measurementGroup));
 }
コード例 #6
0
 public TObservation CreateObservation(IFhirTemplate template, IObservationGroup observationGroup)
 {
     return(CreateObservationImpl(CastTemplate(template), observationGroup));
 }