Ejemplo n.º 1
0
        public void CreateEdgeOperation_Do_Test()
        {
            var graph = new Model.GraphArea();

            var source = new DataVertex(100) { };
            var sourceVC = new VertexControl(source);
            graph.Graph.AddVertex(source);
            graph.AddVertex(source, sourceVC);

            var target = new DataVertex(101) { };
            var targetVC = new VertexControl(target);
            graph.Graph.AddVertex(target);
            graph.AddVertex(target, targetVC);

            bool called = false;
            EdgeControl ec = null;
            var ceo = new CreateEdgeOperation(graph, source, target, (e) =>
            {
                called = true;
                ec = e;
            },
            (e) =>
            {

            });

            ceo.Do();

            Assert.IsTrue(called);
            Assert.IsNotNull(ec);
            Assert.AreEqual<VertexControl>(ec.Source, sourceVC, "source are not equal");
            Assert.AreEqual<VertexControl>(ec.Target, targetVC, "target are not equal");
        }
Ejemplo n.º 2
0
        public void CreateEdgeOperation_Do_Test()
        {
            var graph = new Model.GraphArea();

            var source = new DataVertex(100)
            {
            };
            var sourceVC = new VertexControl(source);

            graph.Graph.AddVertex(source);
            graph.AddVertex(source, sourceVC);

            var target = new DataVertex(101)
            {
            };
            var targetVC = new VertexControl(target);

            graph.Graph.AddVertex(target);
            graph.AddVertex(target, targetVC);

            bool        called = false;
            EdgeControl ec     = null;
            var         ceo    = new CreateEdgeOperation(graph, source, target, (e) =>
            {
                called = true;
                ec     = e;
            },
                                                         (e) =>
            {
            });

            ceo.Do();

            Assert.IsTrue(called);
            Assert.IsNotNull(ec);
            Assert.AreEqual <VertexControl>(ec.Source, sourceVC, "source are not equal");
            Assert.AreEqual <VertexControl>(ec.Target, targetVC, "target are not equal");
        }
Ejemplo n.º 3
0
        public void VertexOperation_Undo_Redo_Test()
        {
            var graph = new Model.GraphArea();

            var source = new DataVertex(100) { };

            var target = new DataVertex(101) { };

            bool createEdgeCalled = false;
            bool undoCreateEdgeCalled = false;

            bool createSourceCalled = false;
            bool undoCreateSourceCalled = false;

            bool createTargetCalled = false;
            bool undoCreateTargetCalled = false;

            EdgeControl ec = null;
            VertexControl sourceVC = null;
            VertexControl targetVC = null;

            var ceo = new CreateEdgeOperation(graph, source, target, (e) =>
            {
                createEdgeCalled = true;
                ec = e;
            },
            (e) =>
            {
                createEdgeCalled = false;
                undoCreateEdgeCalled = true;
                ec = e;
            });

            var cvoSource = new CreateVertexOperation(graph, source, (sv, svc) =>
            {
                createSourceCalled = true;
                sourceVC = svc;
            },
            (v) =>
            {
                undoCreateSourceCalled = true;
            });

            var cvoTarget = new CreateVertexOperation(graph, target, (sv, svc) =>
            {
                createTargetCalled = true;
                targetVC = svc;
            },
            (v) =>
            {
                undoCreateTargetCalled = true;
            });

            cvoSource.Do();

            Assert.IsTrue(createSourceCalled);
            Assert.IsNotNull(sourceVC);
            Assert.IsTrue(graph.Graph.Vertices.Any(v => v == source));
            Assert.AreEqual(source, sourceVC.Vertex, "source are not equal");

            cvoTarget.Do();

            Assert.IsTrue(createTargetCalled);
            Assert.IsNotNull(targetVC);
            Assert.IsTrue(graph.Graph.Vertices.Any(v => v == target));
            Assert.AreEqual(target, targetVC.Vertex, "target are not equal");

            ceo.Do();

            Assert.IsTrue(createEdgeCalled);
            Assert.IsNotNull(ec);
            Assert.IsTrue(graph.Graph.Vertices.Any(v => v == source));
            Assert.IsTrue(graph.Graph.Vertices.Any(v => v == target));
            Assert.IsTrue(graph.Graph.Edges.Any(e => e == ec.Edge));
            Assert.AreEqual<VertexControl>(ec.Source, sourceVC, "source vertex control are not equal");
            Assert.AreEqual<VertexControl>(ec.Target, targetVC, "target vertex control are not equal");

            ceo.UnDo();

            Assert.IsTrue(undoCreateEdgeCalled);
            Assert.IsNotNull(ec);
            Assert.IsNull(ec.Edge);
            Assert.IsTrue(graph.Graph.Vertices.Any(v => v == source));
            Assert.IsTrue(graph.Graph.Vertices.Any(v => v == target));
            Assert.IsFalse(graph.Graph.Edges.Any(e => e == ec.Edge));
            Assert.AreEqual<VertexControl>(ec.Source, null, "source sould be null");
            Assert.AreEqual<VertexControl>(ec.Target, null, "target sould be null");

            //redo
            ceo.Do();

            Assert.IsTrue(createEdgeCalled);
            Assert.IsNotNull(ec);
            Assert.IsTrue(graph.Graph.Vertices.Any(v => v == source));
            Assert.IsTrue(graph.Graph.Vertices.Any(v => v == target));
            Assert.IsTrue(graph.Graph.Edges.Any(e => e == ec.Edge));
            Assert.AreEqual<VertexControl>(ec.Source, sourceVC, "source are not equal");
            Assert.AreEqual<VertexControl>(ec.Target, targetVC, "target are not equal");

            ceo.UnDo();

            Assert.IsTrue(undoCreateEdgeCalled);
            Assert.IsNotNull(ec);
            Assert.IsNull(ec.Edge);
            Assert.IsTrue(graph.Graph.Vertices.Any(v => v == source));
            Assert.IsTrue(graph.Graph.Vertices.Any(v => v == target));
            Assert.IsFalse(graph.Graph.Edges.Any(e => e == ec.Edge));
            Assert.AreEqual<VertexControl>(ec.Source, null, "source sould be null");
            Assert.AreEqual<VertexControl>(ec.Target, null, "target sould be null");

            cvoSource.UnDo();

            Assert.IsTrue(undoCreateSourceCalled);
            Assert.IsNotNull(sourceVC);
            Assert.IsFalse(graph.Graph.Vertices.Any(v => v == source));
            Assert.IsNull(sourceVC.Vertex, "source sould be null");

            cvoTarget.UnDo();

            Assert.IsTrue(undoCreateTargetCalled);
            Assert.IsNotNull(targetVC);
            Assert.IsFalse(graph.Graph.Vertices.Any(v => v == target));
            Assert.IsNull(targetVC.Vertex, "target sould be null");
        }
Ejemplo n.º 4
0
        public void VertexOperation_Undo_Redo_Test()
        {
            var graph = new Model.GraphArea();

            var source = new DataVertex(100)
            {
            };

            var target = new DataVertex(101)
            {
            };

            bool createEdgeCalled     = false;
            bool undoCreateEdgeCalled = false;

            bool createSourceCalled     = false;
            bool undoCreateSourceCalled = false;

            bool createTargetCalled     = false;
            bool undoCreateTargetCalled = false;

            EdgeControl   ec       = null;
            VertexControl sourceVC = null;
            VertexControl targetVC = null;

            var ceo = new CreateEdgeOperation(graph, source, target, (e) =>
            {
                createEdgeCalled = true;
                ec = e;
            },
                                              (e) =>
            {
                createEdgeCalled     = false;
                undoCreateEdgeCalled = true;
                ec = e;
            });

            var cvoSource = new CreateVertexOperation(graph, source, (sv, svc) =>
            {
                createSourceCalled = true;
                sourceVC           = svc;
            },
                                                      (v) =>
            {
                undoCreateSourceCalled = true;
            });

            var cvoTarget = new CreateVertexOperation(graph, target, (sv, svc) =>
            {
                createTargetCalled = true;
                targetVC           = svc;
            },
                                                      (v) =>
            {
                undoCreateTargetCalled = true;
            });

            cvoSource.Do();

            Assert.IsTrue(createSourceCalled);
            Assert.IsNotNull(sourceVC);
            Assert.IsTrue(graph.Graph.Vertices.Any(v => v == source));
            Assert.AreEqual(source, sourceVC.Vertex, "source are not equal");

            cvoTarget.Do();

            Assert.IsTrue(createTargetCalled);
            Assert.IsNotNull(targetVC);
            Assert.IsTrue(graph.Graph.Vertices.Any(v => v == target));
            Assert.AreEqual(target, targetVC.Vertex, "target are not equal");

            ceo.Do();

            Assert.IsTrue(createEdgeCalled);
            Assert.IsNotNull(ec);
            Assert.IsTrue(graph.Graph.Vertices.Any(v => v == source));
            Assert.IsTrue(graph.Graph.Vertices.Any(v => v == target));
            Assert.IsTrue(graph.Graph.Edges.Any(e => e == ec.Edge));
            Assert.AreEqual <VertexControl>(ec.Source, sourceVC, "source vertex control are not equal");
            Assert.AreEqual <VertexControl>(ec.Target, targetVC, "target vertex control are not equal");

            ceo.UnDo();

            Assert.IsTrue(undoCreateEdgeCalled);
            Assert.IsNotNull(ec);
            Assert.IsNull(ec.Edge);
            Assert.IsTrue(graph.Graph.Vertices.Any(v => v == source));
            Assert.IsTrue(graph.Graph.Vertices.Any(v => v == target));
            Assert.IsFalse(graph.Graph.Edges.Any(e => e == ec.Edge));
            Assert.AreEqual <VertexControl>(ec.Source, null, "source sould be null");
            Assert.AreEqual <VertexControl>(ec.Target, null, "target sould be null");

            //redo
            ceo.Do();

            Assert.IsTrue(createEdgeCalled);
            Assert.IsNotNull(ec);
            Assert.IsTrue(graph.Graph.Vertices.Any(v => v == source));
            Assert.IsTrue(graph.Graph.Vertices.Any(v => v == target));
            Assert.IsTrue(graph.Graph.Edges.Any(e => e == ec.Edge));
            Assert.AreEqual <VertexControl>(ec.Source, sourceVC, "source are not equal");
            Assert.AreEqual <VertexControl>(ec.Target, targetVC, "target are not equal");

            ceo.UnDo();

            Assert.IsTrue(undoCreateEdgeCalled);
            Assert.IsNotNull(ec);
            Assert.IsNull(ec.Edge);
            Assert.IsTrue(graph.Graph.Vertices.Any(v => v == source));
            Assert.IsTrue(graph.Graph.Vertices.Any(v => v == target));
            Assert.IsFalse(graph.Graph.Edges.Any(e => e == ec.Edge));
            Assert.AreEqual <VertexControl>(ec.Source, null, "source sould be null");
            Assert.AreEqual <VertexControl>(ec.Target, null, "target sould be null");

            cvoSource.UnDo();

            Assert.IsTrue(undoCreateSourceCalled);
            Assert.IsNotNull(sourceVC);
            Assert.IsFalse(graph.Graph.Vertices.Any(v => v == source));
            Assert.IsNull(sourceVC.Vertex, "source sould be null");

            cvoTarget.UnDo();

            Assert.IsTrue(undoCreateTargetCalled);
            Assert.IsNotNull(targetVC);
            Assert.IsFalse(graph.Graph.Vertices.Any(v => v == target));
            Assert.IsNull(targetVC.Vertex, "target sould be null");
        }