public void Cvp_CreateGlobalsViewerIfNotVisible() { var segment = new ImageSegment( ".seg", Address32.Ptr32(0x17), 0, AccessMode.ReadWrite); var label = ".seg global variables"; var uiSvc = AddMockService <IDecompilerShellUiService>(); uiSvc.Expect(s => s.FindDocumentWindow( "CombinedCodeViewInteractor", segment)) .Return(null); var windowPane = mr.Stub <CombinedCodeViewInteractor>(); var windowFrame = mr.StrictMock <IWindowFrame>(); windowFrame.Stub(f => f.Pane).Return(windowPane); uiSvc.Expect(s => s.CreateDocumentWindow( Arg <string> .Is.Equal("CombinedCodeViewInteractor"), Arg <string> .Is.Equal(segment), Arg <string> .Is.Equal(label), Arg <IWindowPane> .Is.Anything)) .Return(windowFrame); windowFrame.Expect(s => s.Show()); mr.ReplayAll(); var codeViewerSvc = new CodeViewerServiceImpl(sc); codeViewerSvc.DisplayGlobals(program, segment); uiSvc.VerifyAllExpectations(); }
public void Cvp_CreateProcedureViewerIfNotVisible() { var m = new ProcedureBuilder(); m.Return(); var uiSvc = AddMockService <IDecompilerShellUiService>(); uiSvc.Expect(s => s.FindDocumentWindow( "CombinedCodeViewInteractor", m.Procedure)) .Return(null); var windowPane = mr.Stub <CombinedCodeViewInteractor>(); var windowFrame = mr.StrictMock <IWindowFrame>(); windowFrame.Stub(f => f.Pane).Return(windowPane); uiSvc.Expect(s => s.CreateDocumentWindow( Arg <string> .Is.Equal("CombinedCodeViewInteractor"), Arg <string> .Is.Equal(m.Procedure), Arg <string> .Is.Equal(m.Procedure.Name), Arg <IWindowPane> .Is.Anything)) .Return(windowFrame); windowFrame.Expect(s => s.Show()); mr.ReplayAll(); var codeViewerSvc = new CodeViewerServiceImpl(sc); codeViewerSvc.DisplayProcedure(program, m.Procedure, true); uiSvc.VerifyAllExpectations(); }
public void Cvp_CreateGlobalsViewerIfNotVisible() { var segment = new ImageSegment( ".seg", Address32.Ptr32(0x17), 0, AccessMode.ReadWrite); var label = ".seg global variables"; var uiSvc = AddMockService <IDecompilerShellUiService>(); uiSvc.Setup(s => s.FindDocumentWindow( "CombinedCodeViewInteractor", segment)) .Returns((IWindowFrame)null) .Verifiable(); var windowPane = new Mock <CombinedCodeViewInteractor>(); var windowFrame = new Mock <IWindowFrame>(); windowFrame.Setup(f => f.Pane).Returns(windowPane.Object); uiSvc.Setup(s => s.CreateDocumentWindow( "CombinedCodeViewInteractor", segment, label, It.IsAny <IWindowPane>())) .Returns(windowFrame.Object); windowFrame.Setup(s => s.Show()).Verifiable(); var codeViewerSvc = new CodeViewerServiceImpl(sc); codeViewerSvc.DisplayGlobals(program, segment); uiSvc.VerifyAll(); windowFrame.VerifyAll(); }
public void Cvp_CreateProcedureViewerIfNotVisible() { var m = new ProcedureBuilder(); m.Return(); var uiSvc = AddMockService <IDecompilerShellUiService>(); uiSvc.Setup(s => s.FindDocumentWindow( "CombinedCodeViewInteractor", m.Procedure)) .Returns((IWindowFrame)null) .Verifiable(); var windowPane = new Mock <CombinedCodeViewInteractor>(); var windowFrame = new Mock <IWindowFrame>(); windowFrame.Setup(f => f.Pane).Returns(windowPane.Object); uiSvc.Setup(s => s.CreateDocumentWindow( "CombinedCodeViewInteractor", m.Procedure, m.Procedure.Name, It.IsAny <IWindowPane>())) .Returns(windowFrame.Object) .Verifiable(); windowFrame.Setup(s => s.Show()) .Verifiable(); var codeViewerSvc = new CodeViewerServiceImpl(sc); codeViewerSvc.DisplayProcedure(program, m.Procedure, true); uiSvc.VerifyAll(); windowFrame.VerifyAll(); }
public void Cvp_CreateViewerIfNotVisible() { var m = new ProcedureBuilder(); m.Return(); var uiSvc = AddMockService <IDecompilerShellUiService>(); uiSvc.Expect(s => s.FindDocumentWindow( "codeViewerWindow", m.Procedure)) .Return(null); var windowFrame = MockRepository.GenerateStub <IWindowFrame>(); uiSvc.Expect(s => s.CreateDocumentWindow( Arg <string> .Is.Equal("codeViewerWindow"), Arg <string> .Is.Equal(m.Procedure), Arg <string> .Is.Equal(m.Procedure.Name), Arg <IWindowPane> .Is.Anything)) .Return(windowFrame); windowFrame.Expect(s => s.Show()); var codeViewerSvc = new CodeViewerServiceImpl(sc); codeViewerSvc.DisplayProcedure(program, m.Procedure); uiSvc.VerifyAllExpectations(); }
private void CreateServices(IServiceFactory svcFactory, IServiceContainer sc, DecompilerMenus dm) { sc.AddService <DecompilerHost>(this); config = svcFactory.CreateDecompilerConfiguration(); sc.AddService(typeof(IConfigurationService), config); var cmdFactory = new Commands.CommandFactory(sc); sc.AddService <ICommandFactory>(cmdFactory); sc.AddService(typeof(IStatusBarService), (IStatusBarService)this); diagnosticsSvc = svcFactory.CreateDiagnosticsService(form.DiagnosticsList); sc.AddService(typeof(IDiagnosticsService), diagnosticsSvc); decompilerSvc = svcFactory.CreateDecompilerService(); sc.AddService(typeof(IDecompilerService), decompilerSvc); uiSvc = svcFactory.CreateShellUiService(form, dm); subWindowCommandTarget = uiSvc; sc.AddService(typeof(IDecompilerShellUiService), uiSvc); sc.AddService(typeof(IDecompilerUIService), uiSvc); var codeViewSvc = new CodeViewerServiceImpl(sc); sc.AddService <ICodeViewerService>(codeViewSvc); var segmentViewSvc = new ImageSegmentServiceImpl(sc); sc.AddService(typeof(ImageSegmentService), segmentViewSvc); var del = svcFactory.CreateDecompilerEventListener(); workerDlgSvc = (IWorkerDialogService)del; sc.AddService(typeof(IWorkerDialogService), workerDlgSvc); sc.AddService(typeof(DecompilerEventListener), del); loader = svcFactory.CreateLoader(); sc.AddService <ILoader>(loader); var abSvc = svcFactory.CreateArchiveBrowserService(); sc.AddService <IArchiveBrowserService>(abSvc); sc.AddService <ILowLevelViewService>(svcFactory.CreateMemoryViewService()); sc.AddService <IDisassemblyViewService>(svcFactory.CreateDisassemblyViewService()); var tlSvc = svcFactory.CreateTypeLibraryLoaderService(); sc.AddService <ITypeLibraryLoaderService>(tlSvc); this.projectBrowserSvc = svcFactory.CreateProjectBrowserService(form.ProjectBrowser); sc.AddService <IProjectBrowserService>(projectBrowserSvc); var upSvc = svcFactory.CreateUiPreferencesService(); sc.AddService <IUiPreferencesService>(upSvc); var fsSvc = svcFactory.CreateFileSystemService(); sc.AddService <IFileSystemService>(fsSvc); this.searchResultsTabControl = svcFactory.CreateTabControlHost(form.TabControl); sc.AddService <ITabControlHostService>(this.searchResultsTabControl); srSvc = svcFactory.CreateSearchResultService(form.FindResultsList); sc.AddService <ISearchResultService>(srSvc); searchResultsTabControl.Attach((IWindowPane)srSvc, form.FindResultsPage); searchResultsTabControl.Attach((IWindowPane)diagnosticsSvc, form.DiagnosticsPage); var resEditService = svcFactory.CreateResourceEditorService(); sc.AddService <IResourceEditorService>(resEditService); var cgvSvc = svcFactory.CreateCallGraphViewService(); sc.AddService <ICallGraphViewService>(cgvSvc); var viewImpSvc = svcFactory.CreateViewImportService(); sc.AddService <IViewImportsService>(viewImpSvc); }