public void GivenListOfPrimitiveElementNodes_WhenGetDecendantsByType_AllNodesShouldBeReturned() { Date date = new Date(); Instant instant = new Instant(); FhirBoolean boolean = new FhirBoolean(); FhirString fhirString = new FhirString(); var nodes = new PrimitiveType[] { date, instant, boolean, fhirString }.Select(n => ElementNode.FromElement(n.ToTypedElement())); var results = FhirPathSymbolExtensions.NodesByType(nodes, "string").Select(n => n.Location); Assert.Single(results); Assert.Contains("string", results); results = FhirPathSymbolExtensions.NodesByType(nodes, "date").Select(n => n.Location); Assert.Single(results); Assert.Contains("date", results); results = FhirPathSymbolExtensions.NodesByType(nodes, "boolean").Select(n => n.Location); Assert.Single(results); Assert.Contains("boolean", results); results = FhirPathSymbolExtensions.NodesByType(nodes, "instant").Select(n => n.Location); Assert.Single(results); Assert.Contains("instant", results); }
public void GivenListOfElementNodes_WhenGetDecendantsByType_AllNodesShouldBeReturned() { Patient patient = new Patient(); patient.Active = true; patient.Address.Add(new Address() { City = "Test0" }); patient.Contact.Add(new Patient.ContactComponent() { Address = new Address() { City = "Test1" } }); Address address = new Address() { City = "Test2" }; Organization organizaton = new Organization(); organizaton.Address.Add(new Address() { City = "Test3" }); // contained resource should not be returned. Organization organizatonInContained = new Organization(); organizatonInContained.Address.Add(new Address() { City = "Test3" }); patient.Contained.Add(organizatonInContained); // Verify primitive object Date date = new Date(); var nodes = new ITypedElement[] { patient.ToTypedElement(), address.ToTypedElement(), organizaton.ToTypedElement(), date.ToTypedElement() }.Select(n => ElementNode.FromElement(n)); var results = FhirPathSymbolExtensions.NodesByType(nodes, "Address").Select(n => n.Location); Assert.Equal(4, results.Count()); Assert.Contains("Patient.address[0]", results); Assert.Contains("Address", results); Assert.Contains("Organization.address[0]", results); Assert.Contains("Patient.contact[0].address[0]", results); }