public void GivenRiskeerGuiWithStorageSql_WhenRunWithMigratedFile_MigratedProjectSet(string sourceFilePath) { string targetFilePath = Path.Combine(workingDirectory, nameof(GivenRiskeerGuiWithStorageSql_WhenRunWithMigratedFile_MigratedProjectSet)); MigrateFile(sourceFilePath, targetFilePath); // Given var projectStore = new StorageSqLite(); var mocks = new MockRepository(); var inquiryHelper = mocks.StrictMock <IInquiryHelper>(); mocks.ReplayAll(); var projectMigrator = new ProjectMigrator(inquiryHelper); var guiCoreSettings = new GuiCoreSettings { ApplicationIcon = SystemIcons.Application }; using (var gui = new GuiCore(new MainWindow(), projectStore, projectMigrator, new RiskeerProjectFactory(() => null), guiCoreSettings)) { // When gui.Run(targetFilePath); // Then Assert.AreEqual(targetFilePath, gui.ProjectFilePath); Assert.NotNull(gui.Project); string expectedProjectName = Path.GetFileNameWithoutExtension(targetFilePath); Assert.AreEqual(expectedProjectName, gui.Project.Name); Assert.AreEqual("description", gui.Project.Description); Assert.IsInstanceOf <RiskeerProject>(gui.Project); } mocks.VerifyAll(); }
public void GivenRiskeerGui_WhenRunWithUnmigratedFileAndNoInquireContinuation_MigratedProjectNotSet(string sourceFilePath) { // Given var projectStore = new StorageSqLite(); var mocks = new MockRepository(); var inquiryHelper = mocks.Stub <IInquiryHelper>(); inquiryHelper.Expect(helper => helper.InquireContinuation(null)) .IgnoreArguments() .Return(false); mocks.ReplayAll(); var projectMigrator = new ProjectMigrator(inquiryHelper); using (var gui = new GuiCore(new MainWindow(), projectStore, projectMigrator, new RiskeerProjectFactory(() => null), new GuiCoreSettings())) { // When gui.Run(sourceFilePath); // Then Assert.IsNull(gui.ProjectFilePath); Assert.IsNull(gui.Project); } mocks.VerifyAll(); }
public void GivenPluginWithGuiSetAndOpenedDuneLocationCalculationsView_WhenUserDefinedTargetProbabilityRemovedFromCollectionAndObserversNotified_ThenViewTitleUpdated() { // Given var mocks = new MockRepository(); var projectStore = mocks.Stub <IStoreProject>(); var projectMigrator = mocks.Stub <IMigrateProject>(); var projectFactory = mocks.Stub <IProjectFactory>(); var project = mocks.Stub <IProject>(); var assessmentSection = mocks.Stub <IAssessmentSection>(); mocks.ReplayAll(); using (var gui = new GuiCore(new MainWindow(), projectStore, projectMigrator, projectFactory, new GuiCoreSettings())) { gui.Plugins.AddRange(new PluginBase[] { new DuneErosionPlugin() }); gui.Run(); gui.SetProject(project, null); const double targetProbability = 0.1; var removedCalculations = new DuneLocationCalculationsForTargetProbability(targetProbability); var affectedCalculations = new DuneLocationCalculationsForTargetProbability(targetProbability); var failureMechanism = new DuneErosionFailureMechanism { DuneLocationCalculationsForUserDefinedTargetProbabilities = { removedCalculations, affectedCalculations } }; gui.DocumentViewController.CloseAllViews(); gui.DocumentViewController.OpenViewForData(new DuneLocationCalculationsForUserDefinedTargetProbabilityContext(affectedCalculations, failureMechanism, assessmentSection)); IView view = gui.ViewHost.DocumentViews.First(); // Precondition Assert.IsInstanceOf <DuneLocationCalculationsView>(view); Assert.IsTrue(AvalonDockViewHostTestHelper.IsTitleSet((AvalonDockViewHost)gui.ViewHost, view, "Hydraulische belastingen - 1/10 (1)")); // When failureMechanism.DuneLocationCalculationsForUserDefinedTargetProbabilities.Remove(removedCalculations); failureMechanism.DuneLocationCalculationsForUserDefinedTargetProbabilities.NotifyObservers(); // Then Assert.IsTrue(AvalonDockViewHostTestHelper.IsTitleSet((AvalonDockViewHost)gui.ViewHost, view, "Hydraulische belastingen - 1/10")); mocks.VerifyAll(); } }
public void GivenPluginWithGuiSetAndOpenedDuneLocationCalculationsView_WhenRemovingDataForOpenedViewAndObserversNotified_ThenNoExceptionThrown() { // Given var mocks = new MockRepository(); var projectStore = mocks.Stub <IStoreProject>(); var projectMigrator = mocks.Stub <IMigrateProject>(); var projectFactory = mocks.Stub <IProjectFactory>(); var project = mocks.Stub <IProject>(); var assessmentSection = mocks.Stub <IAssessmentSection>(); mocks.ReplayAll(); using (var gui = new GuiCore(new MainWindow(), projectStore, projectMigrator, projectFactory, new GuiCoreSettings())) { gui.Plugins.AddRange(new PluginBase[] { new DuneErosionPlugin() }); gui.Run(); gui.SetProject(project, null); var calculations = new DuneLocationCalculationsForTargetProbability(0.1); var failureMechanism = new DuneErosionFailureMechanism { DuneLocationCalculationsForUserDefinedTargetProbabilities = { calculations } }; gui.SetProject(project, null); gui.DocumentViewController.CloseAllViews(); gui.DocumentViewController.OpenViewForData(new DuneLocationCalculationsForUserDefinedTargetProbabilityContext(calculations, failureMechanism, assessmentSection)); IView view = gui.ViewHost.DocumentViews.First(); // Precondition Assert.IsInstanceOf <DuneLocationCalculationsView>(view); // When failureMechanism.DuneLocationCalculationsForUserDefinedTargetProbabilities.Remove(calculations); void Call() => failureMechanism.DuneLocationCalculationsForUserDefinedTargetProbabilities.NotifyObservers(); // Then Assert.DoesNotThrow(Call); mocks.VerifyAll(); } }
/// <summary> /// 运行执行 /// </summary> /// <param name="rootNode">树形结构</param> private void RunT(object rootNode) { GuiViewEvent.UiViewResult += ChangeResult; //绑定事件 GuiViewEvent.UiViewSteps += ChangeView; //绑定事件 ComArgs.RoLog.WriteLog(LogStatus.LInfo, "脚本执行工具执行GuiCore方法..."); GuiCore guiCore = new GuiCore(rootNode as TreeNode); //正式开始执行脚本 if (MessageBox.Show(@"运行完成!", @"通知") == DialogResult.OK) { ComArgs.RoLog.DisposeLog(); //RoLog完成生命周期 GC.Collect(); //释放资源 GuiViewEvent.UiViewResult -= ChangeResult; //解绑事件 GuiViewEvent.UiViewSteps -= ChangeView; //解绑事件 Start.Text = @"开始运行"; } }
private void OnStartup(object sender, StartupEventArgs e) { ParseArguments(e.Args); DeleteOldLogFiles(); Resources.Add(SystemParameters.MenuPopupAnimationKey, PopupAnimation.None); var settings = new GuiCoreSettings { ApplicationName = "Riskeer", ApplicationIcon = ApplicationResources.Riskeer, SupportHeader = ApplicationResources.SupportHeader, SupportText = ApplicationResources.SupportText, SupportWebsiteAddressUrl = "https://iplo.nl/contact/", SupportPhoneNumber = "088-7970790", ManualFilePath = "Gebruikershandleiding Riskeer 22.1.1.pdf", MadeByBitmapImage = new BitmapImage(new Uri($"{PackUriHelper.UriSchemePack}://application:,,,/Resources/MadeBy.png")) }; var mainWindow = new MainWindow(); var projectMigrator = new ProjectMigrator(new DialogBasedInquiryHelper(mainWindow)); var assessmentSectionFromFileHandler = new AssessmentSectionFromFileHandler(mainWindow); var projectFactory = new RiskeerProjectFactory(() => assessmentSectionFromFileHandler.GetAssessmentSectionFromFile()); gui = new GuiCore(mainWindow, new StorageSqLite(), projectMigrator, projectFactory, settings) { Plugins = { new RiskeerPlugin(), new ClosingStructuresPlugin(), new StabilityPointStructuresPlugin(), new WaveImpactAsphaltCoverPlugin(), new GrassCoverErosionInwardsPlugin(), new GrassCoverErosionOutwardsPlugin(), new PipingPlugin(), new HeightStructuresPlugin(), new StabilityStoneCoverPlugin(), new DuneErosionPlugin(), new MacroStabilityInwardsPlugin() } }; RunRiskeer(); }
public void GivenRiskeerGui_WhenRunWithUnmigratedFileAndInquireContinuation_MigratedProjectSet(string sourceFilePath) { // Given string targetFilePath = Path.Combine(workingDirectory, nameof(GivenRiskeerGui_WhenRunWithUnmigratedFileAndInquireContinuation_MigratedProjectSet)); var projectStore = new StorageSqLite(); var mocks = new MockRepository(); var inquiryHelper = mocks.Stub <IInquiryHelper>(); inquiryHelper.Expect(helper => helper.InquireContinuation(null)) .IgnoreArguments() .Return(true); inquiryHelper.Expect(helper => helper.GetTargetFileLocation(null, null)) .IgnoreArguments() .Return(targetFilePath); mocks.ReplayAll(); var projectMigrator = new ProjectMigrator(inquiryHelper); var guiCoreSettings = new GuiCoreSettings { ApplicationIcon = SystemIcons.Application }; using (var gui = new GuiCore(new MainWindow(), projectStore, projectMigrator, new RiskeerProjectFactory(() => null), guiCoreSettings)) { // When gui.Run(sourceFilePath); // Then Assert.AreEqual(targetFilePath, gui.ProjectFilePath); string expectedProjectName = Path.GetFileNameWithoutExtension(targetFilePath); Assert.AreEqual(expectedProjectName, gui.Project.Name); Assert.AreEqual("description", gui.Project.Description); Assert.IsInstanceOf <RiskeerProject>(gui.Project); } mocks.VerifyAll(); }