public async Task ShouldFindMother() { var data = new TheoryData <INode[], IEdge[], IPath[]>(); var nStart = new Node("nStart", new List <string> { "e1" }, null, new Dictionary <string, string> { { "gender", "male" } }); var nEnd = new Node("nEnd", null, new List <string> { "e1" }, new Dictionary <string, string> { { "gender", "female" } }); var e1 = new Edge("e1", "nEnd", "nStart", new Dictionary <string, string> { { "label", "parent" } }); var nodes = new INode[] { nStart, nEnd }; var edges = new IEdge[] { e1 }; var expectedResult = new IPath[] { new Path(new List <IGraphObject> { nStart, e1, nEnd }) }; var arilon = new Core.Arilon(new InMemoryDataProvider(nodes, edges), new string[] { "label" }, new string[] { "gender" }); var result = await arilon.CalculateRelationIdentifier("nStart", "nEnd"); result.StartNode.Id.Should().Be("nStart"); result.EndNode.Id.Should().Be("nEnd"); result.Identifier.Should().Be("n(gender:male)<-e(label:parent)<-n(gender:female)"); result.Paths.Should().BeEquivalentTo(expectedResult, options => options.WithStrictOrderingFor(x => x.NodesAndEdges)); }
public void ShouldThrowOnMissingEdgeDatabaseProvider() { var arilon = new Core.Arilon(new InMemoryDataProvider(null, null)); Func <Task> fn = async() => { await arilon.CalculateRelationIdentifier("nStart", "nEnd"); }; fn.Should().Throw <ArgumentNullException>(); }
public void ShouldThrowOnNullDatabaseProvider() { Action fn = () => { var arilon = new Core.Arilon(null); }; fn.Should().Throw <ArgumentNullException>(); }