public void GivenSearchIndicesWithResourceTypeAndCompartmentType_WhenExtracted_ThenCorrectIndicesExtracted(ResourceType resourceType, CompartmentType compartmentType, ReferenceKind referenceKind, string expectedResourceId) { HashSet <string> compParams = null; _compartmentManager.TryGetSearchParams(resourceType.ToString(), compartmentType, out compParams) .Returns(x => { x[2] = new HashSet <string> { _referenceSearchTestParam.Name, _nonReferenceReferenceSearchTestParam.Name }; return(true); }); var searchIndexEntries = new List <SearchIndexEntry> { new SearchIndexEntry(_referenceSearchTestParam, new ReferenceSearchValue(referenceKind, _baseUri, CompartmentDefinitionManager.CompartmentTypeToResourceType(compartmentType.ToString()).ToString(), expectedResourceId)), new SearchIndexEntry(_nonReferenceReferenceSearchTestParam, new StringSearchValue("aadsdas")), }; CompartmentIndices compartmentIndices = _compartmentIndexer.Extract(resourceType.ToString(), searchIndexEntries); Assert.Collection(GetResourceIdsForCompartmentType(compartmentType, compartmentIndices), r => string.Equals(expectedResourceId, r, StringComparison.OrdinalIgnoreCase)); }
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); }