Skip to content

Commit

Permalink
added tests
Browse files Browse the repository at this point in the history
  • Loading branch information
mmsmits committed Jul 24, 2024
1 parent aada9f1 commit d748cc7
Showing 1 changed file with 118 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -113,5 +113,123 @@ public async Tasks.Task TestExpandingVsWithUnknownSystem()
var job = async () => await expander.ExpandAsync(vs);
await job.Should().ThrowAsync<ValueSetUnknownException>().WithMessage("The ValueSet expander cannot find codesystem 'http://www.unknown.org/', so the expansion cannot be completed.");
}

[Fact]
public async Tasks.Task TestExcludingOnlyParent()
{
var resolver = new InMemoryResourceResolver();
var vs = new ValueSet
{
Compose = new()
{
Include = new List<ValueSet.ConceptSetComponent>
{
new()
{
System = "http://www.unknown.org/",
Filter = new List<ValueSet.FilterComponent>
{
new()
{
Property = "concept",
Op = FilterOperator.IsA,
Value = "parent"
}
}
}
},
Exclude = new List<ValueSet.ConceptSetComponent>
{
new()
{
System = "http://www.unknown.org/",
Concept = new List<ValueSet.ConceptReferenceComponent>
{
new()
{
Code = "parent"
}
}
}
}
}
};

var cs = new CodeSystem
{
Url = "http://www.unknown.org/",
Content = CodeSystemContentMode.Complete,
Concept = new List<CodeSystem.ConceptDefinitionComponent>
{
new()
{
Code = "parent",
Concept = new List<CodeSystem.ConceptDefinitionComponent>
{
new()
{
Code = "child1"
},
new()
{
Code = "child2"
}
}
}
}
};

resolver.Add(cs, vs);

var expander = new ValueSetExpander(new ValueSetExpanderSettings { ValueSetSource = resolver });
await expander.ExpandAsync(vs);
vs.Expansion.Contains.Select(c => c.Code).Should().BeEquivalentTo(["child1", "child2"]);


vs.Compose.Exclude = new List<ValueSet.ConceptSetComponent>
{
new()
{
System = "http://www.unknown.org/",
Concept = new List<ValueSet.ConceptReferenceComponent>
{
new()
{
Code = "parent"
},
new()
{
Code = "child1"
}
}
}
};

resolver.Reload(cs, vs);
await expander.ExpandAsync(vs);
vs.Expansion.Contains.Select(c => c.Code).Should().BeEquivalentTo(["child2"]);

vs.Compose.Exclude = new List<ValueSet.ConceptSetComponent>
{
new()
{
System = "http://www.unknown.org/",
Filter = new List<ValueSet.FilterComponent>
{
new()
{
Property = "concept",
Op = FilterOperator.IsA,
Value = "parent"
}
}
}
};

resolver.Reload(cs, vs);
await expander.ExpandAsync(vs);
vs.Expansion.Contains.Select(c => c.Code).Should().BeEmpty();

}
}
}

0 comments on commit d748cc7

Please sign in to comment.