Skip to content

Commit 1525508

Browse files
committed
Writer: add another integration test
1 parent 0742803 commit 1525508

File tree

2 files changed

+40
-1
lines changed

2 files changed

+40
-1
lines changed
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
using System.ComponentModel.Composition;
22
using System.Waf.UnitTesting.Mocks;
3+
using Waf.Writer.Applications.ViewModels;
34
using Waf.Writer.Applications.Views;
45

56
namespace Test.Writer.Applications.Views;
67

78
[Export(typeof(IStartView))]
8-
public class MockStartView : MockView, IStartView
9+
public class MockStartView : MockView<StartViewModel>, IStartView
910
{
1011
}

src/System.Waf/Samples/Writer/Writer.Presentation.Test/IntegrationTest.cs

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
using Microsoft.VisualStudio.TestTools.UnitTesting;
22
using System.Waf.UnitTesting.Mocks;
33
using Test.Writer.Applications.Services;
4+
using Test.Writer.Applications.Views;
5+
using Waf.Writer.Applications.ViewModels;
6+
using Waf.Writer.Applications.Views;
47

58
namespace Test.Writer.Presentation;
69

@@ -23,4 +26,39 @@ public void OpenDocumentViaCommandLineIntegrationTest()
2326
Assert.AreEqual(MessageType.Error, messageService.MessageType);
2427
Assert.IsFalse(string.IsNullOrEmpty(messageService.Message));
2528
}
29+
30+
[TestMethod]
31+
public void NewModifyAndCloseWithoutSave()
32+
{
33+
StartApp();
34+
var shellViewModel = Get<ShellViewModel>();
35+
var mainView = (MockMainView)shellViewModel.ContentView;
36+
Assert.AreEqual(ContentViewState.StartViewVisible, mainView.ContentViewState);
37+
var mainViewModel = mainView.ViewModel;
38+
39+
mainViewModel.FileService.NewCommand.Execute(null);
40+
Assert.AreEqual(ContentViewState.DocumentViewVisible, mainView.ContentViewState);
41+
var richTextView = (MockRichTextView)mainViewModel.ActiveDocumentView!;
42+
var richTextViewModel = richTextView.ViewModel;
43+
var shellService = shellViewModel.ShellService;
44+
45+
Assert.IsFalse(shellService.ActiveZoomCommands.ZoomInCommand.CanExecute(null));
46+
richTextViewModel.IsVisible = true;
47+
Assert.IsTrue(shellService.ActiveZoomCommands.ZoomInCommand.CanExecute(null));
48+
Assert.AreSame(richTextViewModel, shellService.ActiveEditingCommands);
49+
50+
richTextViewModel.Document.Modified = true;
51+
52+
bool showDialogActionShown = false;
53+
MockSaveChangesView.ShowDialogAction = v =>
54+
{
55+
showDialogActionShown = true;
56+
v.ViewModel.NoCommand.Execute(null);
57+
};
58+
59+
mainViewModel.FileService.CloseCommand.Execute(null);
60+
Assert.IsTrue(showDialogActionShown);
61+
Assert.IsNull(mainViewModel.ActiveDocumentView);
62+
Assert.AreEqual(ContentViewState.StartViewVisible, mainView.ContentViewState);
63+
}
2664
}

0 commit comments

Comments
 (0)