public void Test_OpenDiagramEditor_Closed() { // Arrange. var diagram = new Diagram { File = testDiagramFile }; var diagramPreview = new PreviewDiagramViewModel(diagram); var editor = new Mock <IDiagramEditor>(); editor.SetupGet(e => e.Diagram).Returns(diagram); var diagramManager = CreateManager(d => editor.Object); diagramManager.OpenDiagramCommand.Execute(diagramPreview); DiagramClosedEventArgs closedArgs = null; diagramManager.DiagramClosed += (o, e) => closedArgs = e; // Act. editor.Raise(e => e.Closed += null, EventArgs.Empty); // Assert. Assert.Empty(diagramManager.OpenDiagrams); editor.Verify(e => e.SaveAsync(), Times.Never()); editor.Verify(e => e.Dispose()); Assert.NotNull(closedArgs); Assert.Equal(diagram, closedArgs.Diagram); }
private void diagramManager_DiagramClosed(object sender, DiagramClosedEventArgs e) { _settings.RecentFiles.Add(e.Diagram.File); _settings.OpenFiles.FirstOrNone(file => fileComparer.Equals(file, e.Diagram.File)).Apply(file => _settings.OpenFiles.Remove(file)); }