public void GivenRegisteredTemplate_WhenGetTemplate_TemplateReturned_Test()
        {
            var template = new FhirLookupTemplate();

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

            templateA.TypeName.Returns("a");

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

            templateB.TypeName.Returns("b");

            template.RegisterTemplate(templateA);
            template.RegisterTemplate(templateB);

            var returnTemplate = template.GetTemplate("a");

            Assert.Equal(templateA, returnTemplate);

            returnTemplate = template.GetTemplate("b");
            Assert.Equal(templateB, returnTemplate);
        }
        public void GivenUnregisteredTemplate_WhenGetTemplate_TemplateNotFoundExceptionThrown_Test()
        {
            var template = new FhirLookupTemplate();

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

            templateA.TypeName.Returns("a");

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

            templateB.TypeName.Returns("b");

            template.RegisterTemplate(templateA);
            template.RegisterTemplate(templateB);

            Assert.Throws <TemplateNotFoundException>(() => template.GetTemplate("c"));
        }