private void checkPlugInStatus(StackHashBugTrackerPlugInSelectionCollection plugIns) { System.Exception ex = m_TaskParameters.PlugInContext.GetLastError(plugIns); if (ex != null) { throw new StackHashException("Plug-in call failed", ex, StackHashServiceErrorCode.BugTrackerPlugInError); } }
public override void EntryPoint() { SetTaskStarted(m_TaskParameters.ErrorIndex); StackHashUtilities.SystemInformation.DisableSleep(); m_PlugIns = m_TaskParameters.PlugIns; try { // If a full sync has been requested then stop the BugTrackerTask reporting any events until the // sync is complete. BugTrackerReportType highestReportType = getHighestLevelReport(m_TaskParameters.ReportRequest); if (highestReportType == BugTrackerReportType.ManualFull) { // Disable logging by the BugTrackerManager. m_TaskParameters.ErrorIndex.UpdateTableActive = false; // Clear the update list. m_TaskParameters.ErrorIndex.ClearAllUpdates(); } processAllReportRequests(); } catch (System.Exception ex) { LastException = ex; } finally { try { // Reenable logging by the BugTrackerManager. m_TaskParameters.ErrorIndex.UpdateTableActive = true; } finally { StackHashUtilities.SystemInformation.EnableSleep(); SetTaskCompleted(m_TaskParameters.ErrorIndex); } } }
public void LogInCallback() { // Empty so shouldn't report anything. StackHashBugTrackerPlugInSelectionCollection plugIns = new StackHashBugTrackerPlugInSelectionCollection(); String dllLocation = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); String[] folders = { dllLocation }; BugTrackerTrace.LogMessageHook += new EventHandler <BugTrackerTraceEventArgs>(LogPlugInEvent); try { BugTrackerManager manager = new BugTrackerManager(folders); StackHashBugTrackerPlugInSettings plugInSettings = new StackHashBugTrackerPlugInSettings(); plugInSettings.PlugInSettings = new StackHashBugTrackerPlugInCollection(); plugInSettings.PlugInSettings.Add(new StackHashBugTrackerPlugIn()); plugInSettings.PlugInSettings[0].Name = "TestPlugIn"; plugInSettings.PlugInSettings[0].Enabled = true; BugTrackerContext plugInContext = new BugTrackerContext(manager, plugInSettings); Assert.AreEqual(true, manager.NumberOfPlugIns >= 1); Assert.AreEqual(true, m_CallBackCount > 0); StackHashBugTrackerPlugInDiagnosticsCollection fullDiagnostics = plugInContext.GetContextDiagnostics("TestPlugIn"); Assert.AreEqual(1, fullDiagnostics.Count); NameValueCollection diagnostics = fullDiagnostics[0].Diagnostics.ToNameValueCollection(); Assert.AreEqual("0", diagnostics["ProductAddedCount"]); Assert.AreEqual("0", diagnostics["ProductUpdatedCount"]); Assert.AreEqual("0", diagnostics["FileAddedCount"]); Assert.AreEqual("0", diagnostics["FileUpdatedCount"]); Assert.AreEqual("0", diagnostics["EventAddedCount"]); Assert.AreEqual("0", diagnostics["EventUpdatedCount"]); Assert.AreEqual("0", diagnostics["EventNoteAddedCount"]); Assert.AreEqual("0", diagnostics["CabAddedCount"]); Assert.AreEqual("0", diagnostics["CabUpdatedCount"]); Assert.AreEqual("0", diagnostics["CabNoteAddedCount"]); BugTrackerProduct product = new BugTrackerProduct("Name", "Version", 1); BugTrackerFile file = new BugTrackerFile("FileName", "FileVersion", 2); BugTrackerEvent theEvent = new BugTrackerEvent("BugRef", "PlugInBugRef", 1, "EventTypeName", 1, new NameValueCollection()); BugTrackerCab cab = new BugTrackerCab(1, 100, false, false, new NameValueCollection(), "c:\\test.cab"); plugInContext.ProductAdded(plugIns, BugTrackerReportType.Automatic, product); plugInContext.ProductUpdated(plugIns, BugTrackerReportType.Automatic, product); plugInContext.FileAdded(plugIns, BugTrackerReportType.Automatic, product, file); plugInContext.FileUpdated(plugIns, BugTrackerReportType.Automatic, product, file); plugInContext.EventAdded(plugIns, BugTrackerReportType.Automatic, product, file, theEvent); plugInContext.EventUpdated(plugIns, BugTrackerReportType.Automatic, product, file, theEvent); plugInContext.EventManualUpdateCompleted(plugIns, BugTrackerReportType.Automatic, product, file, theEvent); plugInContext.EventNoteAdded(plugIns, BugTrackerReportType.Automatic, product, file, theEvent, new BugTrackerNote()); plugInContext.CabAdded(plugIns, BugTrackerReportType.Automatic, product, file, theEvent, cab); plugInContext.CabUpdated(plugIns, BugTrackerReportType.Automatic, product, file, theEvent, cab); plugInContext.CabNoteAdded(plugIns, BugTrackerReportType.Automatic, product, file, theEvent, cab, new BugTrackerNote()); fullDiagnostics = plugInContext.GetContextDiagnostics("TestPlugIn"); Assert.AreEqual(1, fullDiagnostics.Count); diagnostics = fullDiagnostics[0].Diagnostics.ToNameValueCollection(); Assert.AreEqual("0", diagnostics["ProductAddedCount"]); Assert.AreEqual("0", diagnostics["ProductUpdatedCount"]); Assert.AreEqual("0", diagnostics["FileAddedCount"]); Assert.AreEqual("0", diagnostics["FileUpdatedCount"]); Assert.AreEqual("0", diagnostics["EventAddedCount"]); Assert.AreEqual("0", diagnostics["EventCompleteCount"]); Assert.AreEqual("0", diagnostics["EventUpdatedCount"]); Assert.AreEqual("0", diagnostics["EventNoteAddedCount"]); Assert.AreEqual("0", diagnostics["CabAddedCount"]); Assert.AreEqual("0", diagnostics["CabUpdatedCount"]); Assert.AreEqual("0", diagnostics["CabNoteAddedCount"]); } finally { BugTrackerTrace.LogMessageHook -= new EventHandler <BugTrackerTraceEventArgs>(LogPlugInEvent); } }
public void InvokeEachMethodSpecifyCorrectPlugIn() { StackHashBugTrackerPlugInSelectionCollection plugIns = new StackHashBugTrackerPlugInSelectionCollection(); plugIns.Add(new StackHashBugTrackerPlugInSelection("TestPlugIn")); String dllLocation = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); String[] folders = { dllLocation }; BugTrackerManager manager = new BugTrackerManager(folders); StackHashBugTrackerPlugInSettings plugInSettings = new StackHashBugTrackerPlugInSettings(); plugInSettings.PlugInSettings = new StackHashBugTrackerPlugInCollection(); plugInSettings.PlugInSettings.Add(new StackHashBugTrackerPlugIn()); plugInSettings.PlugInSettings[0].Name = "TestPlugIn"; plugInSettings.PlugInSettings[0].Enabled = true; BugTrackerContext plugInContext = new BugTrackerContext(manager, plugInSettings); Assert.AreEqual(true, manager.NumberOfPlugIns >= 1); StackHashBugTrackerPlugInDiagnosticsCollection fullDiagnostics = plugInContext.GetContextDiagnostics("TestPlugIn"); Assert.AreEqual(1, fullDiagnostics.Count); NameValueCollection diagnostics = fullDiagnostics[0].Diagnostics.ToNameValueCollection(); Assert.AreEqual("0", diagnostics["ProductAddedCount"]); Assert.AreEqual("0", diagnostics["ProductUpdatedCount"]); Assert.AreEqual("0", diagnostics["FileAddedCount"]); Assert.AreEqual("0", diagnostics["FileUpdatedCount"]); Assert.AreEqual("0", diagnostics["EventAddedCount"]); Assert.AreEqual("0", diagnostics["EventUpdatedCount"]); Assert.AreEqual("0", diagnostics["EventNoteAddedCount"]); Assert.AreEqual("0", diagnostics["CabAddedCount"]); Assert.AreEqual("0", diagnostics["CabUpdatedCount"]); Assert.AreEqual("0", diagnostics["CabNoteAddedCount"]); BugTrackerProduct product = new BugTrackerProduct("Name", "Version", 1); BugTrackerFile file = new BugTrackerFile("FileName", "FileVersion", 2); BugTrackerEvent theEvent = new BugTrackerEvent("BugRef", "PlugInBugRef", 1, "EventTypeName", 1, new NameValueCollection()); BugTrackerCab cab = new BugTrackerCab(1, 100, false, false, new NameValueCollection(), "c:\\test.cab"); plugInContext.ProductAdded(plugIns, BugTrackerReportType.Automatic, product); plugInContext.ProductUpdated(plugIns, BugTrackerReportType.Automatic, product); plugInContext.FileAdded(plugIns, BugTrackerReportType.Automatic, product, file); plugInContext.FileUpdated(plugIns, BugTrackerReportType.Automatic, product, file); plugInContext.EventAdded(plugIns, BugTrackerReportType.Automatic, product, file, theEvent); plugInContext.EventUpdated(plugIns, BugTrackerReportType.Automatic, product, file, theEvent); plugInContext.EventManualUpdateCompleted(plugIns, BugTrackerReportType.Automatic, product, file, theEvent); plugInContext.EventNoteAdded(plugIns, BugTrackerReportType.Automatic, product, file, theEvent, new BugTrackerNote()); plugInContext.CabAdded(plugIns, BugTrackerReportType.Automatic, product, file, theEvent, cab); plugInContext.CabUpdated(plugIns, BugTrackerReportType.Automatic, product, file, theEvent, cab); plugInContext.CabNoteAdded(plugIns, BugTrackerReportType.Automatic, product, file, theEvent, cab, new BugTrackerNote()); fullDiagnostics = plugInContext.GetContextDiagnostics("TestPlugIn"); Assert.AreEqual(1, fullDiagnostics.Count); diagnostics = fullDiagnostics[0].Diagnostics.ToNameValueCollection(); Assert.AreEqual("1", diagnostics["ProductAddedCount"]); Assert.AreEqual("1", diagnostics["ProductUpdatedCount"]); Assert.AreEqual("1", diagnostics["FileAddedCount"]); Assert.AreEqual("1", diagnostics["FileUpdatedCount"]); Assert.AreEqual("1", diagnostics["EventAddedCount"]); Assert.AreEqual("1", diagnostics["EventCompleteCount"]); Assert.AreEqual("1", diagnostics["EventUpdatedCount"]); Assert.AreEqual("1", diagnostics["EventNoteAddedCount"]); Assert.AreEqual("1", diagnostics["CabAddedCount"]); Assert.AreEqual("1", diagnostics["CabUpdatedCount"]); Assert.AreEqual("1", diagnostics["CabNoteAddedCount"]); }