public void CanDiscardModifiedProject_Cancel_NotSavedAndReturnsFalse() { var windowManager = Substitute.For <IWindowManager>(); var dialogs = Substitute.For <IDialogs>(); var fileSystem = Substitute.For <IFileSystem>(); var processApi = Substitute.For <IProcess>(); dialogs.ShowMessageBox( Arg.Any <string>(), Arg.Any <string>(), Arg.Any <MessageBoxButton>(), Arg.Any <MessageBoxImage>(), Arg.Any <MessageBoxResult>(), Arg.Any <MessageBoxOptions>()) .Returns(MessageBoxResult.Cancel); var sut = new ProjectData(new Settings(), windowManager, dialogs, fileSystem, processApi); sut.Load(Samples.SampleProject); sut.IsModified = true; sut.CanDiscardModifiedProject().Should().BeFalse(); dialogs.Received(1).ShowMessageBox( Arg.Any <string>(), Arg.Any <string>(), Arg.Any <MessageBoxButton>(), Arg.Any <MessageBoxImage>(), Arg.Any <MessageBoxResult>(), Arg.Any <MessageBoxOptions>()); fileSystem.DidNotReceive().WriteAllTextIntoFile(Arg.Any <string>(), Arg.Any <string>()); }