예제 #1
0
파일: DotBuilder.cs 프로젝트: danaxa/Pencil
 public DotBuilder Write(DirectedGraph graph)
 {
     Begin();
     graph.Nodes.ForEach(Append);
     graph.Edges.ForEach(Append);
     End();
     return this;
 }
예제 #2
0
        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);
        }
예제 #3
0
파일: Program.cs 프로젝트: danaxa/Pencil
        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));
        }
예제 #4
0
 AssemblyDependencyGraph NewDependencyGraph(DirectedGraph target)
 {
     return new AssemblyDependencyGraph(target, new AssemblyLoaderStub());
 }
예제 #5
0
 static string ToDot(DirectedGraph graph)
 {
     return new DotBuilder(new StringWriter()).Write(graph).Target.ToString();
 }