public async Task Test_OpenDiagram_When_PreviewAlreadyExists() { // Arrange. string filePath = Path.Combine(diagramLocation.FullName, "TestFile.puml"); var existingDiagram = new Diagram { File = new FileInfo(filePath) }; var existingPreview = new PreviewDiagramViewModel(existingDiagram); explorer.PreviewDiagrams.Add(existingPreview); var diagramUri = new Uri(filePath, UriKind.Absolute); diagramIO.Setup(io => io.ReadAsync(It.Is <FileInfo>(f => f.FullName == filePath))) .Returns((FileInfo file) => Task.FromResult(new Diagram { File = file })); OpenPreviewRequestedEventArgs openArgs = null; explorer.OpenPreviewRequested += (o, e) => openArgs = e; // Act. var openedDiagram = await explorer.OpenDiagramAsync(diagramUri); // Assert. Assert.Same(existingDiagram, openedDiagram); Assert.Same(existingPreview.Diagram, explorer.PreviewDiagrams.Single().Diagram); Assert.NotNull(openArgs); Assert.Same(existingPreview, openArgs.RequestedPreview); }
public void Test_AddNewDiagramCommand_Unsuccessful() { // Arrange. string newDiagramFilePath = Path.Combine(diagramLocation.FullName, "new-diagram.puml"); diagramIO.Setup(dio => dio.SaveAsync(It.IsAny <Diagram>(), It.IsAny <bool>())) .Returns(Task.FromException(new InvalidOperationException())); explorer.DiagramLocation = diagramLocation; explorer.NewDiagramTemplate = "New Diagram"; OpenPreviewRequestedEventArgs newDiagramArgs = null; explorer.OpenPreviewRequested += (o, e) => newDiagramArgs = e; // Act. explorer.AddNewDiagramCommand.Execute(new Uri(newDiagramFilePath)); // Assert. Assert.Null(newDiagramArgs); diagramIO.Verify(dio => dio.SaveAsync( It.Is <Diagram>(d => d.Content == "New Diagram" && d.File.FullName == newDiagramFilePath), false)); }
public void Test_AddNewDiagramCommand() { // Arrange. string newDiagramFilePath = Path.Combine(diagramLocation.FullName, "new-diagram.puml"); explorer.DiagramLocation = diagramLocation; explorer.NewDiagramTemplate = "New Diagram"; OpenPreviewRequestedEventArgs newDiagramArgs = null; explorer.OpenPreviewRequested += (o, e) => newDiagramArgs = e; diagramIO.Setup(dio => dio.ReadAsync(It.IsAny <FileInfo>())) .Returns((FileInfo file) => Task.FromResult(new Diagram { File = file })); // Act. explorer.AddNewDiagramCommand.Execute(new Uri(newDiagramFilePath)); // Assert. Assert.Single(explorer.PreviewDiagrams); Assert.Equal(newDiagramFilePath, explorer.PreviewDiagrams.Single().Diagram.File.FullName); Assert.NotNull(newDiagramArgs); Assert.Equal(explorer.PreviewDiagrams.Single(), newDiagramArgs.RequestedPreview); Assert.Equal(explorer.PreviewDiagrams.Single(), explorer.CurrentPreviewDiagram); diagramIO.Verify(dio => dio.SaveAsync( It.Is <Diagram>(d => d.File.FullName == newDiagramFilePath), false)); }
public void Test_RequestOpenPreviewCommand() { // Arrange. var preview = new PreviewDiagramViewModel(new Diagram()); OpenPreviewRequestedEventArgs args = null; EventHandler <OpenPreviewRequestedEventArgs> handler = (o, e) => args = e; explorer.OpenPreviewRequested += handler; // Act. explorer.RequestOpenPreviewCommand.Execute(preview); // Assert. Assert.NotNull(args); Assert.Equal(preview, args.RequestedPreview); }