public void VisualizeNullObject() { var visualizer = new ObjectGraphVisualizer(); IData data; Assert.Throws <ArgumentNullException>(() => visualizer.Visualize(null, out data)); }
public void VisualizeGraphWithArray() { var visualizer = new ObjectGraphVisualizer(); IData data; var root = new ArrayObj(); root.array = new LeafObj[] { new LeafObj(), new LeafObj() }; var dot = visualizer.Visualize(root, out data); Assert.That(dot, Does.Contain( "1 [ label=\"YetiCommon.Tests.Util.ArrayObj\" id=\"dark googlegreen\" ];")); Assert.That(dot, Does.Contain( "2 [ label=\"YetiCommon.Tests.Util.LeafObj\" id=\"dark googlered\" ];")); Assert.That(dot, Does.Contain( "3 [ label=\"YetiCommon.Tests.Util.LeafObj\" id=\"dark googlered\" ];")); Assert.That(dot, Does.Contain("1 -> 2 [ label=\"array[0]\" ];")); Assert.That(dot, Does.Contain("1 -> 3 [ label=\"array[1]\" ];")); Assert.That(data.RootObject, Is.EqualTo(root)); Assert.That(data.InternalNodes, Is.EquivalentTo(new object[] { root })); Assert.That(data.TruncatedNodes, Is.Empty); Assert.That(data.LeafNodes, Is.EquivalentTo(new object[] { root.array[0], root.array[1] })); }
public void GraphSettings() { var visualizer = new ObjectGraphVisualizer(); IData data; var root = new RootObj(); var dot = visualizer.Visualize(root, out data); Assert.That(dot, Does.Contain("graph [splines=ortho]")); Assert.That(dot, Does.Contain("node [shape=box style=rounded]")); }
public void VisualizeSimpleObjectWithPrimitives() { var visualizer = new ObjectGraphVisualizer(); IData data; var root = new SimpleObj(); var dot = visualizer.Visualize(root, out data); Assert.That(dot, Does.Contain( "1 [ label=\"YetiCommon.Tests.Util.SimpleObj\" id=\"dark googlegreen\" ];")); Assert.That(data.RootObject, Is.EqualTo(root)); Assert.That(data.InternalNodes, Is.Empty); Assert.That(data.TruncatedNodes, Is.Empty); Assert.That(data.LeafNodes, Is.EquivalentTo(new object[] { root })); }
public void VisualizeGraphWithCycle() { var visualizer = new ObjectGraphVisualizer(); IData data; var root = new NodeObj(); root.next = new NodeObj(); root.next.next = root; var dot = visualizer.Visualize(root, out data); Assert.That(dot, Does.Contain( "1 [ label=\"YetiCommon.Tests.Util.NodeObj\" id=\"dark googlegreen\" ];")); Assert.That(dot, Does.Contain("2 [ label=\"YetiCommon.Tests.Util.NodeObj\" ];")); Assert.That(dot, Does.Contain("1 -> 2 [ label=\"next\" ];")); Assert.That(dot, Does.Contain("2 -> 1 [ label=\"next\" ];")); Assert.That(data.RootObject, Is.EqualTo(root)); Assert.That(data.InternalNodes, Is.EquivalentTo(new object[] { root, root.next })); Assert.That(data.TruncatedNodes, Is.Empty); Assert.That(data.LeafNodes, Is.Empty); }
public void InspectObjDelegate() { var visualizer = new ObjectGraphVisualizer( o => { return(o.Object.GetType().Equals(typeof(RootObj))); }); IData data; var root = new RootObj(); var dot = visualizer.Visualize(root, out data); Assert.That(dot, Does.Contain( "1 [ label=\"YetiCommon.Tests.Util.RootObj\" id=\"dark googlegreen\" ];")); Assert.That(dot, Does.Contain( "2 [ label=\"YetiCommon.Tests.Util.InteriorObj\" id=\"googlered\" ];")); Assert.That(dot, Does.Not.Contain("YetiCommon.Tests.Util.LeafObj")); Assert.That(dot, Does.Contain("1 -> 2 [ label=\"interiorObj\" ];")); Assert.That(dot, Does.Not.Contain("2 -> 3")); Assert.That(data.RootObject, Is.EqualTo(root)); Assert.That(data.InternalNodes, Is.EquivalentTo(new object[] { root })); Assert.That(data.TruncatedNodes, Is.EquivalentTo(new object[] { root.interiorObj })); Assert.That(data.LeafNodes, Is.Empty); }
public void VisualizeSimpleGraph() { var visualizer = new ObjectGraphVisualizer(); IData data; var root = new RootObj(); var dot = visualizer.Visualize(root, out data); Assert.That(dot, Does.Contain( "1 [ label=\"YetiCommon.Tests.Util.RootObj\" id=\"dark googlegreen\" ];")); Assert.That(dot, Does.Contain("2 [ label=\"YetiCommon.Tests.Util.InteriorObj\" ];")); Assert.That(dot, Does.Contain( "3 [ label=\"YetiCommon.Tests.Util.LeafObj\" id=\"dark googlered\" ];")); Assert.That(dot, Does.Contain("1 -> 2 [ label=\"interiorObj\" ];")); Assert.That(dot, Does.Contain("2 -> 3 [ label=\"leafObj\" ];")); Assert.That(data.RootObject, Is.EqualTo(root)); Assert.That(data.InternalNodes, Is.EquivalentTo(new object[] { root, root.interiorObj })); Assert.That(data.TruncatedNodes, Is.Empty); Assert.That(data.LeafNodes, Is.EquivalentTo(new object[] { root.interiorObj.leafObj })); }