public void OpenDocument_Existing_ShouldBeOpened() { // Arrange / act using var wrapper = new MainWindowViewModelWrapper(); var doc = wrapper.OpenDocument(_sourceFile); // Assert Assert.AreEqual("Blank.xlsx", doc.Name); }
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 InsertXml12_PartAlreadyExists_ShouldNotBeInserted() { // Arrange using var wrapper = new MainWindowViewModelWrapper(); var(doc, _) = wrapper.OpenAndInsertPart(_sourceFile, XmlPart.RibbonX12, false); // Act wrapper.ViewModel.InsertXml12Command.Execute(); // Assert Assert.AreEqual(1, doc.Children.Count, "Part was inserted twice"); }
public void Remove_PartSelected_ShouldBeRemoved() { // Arrange using var wrapper = new MainWindowViewModelWrapper(); var(doc, _) = wrapper.OpenAndInsertPart(_sourceFile); // Act wrapper.ViewModel.RemoveCommand.Execute(); // Assert Assert.IsEmpty(doc.Children, "Part was not removed"); }
public void InsertIcons_SingleChosen_ShouldBeInserted() { // Arrange using var wrapper = new MainWindowViewModelWrapper(); var(_, part) = wrapper.OpenAndInsertPart(_sourceFile); // Act wrapper.InsertIcons(part, _undoIcon); // Assert Assert.AreEqual(1, part.Children.Count); Assert.AreEqual("undo", ((IconViewModel)part.Children[0]).Name); }
public void InsertXml14_PartShouldBeInserted() { // Arrange using var wrapper = new MainWindowViewModelWrapper(); var doc = wrapper.OpenDocument(_sourceFile); // Act wrapper.ViewModel.InsertXml14Command.Execute(); // Assert Assert.AreEqual(1, doc.Children.Count); Assert.IsInstanceOf <OfficePartViewModel>(doc.Children[0]); Assert.AreEqual(XmlPart.RibbonX14, ((OfficePartViewModel)doc.Children[0]).Part !.PartType); }
public void SaveAs_CorrectPath_ShouldBeSaved() { // Arrange using var wrapper = new MainWindowViewModelWrapper(); var doc = wrapper.OpenDocument(_sourceFile); using var folder = new TempFolder(); var destination = Path.Combine(folder.FullName, "Saved.xlsx"); // Act wrapper.SaveAs(doc, destination); // Assert Assert.IsTrue(File.Exists(destination), "File was not saved"); }
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 Remove_IconSelected_ShouldBeRemoved() { // Arrange using var wrapper = new MainWindowViewModelWrapper(); var(_, part) = wrapper.OpenAndInsertPart(_sourceFile); wrapper.InsertIcons(part, _undoIcon); Assume.That(part.Children, Is.Not.Empty, "Icon was not inserted"); wrapper.ViewModel.SelectedItem = part.Children[0]; // Act wrapper.ViewModel.RemoveCommand.Execute(); // Assert Assert.IsEmpty(part.Children, "Icon was not removed"); }
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 ValidateXml_ShouldProduceExpectedResult() { using var wrapper = new MainWindowViewModelWrapper(); var doc = wrapper.OpenDocument(_sourceFile); Assume.That(wrapper.ViewModel.SelectedItem?.CanHaveContents, Is.False); wrapper.ViewModel.InsertXml12Command.Execute(); wrapper.ViewModel.SelectedItem = doc.Children[0]; Assert.IsTrue(wrapper.ViewModel.SelectedItem.CanHaveContents); var tmp = wrapper.ViewModel.OpenPartTab(); Assert.NotNull(tmp); var tab = tmp !; void AssertIsValid(bool expected, string?message = null) { var actual = true; void Handler(object?o, DataEventArgs <IResultCollection> e) { actual = e.Data?.IsEmpty ?? false; } tab.ShowResults += Handler; wrapper.ViewModel.ValidateCommand.Execute(); tab.ShowResults -= Handler; Assert.AreEqual(expected, actual, message); } AssertIsValid(false); tab.Part.Contents = "asd"; AssertIsValid(false); tab.Part.Contents = @"<customUI xmlns=""http://schemas.microsoft.com/office/2006/01/customui""><ribbon></ribbon></customUI>"; AssertIsValid(true); tab.Part.Contents = @"<customUI xmlns=""http://schemas.microsoft.com/office/2006/01/customui""><ribbon><tabs></tabs></ribbon></customUI>"; AssertIsValid(false); }
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>";
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); }