コード例 #1
0
        public void ProductAddedUnhandledExceptionInPlugIn()
        {
            String dllLocation = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

            String[] folders = { dllLocation };

            BugTrackerManager manager = new BugTrackerManager(folders);

            Assert.AreEqual(true, manager.NumberOfPlugIns >= 1);

            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);

            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"]);


            NameValueCollection properties = new NameValueCollection();

            properties.Add("UnhandledException", "1");

            plugInContext.SetProperties("TestPlugIn", properties);

            plugInContext.ProductAdded(null, BugTrackerReportType.Automatic, null);

            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["EventUpdatedCount"]);
            Assert.AreEqual("0", diagnostics["EventNoteAddedCount"]);
            Assert.AreEqual("0", diagnostics["CabAddedCount"]);
            Assert.AreEqual("0", diagnostics["CabUpdatedCount"]);
            Assert.AreEqual("0", diagnostics["CabNoteAddedCount"]);
        }
コード例 #2
0
        public void InitializeFailInvalidFolder()
        {
            String [] folders = { "c:\\thisfolderdoesntexist" };

            BugTrackerManager manager = new BugTrackerManager(folders);

            Assert.AreEqual(0, manager.NumberOfPlugIns);
        }
コード例 #3
0
        public void InitializeFailNoPlugIns()
        {
            String[] folders = { m_TestFolder };

            BugTrackerManager manager = new BugTrackerManager(folders);

            Assert.AreEqual(0, manager.NumberOfPlugIns);
        }
コード例 #4
0
        public void InitializeOkOnePlugIn()
        {
            String testPlugInFolder = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

            String[] folders = { testPlugInFolder };

            BugTrackerManager manager = new BugTrackerManager(folders);

            Assert.AreEqual(true, manager.NumberOfPlugIns >= 1);
        }
コード例 #5
0
        public void GetContextSettings()
        {
            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);

            Assert.AreEqual("http://www.stackhash.com/", fullDiagnostics[0].HelpUrl.ToString());
            Assert.AreEqual(true, fullDiagnostics[0].Loaded);
            Assert.AreEqual("Plug-in used to control StackHash unit testing.", fullDiagnostics[0].PlugInDescription);
            Assert.AreEqual(true, fullDiagnostics[0].PlugInSetsBugReference);

            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"]);
        }
コード例 #6
0
        public void MyTestInitialize()
        {
            m_TempPath   = Path.GetTempPath() + "StackHashTaskTesting";
            m_ScriptPath = m_TempPath + "\\Scripts";
            m_ActivationAdminEvent.Reset();
            m_DeactivationAdminEvent.Reset();
            String dllLocation = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

            String[]          folders = { dllLocation };
            BugTrackerManager manager = new BugTrackerManager(folders);

            TidyTest();
            m_AllReports.Clear();

            if (!Directory.Exists(m_TempPath))
            {
                Directory.CreateDirectory(m_TempPath);
            }
            if (!Directory.Exists(m_ScriptPath))
            {
                Directory.CreateDirectory(m_ScriptPath);
            }
        }
コード例 #7
0
        /// <summary>
        /// An index will be created in sourceFolder\SourceIndex called SourceIndex.
        /// It will then be moved to destFolder\DestIndex.
        /// If defaultDatabaseLocation is specified then only the cab files will be moved and not the SQL database.
        /// </summary>
        private void runMoveTask(String settingsFolder, String sourceErrorIndexFolder, String sourceErrorIndexName, String destErrorIndexFolder,
                                 String destErrorIndexName, bool defaultDatabaseLocation, StackHashTestIndexData testIndexData)
        {
            String scriptFolder = settingsFolder + "\\Scripts";


            SqlCommands sqlCommands = new SqlCommands(m_ProviderFactory, s_MasterConnectionString, s_MasterConnectionString, 1);

            // Create the source database folders and settings.

            if (sqlCommands.DatabaseExists(destErrorIndexName))
            {
                try { sqlCommands.DeleteDatabase(destErrorIndexName); }
                catch {; }
            }
            if (sqlCommands.DatabaseExists(sourceErrorIndexName))
            {
                try { sqlCommands.DeleteDatabase(sourceErrorIndexName); }
                catch {; }
            }

            if (Directory.Exists(settingsFolder))
            {
                PathUtils.DeleteDirectory(settingsFolder, true);
            }
            if (Directory.Exists(destErrorIndexFolder))
            {
                PathUtils.DeleteDirectory(destErrorIndexFolder, true);
            }
            if (Directory.Exists(sourceErrorIndexFolder))
            {
                PathUtils.DeleteDirectory(sourceErrorIndexFolder, true);
            }

            if (!Directory.Exists(sourceErrorIndexFolder))
            {
                Directory.CreateDirectory(sourceErrorIndexFolder);
            }
            if (!Directory.Exists(settingsFolder))
            {
                Directory.CreateDirectory(settingsFolder);
            }
            if (!Directory.Exists(scriptFolder))
            {
                Directory.CreateDirectory(scriptFolder);
            }
            if (!Directory.Exists(destErrorIndexFolder))
            {
                Directory.CreateDirectory(destErrorIndexFolder);
            }


            try
            {
                // Create a settings manager and a new context.
                SettingsManager          settingsManager = new SettingsManager(settingsFolder + "\\ServiceSettings.XML");
                StackHashContextSettings contextSettings = settingsManager.CreateNewContextSettings();

                contextSettings.ErrorIndexSettings        = new ErrorIndexSettings();
                contextSettings.ErrorIndexSettings.Folder = sourceErrorIndexFolder;
                contextSettings.ErrorIndexSettings.Name   = sourceErrorIndexName;
                contextSettings.ErrorIndexSettings.Type   = ErrorIndexType.SqlExpress;

                contextSettings.SqlSettings = StackHashSqlConfiguration.Default;
                contextSettings.SqlSettings.ConnectionString = s_ConnectionString;
                contextSettings.SqlSettings.InitialCatalog   = sourceErrorIndexName;

                ScriptManager scriptManager = new ScriptManager(scriptFolder);

                string         licenseFileName = string.Format("{0}\\License.bin", settingsFolder);
                LicenseManager licenseManager  = new LicenseManager(licenseFileName, s_ServiceGuid);
                licenseManager.SetLicense(s_LicenseId);

                // Create a dummy controller to record the callbacks.
                BugTrackerManager bugTrackerManager = new BugTrackerManager(new String[0]);

                // Create a dummy controller to record the callbacks.
                ControllerContext controllerContext = new ControllerContext(contextSettings, scriptManager, new Windbg(),
                                                                            settingsManager, true, null, licenseManager);

                // Hook up to receive admin reports.
                controllerContext.AdminReports += new EventHandler <AdminReportEventArgs>(this.OnAdminReport);

                // Progress reports don't come through the controller context - they come straight through the contoller so create a dummy.
                Controller controller = new Controller();
                Reporter   reporter   = new Reporter(controller);
                controller.AdminReports += new EventHandler <AdminReportEventArgs>(this.OnAdminReport);


                // ******************************************
                // CREATE THE SOURCE INDEX
                // ******************************************

                // Delete any old index first.
                SqlConnection.ClearAllPools();

                try
                {
                    controllerContext.DeleteIndex();
                }
                catch {; }

                // Activate the context and the associated index - this will create the index if necessary.
                controllerContext.Activate(null, defaultDatabaseLocation);

                String[] databaseFiles = Directory.GetFiles(Path.Combine(sourceErrorIndexFolder, sourceErrorIndexName), "*.mdf");
                Assert.AreEqual(defaultDatabaseLocation, databaseFiles.Length == 0);

                controllerContext.CreateTestIndex(testIndexData);


                Guid guid = new Guid();
                StackHashClientData clientData = new StackHashClientData(guid, "GuidName", 1);


                // ******************************************
                // MOVE TO DESTINATION
                // ******************************************

                // Deactivate before the move.
                controllerContext.Deactivate();

                StackHashSqlConfiguration sqlConfig = new StackHashSqlConfiguration(s_ConnectionString, destErrorIndexName, 1, 100, 15, 100);

                // Move the index.
                controllerContext.RunMoveIndexTask(clientData, destErrorIndexFolder, destErrorIndexName, sqlConfig);

                // Wait for the move task to complete.
                waitForMoveCompleted(60000 * 20);

                Assert.AreEqual(2, m_AdminReports.Count);

                Assert.AreEqual(null, m_AdminReports[0].Report.LastException);
                Assert.AreEqual(0, m_AdminReports[0].Report.ContextId);
                Assert.AreEqual(StackHashAdminOperation.ErrorIndexMoveStarted, m_AdminReports[0].Report.Operation);

                Assert.AreEqual(0, m_AdminReports[1].Report.ContextId);
                Assert.AreEqual(StackHashAdminOperation.ErrorIndexMoveCompleted, m_AdminReports[1].Report.Operation);

                Assert.AreEqual(null, m_AdminReports[1].Report.LastException);
                Assert.AreEqual(StackHashServiceErrorCode.NoError, m_AdminReports[1].Report.ServiceErrorCode);

                if ((testIndexData.NumberOfCabs > 0) && (sourceErrorIndexFolder[0] != destErrorIndexFolder[0]))
                {
                    Assert.AreEqual(true, m_MoveAdminReports.Count > 0);
                }

                controllerContext.AdminReports -= new EventHandler <AdminReportEventArgs>(this.OnAdminReport);

                ErrorIndexSettings destIndexData = new ErrorIndexSettings()
                {
                    Folder = destErrorIndexFolder,
                    Name   = destErrorIndexName,
                    Type   = ErrorIndexType.SqlExpress
                };

                IErrorIndex index1 = getIndex(destIndexData, sqlConfig);

                try
                {
                    index1.Activate();

                    // Make a single call just to ensure the database is still in tact.
                    StackHashProductCollection products = index1.LoadProductList();

                    Assert.AreEqual(testIndexData.NumberOfProducts, products.Count);
                }
                finally
                {
                    index1.Deactivate();
                    index1.Dispose();
                    SqlConnection.ClearAllPools();
                }
            }
            finally
            {
                SqlConnection.ClearAllPools();
                if (sqlCommands.DatabaseExists(destErrorIndexName))
                {
                    try { sqlCommands.DeleteDatabase(destErrorIndexName); }
                    catch {; }
                }
                if (sqlCommands.DatabaseExists(sourceErrorIndexName))
                {
                    try { sqlCommands.DeleteDatabase(sourceErrorIndexName); }
                    catch {; }
                }

                SqlConnection.ClearAllPools();

                if (Directory.Exists(sourceErrorIndexFolder))
                {
                    PathUtils.SetFilesWritable(sourceErrorIndexFolder, true);
                    PathUtils.DeleteDirectory(sourceErrorIndexFolder, true);
                }
                if (Directory.Exists(destErrorIndexFolder))
                {
                    PathUtils.SetFilesWritable(destErrorIndexFolder, true);
                    PathUtils.DeleteDirectory(destErrorIndexFolder, true);
                }
                if (Directory.Exists(settingsFolder))
                {
                    PathUtils.SetFilesWritable(settingsFolder, true);
                    PathUtils.DeleteDirectory(settingsFolder, true);
                }
            }
        }
コード例 #8
0
        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);
            }
        }
コード例 #9
0
        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"]);
        }