public void DiagramWithNoDependencies()
        {
            using (MemoryStream memoryStream = new MemoryStream())
            {
                TestDiagram.From(memoryStream)
                .Component("A").WithStereoTypes("TestAssembly.Diagram.NoDependencies.Independent.*")
                .Component("B").WithStereoTypes("TestAssembly.Diagram.NoDependencies.SomeNamespace.*")
                .Write();

                AssertNoViolation(memoryStream, "NoDependencies");
            }
        }
        public void DefinedButUnusedDependencyIsAllowed()
        {
            using (MemoryStream memoryStream = new MemoryStream())
            {
                TestDiagram.From(memoryStream)
                .Component("SomeOrigin").WithStereoTypes("TestAssembly.Diagram.NoDependencies.Independent.*")
                .Component("SomeTarget").WithStereoTypes("TestAssembly.Diagram.NoDependencies.SomeNamespace.*")
                .DependencyFrom("SomeOrigin").To("SomeTarget")
                .Write();

                AssertNoViolation(memoryStream, "NoDependencies");
            }
        }
        public void DiagramWithNoDependenciesFileBased()
        {
            string path = Path.Combine(Path.GetTempPath(), "plantuml_diagram_" + Guid.NewGuid() + ".puml");

            using (FileStream fileStream = File.Create(path))
            {
                TestDiagram.From(fileStream)
                .Component("A").WithStereoTypes("TestAssembly.Diagram.NoDependencies.Independent.*")
                .Component("B").WithStereoTypes("TestAssembly.Diagram.NoDependencies.SomeNamespace.*")
                .Write();
            }
            AssertNoViolation(path, "NoDependencies");
        }
        public MainWindowViewModel()
        {
            _testModel = new TestModelBuilder().Create();
            //_testModel = new BigTestModelBuilder().Create(4, 4);

            _testDiagram = new TestDiagram(_testModel);

            DiagramViewModel = new DiagramViewModel(_testDiagram, minZoom: 0.2, maxZoom: 5, initialZoom: 1);
            DiagramViewModel.ShowSourceRequested     += shape => Debug.WriteLine($"ShowSourceRequest: {shape.ModelItem.ToString()}");
            DiagramViewModel.ShowModelItemsRequested += i => _testDiagram.ShowModelItems(i);

            AddCommand             = new DelegateCommand(AddShapes);
            RemoveCommand          = new DelegateCommand(RemoveShapes);
            ZoomToContentCommand   = new DelegateCommand(ZoomToContent);
            CopyToClipboardCommand = new DelegateCommand(CopyToClipboardAsync);

            SelectedDpi = 300;
        }