Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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>();
        }
Esempio n. 3
0
        public void ShouldThrowOnNullDatabaseProvider()
        {
            Action fn = () => { var arilon = new Core.Arilon(null); };

            fn.Should().Throw <ArgumentNullException>();
        }