public void Add_Gets_Applied_To_Graph() { var graph = new DirectedGraph(); var a = new GraphNode("a"); var b = new GraphNode("b"); var c = new GraphNode("c"); var d = new GraphNode("d"); graph.AddNode(a); graph.AddNode(b); graph.AddNode(c); graph.AddNode(d); var graphExpression = new GraphExpression<IDirectedGraph>(graph); var expression = new EdgeCollectionModifiersExpression<IGraphExpression>(graph, graphExpression); expression.Add( edges => { edges.FromNodeWithName("a").ToNodeWithName("b"); edges.FromNodeWithName("c").ToNodeWithName("d"); } ); Assert.AreEqual(graph.Edges.Count(), 2); var edge1 = graph.Edges.First(); Assert.AreEqual(edge1.From.Node, a); Assert.AreEqual(edge1.To.Node, b); var edge2 = graph.Edges.Skip(1).First(); Assert.AreEqual(edge2.From.Node, c); Assert.AreEqual(edge2.To.Node, d); }
public void Add_Returns_Parent_Expression() { var graph = new UndirectedGraph(); var a = new GraphNode("a"); var b = new GraphNode("b"); graph.AddNode(a); graph.AddNode(b); var graphExpression = new GraphExpression<IUndirectedGraph>(graph); var expression = new EdgeCollectionModifiersExpression<IGraphExpression>(graph, graphExpression); var instance = expression.Add(edges => edges.FromNodeWithName("a").ToNodeWithName("b")); Assert.AreSame(instance, graphExpression); }