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"); }
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"); }
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"); }
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"); }