Exemple #1
0
        private ICapabilityStatementBuilder SyncProfile(string resourceType, bool disableCacheRefresh)
        {
            EnsureArg.IsNotNullOrEmpty(resourceType, nameof(resourceType));
            EnsureArg.IsTrue(_modelInfoProvider.IsKnownResource(resourceType), nameof(resourceType), x => GenerateTypeErrorMessage(x, resourceType));

            ApplyToResource(resourceType, resourceComponent =>
            {
                var supportedProfiles = _supportedProfiles.GetSupportedProfiles(resourceType, disableCacheRefresh);
                if (supportedProfiles != null)
                {
                    if (!_modelInfoProvider.Version.Equals(FhirSpecification.Stu3))
                    {
                        resourceComponent.SupportedProfile.Clear();
                        foreach (var profile in supportedProfiles)
                        {
                            resourceComponent.SupportedProfile.Add(profile);
                        }
                    }
                    else
                    {
                        foreach (var profile in supportedProfiles)
                        {
                            _statement.Profile.Add(new ReferenceComponent
                            {
                                Reference = profile,
                            });
                        }
                    }
                }
            });

            return(this);
        }
        public void GivenAConformanceBuilder_WhenAddingSupportedProfile_ThenSupportedProfilePresent()
        {
            string profile = "coolProfile";

            _supportedProfiles.GetSupportedProfiles("Account").Returns(new[] { profile });
            _builder.PopulateDefaultResourceInteractions().SyncProfiles();
            ITypedElement statement = _builder.Build();
            string        fhirPath  = ModelInfoProvider.Version == FhirSpecification.Stu3
                ? $"CapabilityStatement.profile.where(reference='{profile}').exists()"
                : $"{ResourceQuery("Account")}.supportedProfile.first()='{profile}'";
            var profileFound = (bool)statement.Scalar(fhirPath);

            Assert.True(profileFound);
        }