public DotBuilder Write(DirectedGraph graph) { Begin(); graph.Nodes.ForEach(Append); graph.Edges.ForEach(Append); End(); return this; }
public void Should_support_INodeFactory_injection() { var nodeFactory = new NodeFactoryStub(); var createCalled = false; nodeFactory.CreateHandler = () => { createCalled = true; return new Node(); }; var graph = new DirectedGraph(nodeFactory); graph.AddNode(); createCalled.ShouldBe(true); }
static void Main(string[] args) { var config = XmlConfiguration.FromFile(args[0]).Read<ProjectConfiguration>(); var loader = new StaticAssemblyLoader(); var assemblies = new List<IAssembly>(); var fs = new FileSystem(); fs.GetFiles(new Pencil.IO.Path(config.BinPath), "*.*") .ForEach(IsAssembly, path => { var assembly = AssemblyLoader.LoadFrom(path.ToString()); loader.Register(assembly); assemblies.Add(assembly); }); var digraph = new DirectedGraph(); var dependencies = new AssemblyDependencyGraph(digraph, loader, IgnoreFilter.From(config.IgnoreAssemblies)); assemblies.ForEach(dependencies.Add); new Pipe("invalid_path_to_dot", "-Tpng").Transfer( stream => new DotBuilder(stream).Write(digraph), stream => fs.WriteFile(new Path("output.png"), stream)); }
AssemblyDependencyGraph NewDependencyGraph(DirectedGraph target) { return new AssemblyDependencyGraph(target, new AssemblyLoaderStub()); }
static string ToDot(DirectedGraph graph) { return new DotBuilder(new StringWriter()).Write(graph).Target.ToString(); }