public void CloseDocument_PartWasInserted_ShouldGiveWarningMessage() { // Arrange using var wrapper = new MainWindowViewModelWrapper(); var doc = wrapper.OpenDocument(_sourceFile); wrapper.ViewModel.InsertXml12Command.Execute(); // Act / assert wrapper.AssertMessage(wrapper.ViewModel.CloseDocumentCommand.Execute, MessageBoxImage.Warning, MessageBoxResult.Cancel, "Insert XML not detected as change"); }
public void CloseDocument_IconsRemoved_ShouldShowWarning() { using var wrapper = new MainWindowViewModelWrapper(); var(doc, part) = wrapper.OpenAndInsertPart(_sourceFile); // Insert an icon and save the document wrapper.InsertIcons(part, _redoIcon); using var folder = new TempFolder(); var destination = Path.Combine(folder.FullName, "Output.xlsx"); wrapper.SaveAs(doc, destination); Assert.IsFalse(doc.HasUnsavedChanges, "The icon insertion was apparently not saved"); // Remove it and do the appropriate checks wrapper.ViewModel.SelectedItem = doc.Children.FirstOrDefault(c => c is OfficePartViewModel)?.Children.FirstOrDefault(c => c is IconViewModel); Assert.IsNotNull(wrapper.ViewModel.SelectedItem, "Icon was apparently not created"); wrapper.AssertMessage(wrapper.ViewModel.RemoveCommand.Execute, MessageBoxImage.Warning, MessageBoxResult.Yes); Assert.IsTrue(doc.HasUnsavedChanges, "No unsaved changes detected after removing a part"); wrapper.AssertMessage(wrapper.ViewModel.CloseDocumentCommand.Execute, MessageBoxImage.Warning, MessageBoxResult.Cancel); }
public void RemovePart_ShouldGiveWarningMessage() { // Arrange using var wrapper = new MainWindowViewModelWrapper(); var doc = wrapper.OpenDocument(_sourceFile); wrapper.ViewModel.InsertXml12Command.Execute(); var part = doc.Children.FirstOrDefault(p => p is OfficePartViewModel); Assume.That(part, Is.Not.Null, "No Office part available"); wrapper.ViewModel.SelectedItem = part; // Act / assert wrapper.AssertMessage(wrapper.ViewModel.RemoveCommand.Execute, MessageBoxImage.Warning, MessageBoxResult.Yes); }
public void CloseDocument_PartWasRemoved_GiveWarningMessage() { // Arrange using var wrapper = new MainWindowViewModelWrapper(); var doc = wrapper.OpenDocument(_sourceFile); wrapper.ViewModel.InsertXml12Command.Execute(); var part = doc.Children.FirstOrDefault(p => p is OfficePartViewModel); Assume.That(part, Is.Not.Null, "No Office part available"); wrapper.ViewModel.SelectedItem = part; // Act wrapper.ViewModel.RemoveCommand.Execute(); // Assert Assert.IsTrue(doc.HasUnsavedChanges, "No unsaved changes detected after removing a part"); wrapper.AssertMessage(wrapper.ViewModel.CloseDocumentCommand.Execute, MessageBoxImage.Warning, MessageBoxResult.Cancel); }
public void GenerateCallbacks_ShouldProduceExpectedCallback() { using var wrapper = new MainWindowViewModelWrapper(); var doc = wrapper.OpenDocument(_sourceFile); wrapper.ViewModel.InsertXml12Command.Execute(); var part = doc.Children[0]; wrapper.ViewModel.SelectedItem = part; var tab = wrapper.ViewModel.OpenPartTab(); Assert.NotNull(tab); // This should show a message saying there are no callbacks to be generated part.Contents = @"<customUI xmlns=""http://schemas.microsoft.com/office/2006/01/customui""><ribbon></ribbon></customUI>"; wrapper.AssertMessage(wrapper.ViewModel.GenerateCallbacksCommand.Execute, MessageBoxImage.Information); // This should contain a single callback for the onLoad event part.Contents = @"<customUI onLoad=""CustomLoad"" xmlns=""http://schemas.microsoft.com/office/2006/01/customui""><ribbon></ribbon></customUI>";