public void Add_Returns_Parent_Expression()
        {
            var graph = MockRepository.GenerateMock<IGraph>();
            var graphExpression = new GraphExpression<IGraph>(graph);
            var expression = new NodeCollectionModifiersExpression<IGraphExpression>(graph, graphExpression);

            var instance = expression.Add(nodes => nodes.WithName("a"));
            Assert.AreSame(instance, graphExpression);
        }
        public void AddRecord_Gets_Applied_To_Graph()
        {
            var graph = MockRepository.GenerateMock<IGraph>();

            graph.Expect(x => x.AddNode(null))
                .IgnoreArguments()
                .Constraints(Is.Matching<IRecordNode>(x => x.Name == "a"));

            graph.Expect(x => x.AddNode(null))
                .IgnoreArguments()
                .Constraints(Is.Matching<IRecordNode>(x => x.Name == "b"));

            var graphExpression = new GraphExpression<IGraph>(graph);
            var expression = new NodeCollectionModifiersExpression<IGraphExpression>(graph, graphExpression);
            expression.AddRecord(
                records =>
                    {
                        records.WithName("a").WithElement("a1");
                        records.WithName("b").WithElement("b1");
                    });

            graph.VerifyAllExpectations();
        }