コード例 #1
0
        public void GivenSearchIndicesWithResourceTypeAndCompartmentType_WhenExtracted_ThenCorrectIndicesExtracted(ResourceType resourceType, CompartmentType compartmentType, string resourceId)
        {
            var compartmentManager = Substitute.For <ICompartmentDefinitionManager>();
            var compartmentIndexer = new CompartmentIndexer(compartmentManager);

            HashSet <string> compParams = null;

            compartmentManager.TryGetSearchParams(resourceType, compartmentType, out compParams)
            .Returns(x =>
            {
                x[2] = new HashSet <string> {
                    "testParam"
                };
                return(true);
            });
            var searchIndexEntries = new List <SearchIndexEntry> {
                new SearchIndexEntry(new SearchParameter {
                    Name = "testParam"
                }, new ReferenceSearchValue(ReferenceKind.Internal, new Uri("http://localhost"), CompartmentDefinitionManager.CompartmentTypeToResourceType(compartmentType), resourceId))
            };
            CompartmentIndices compartmentIndices = compartmentIndexer.Extract(resourceType, searchIndexEntries);

            IReadOnlyCollection <string> resourceIds = null;

            if (compartmentType == CompartmentType.Device)
            {
                resourceIds = compartmentIndices.DeviceCompartmentEntry;
            }
            else if (compartmentType == CompartmentType.Encounter)
            {
                resourceIds = compartmentIndices.EncounterCompartmentEntry;
            }
            else if (compartmentType == CompartmentType.Patient)
            {
                resourceIds = compartmentIndices.PatientCompartmentEntry;
            }
            else if (compartmentType == CompartmentType.Practitioner)
            {
                resourceIds = compartmentIndices.PractitionerCompartmentEntry;
            }
            else if (compartmentType == CompartmentType.RelatedPerson)
            {
                resourceIds = compartmentIndices.RelatedPersonCompartmentEntry;
            }

            Assert.Single(resourceIds);
            Assert.Contains(resourceId, resourceIds);
        }
コード例 #2
0
 public CompartmentIndexerTests()
 {
     _compartmentIndexer = new CompartmentIndexer(_compartmentManager);
 }