Exemplo n.º 1
0
        public void UpdateProductStatsIndexNotActiveSql()
        {
            m_Index = new SqlErrorIndex(StackHashSqlConfiguration.Default, SqlUtils.UnitTestDatabase, m_RootCabFolder);
            m_Index.DeleteIndex();

            updateProductStatsNoEvents(m_Index, 0, 0, 0);
        }
Exemplo n.º 2
0
        public void UpdateFile()
        {
            m_Index = new SqlErrorIndex(StackHashSqlConfiguration.Default, SqlUtils.UnitTestDatabase, m_RootCabFolder);
            m_Index.DeleteIndex();

            m_Index.Activate();

            DateTime         creationDateTime = new DateTime(2010, 04, 04, 22, 9, 0, DateTimeKind.Utc);
            DateTime         modifiedDateTime = new DateTime(2010, 05, 05, 23, 10, 0, DateTimeKind.Utc);
            StackHashProduct product1         =
                new StackHashProduct(creationDateTime, modifiedDateTime, null, 1, "TestProduct1", 20, 30, "2.10.02123.1293");

            StackHashFile file1 =
                new StackHashFile(creationDateTime, modifiedDateTime, 20, creationDateTime, "File1.dll", "2.3.4.5");

            m_Index.AddProduct(product1);
            m_Index.AddFile(product1, file1);
            StackHashFile dbFile1 = m_Index.GetFile(product1, file1.Id);

            Assert.AreEqual(0, file1.CompareTo(dbFile1));

            StackHashFile file2 =
                new StackHashFile(creationDateTime.AddDays(1), modifiedDateTime.AddDays(2), 20, creationDateTime.AddDays(3), "File2.dll", "1.3.4.5");

            m_Index.AddFile(product1, file2);
            StackHashFile dbFile2 = m_Index.GetFile(product1, file2.Id);

            Assert.AreEqual(0, file2.CompareTo(dbFile2));
            Assert.AreNotEqual(0, file1.CompareTo(dbFile2));
        }
Exemplo n.º 3
0
        public void ProductControlDataSetGet2Products()
        {
            m_Index = new SqlErrorIndex(StackHashSqlConfiguration.Default, SqlUtils.UnitTestDatabase, m_RootCabFolder);
            m_Index.DeleteIndex();
            m_Index.Activate();

            int productId1 = 1000;
            int productId2 = 2000;

            DateTime testDate = new DateTime(2010, 08, 10, 10, 30, 40, DateTimeKind.Utc);

            m_Index.SetLastHitTimeLocal(productId1, testDate);
            m_Index.SetLastSyncCompletedTimeLocal(productId1, testDate.AddDays(1));
            m_Index.SetLastSyncStartedTimeLocal(productId1, testDate.AddDays(2));
            m_Index.SetLastSyncTimeLocal(productId1, testDate.AddDays(3));

            m_Index.SetLastHitTimeLocal(productId2, testDate.AddDays(4));
            m_Index.SetLastSyncCompletedTimeLocal(productId2, testDate.AddDays(5));
            m_Index.SetLastSyncStartedTimeLocal(productId2, testDate.AddDays(6));
            m_Index.SetLastSyncTimeLocal(productId2, testDate.AddDays(7));


            Assert.AreEqual(testDate, m_Index.GetLastHitTimeLocal(productId1));
            Assert.AreEqual(testDate.AddDays(1), m_Index.GetLastSyncCompletedTimeLocal(productId1));
            Assert.AreEqual(testDate.AddDays(2), m_Index.GetLastSyncStartedTimeLocal(productId1));
            Assert.AreEqual(testDate.AddDays(3), m_Index.GetLastSyncTimeLocal(productId1));

            Assert.AreEqual(testDate.AddDays(4), m_Index.GetLastHitTimeLocal(productId2));
            Assert.AreEqual(testDate.AddDays(5), m_Index.GetLastSyncCompletedTimeLocal(productId2));
            Assert.AreEqual(testDate.AddDays(6), m_Index.GetLastSyncStartedTimeLocal(productId2));
            Assert.AreEqual(testDate.AddDays(7), m_Index.GetLastSyncTimeLocal(productId2));
        }
Exemplo n.º 4
0
        //
        // You can use the following additional attributes as you write your tests:
        //
        // Use ClassInitialize to run code before running the first test in the class
        // [ClassInitialize()]
        // public static void MyClassInitialize(TestContext testContext) { }
        //
        // Use ClassCleanup to run code after all tests in a class have run
        // [ClassCleanup()]
        // public static void MyClassCleanup() { }
        //
        // Use TestInitialize to run code before running each test
        // [TestInitialize()]
        // public void MyTestInitialize() { }
        //
        // Use TestCleanup to run code after each test has run
        // [TestCleanup()]
        // public void MyTestCleanup() { }
        //
        #endregion

        /// <summary>
        /// Adds the specified number of Mappings to the MappingsTable.
        /// </summary>
        public void addMappings(StackHashMappingType mappingType, StackHashMappingCollection mappings, int expectedCount)
        {
            // Create a clean index.
            m_Index = new SqlErrorIndex(StackHashSqlConfiguration.Default, SqlUtils.UnitTestDatabase, m_RootCabFolder);
            m_Index.DeleteIndex();
            m_Index.Activate();

            StackHashMappingCollection currentMappings = m_Index.GetMappings(mappingType);

            if (mappingType == StackHashMappingType.WorkFlow)
            {
                Assert.AreEqual(16, currentMappings.Count);
            }
            else
            {
                Assert.AreEqual(0, currentMappings.Count);
            }

            m_Index.AddMappings(mappings);

            currentMappings = m_Index.GetMappings(mappingType);
            Assert.AreEqual(expectedCount, currentMappings.Count);


            foreach (StackHashMapping mapping in mappings)
            {
                StackHashMapping matchingMapping = mappings.FindMapping(mapping.MappingType, mapping.Id);
                Assert.AreNotEqual(null, matchingMapping);

                Assert.AreEqual(0, mapping.CompareTo(matchingMapping));
            }
        }
Exemplo n.º 5
0
        public void GetFilesForProduct2FilesOnly1ForSelectedProduct()
        {
            m_Index = new SqlErrorIndex(StackHashSqlConfiguration.Default, SqlUtils.UnitTestDatabase, m_RootCabFolder);
            m_Index.DeleteIndex();

            m_Index.Activate();

            DateTime         creationDateTime = new DateTime(2010, 04, 04, 22, 9, 0, DateTimeKind.Utc);
            DateTime         modifiedDateTime = new DateTime(2010, 05, 05, 23, 10, 0, DateTimeKind.Utc);
            StackHashProduct product1         =
                new StackHashProduct(creationDateTime, modifiedDateTime, null, 1, "TestProduct1", 20, 30, "2.10.02123.1293");
            StackHashProduct product2 =
                new StackHashProduct(creationDateTime, modifiedDateTime, null, 2, "TestProduct1", 21, 31, "2.10.02123.1293");

            StackHashFile file1 =
                new StackHashFile(creationDateTime, modifiedDateTime, 20, creationDateTime, "File1.dll", "2.3.4.5");
            StackHashFile file2 =
                new StackHashFile(creationDateTime, modifiedDateTime, 21, creationDateTime, "File2.dll", "2.3.4.5");

            m_Index.AddProduct(product1);
            m_Index.AddProduct(product2);
            m_Index.AddFile(product1, file1);
            m_Index.AddFile(product2, file2);

            StackHashFileCollection files = m_Index.LoadFileList(product1);

            Assert.AreNotEqual(null, files);
            Assert.AreEqual(1, files.Count);
            Assert.AreEqual(0, file1.CompareTo(files[0]));

            files = m_Index.LoadFileList(product2);
            Assert.AreNotEqual(null, files);
            Assert.AreEqual(1, files.Count);
            Assert.AreEqual(0, file2.CompareTo(files[0]));
        }
Exemplo n.º 6
0
        public void filesCount(int numFiles)
        {
            m_Index = new SqlErrorIndex(StackHashSqlConfiguration.Default, SqlUtils.UnitTestDatabase, m_RootCabFolder);
            m_Index.DeleteIndex();

            m_Index.Activate();

            DateTime         creationDateTime = new DateTime(2010, 04, 04, 22, 9, 0, DateTimeKind.Utc);
            DateTime         modifiedDateTime = new DateTime(2010, 05, 05, 23, 10, 0, DateTimeKind.Utc);
            StackHashProduct product1         =
                new StackHashProduct(creationDateTime, modifiedDateTime, null, 1, "TestProduct1", 20, 30, "2.10.02123.1293");

            m_Index.AddProduct(product1);
            for (int i = 0; i < numFiles; i++)
            {
                StackHashFile file1 =
                    new StackHashFile(creationDateTime, modifiedDateTime, 20 + i, creationDateTime, "File1.dll", "2.3.4.5");

                m_Index.AddFile(product1, file1);
            }

            long filesCount = m_Index.TotalFiles;

            Assert.AreEqual(numFiles, filesCount);
        }
Exemplo n.º 7
0
        public void GetSetSyncProgressReload()
        {
            m_Index = new SqlErrorIndex(StackHashSqlConfiguration.Default, SqlUtils.UnitTestDatabase, m_RootCabFolder);
            m_Index.DeleteIndex();
            m_Index.Activate();

            StackHashSyncProgress syncProgress = new StackHashSyncProgress(1, 2, 3, "EventTypeName", 4, StackHashSyncPhase.Events);

            m_Index.SyncProgress = syncProgress;

            StackHashSyncProgress newProgress = m_Index.SyncProgress;

            Assert.AreEqual(0, newProgress.CompareTo(syncProgress));


            m_Index.Deactivate();
            m_Index.Dispose();

            // Load again to make sure the data was persisted.
            m_Index = new SqlErrorIndex(StackHashSqlConfiguration.Default, SqlUtils.UnitTestDatabase, m_RootCabFolder);
            m_Index.Activate();

            newProgress = m_Index.SyncProgress;

            Assert.AreEqual(0, newProgress.CompareTo(syncProgress));
        }
Exemplo n.º 8
0
        public void AddProductDisconnectReconnectGetProducts()
        {
            m_Index = new SqlErrorIndex(StackHashSqlConfiguration.Default, SqlUtils.UnitTestDatabase, m_RootCabFolder);
            m_Index.DeleteIndex();
            m_Index.Activate();

            DateTime         creationDateTime = new DateTime(2010, 04, 04, 22, 9, 0, DateTimeKind.Utc);
            DateTime         modifiedDateTime = new DateTime(2010, 05, 05, 23, 10, 0, DateTimeKind.Utc);
            StackHashProduct product          = new StackHashProduct(creationDateTime, modifiedDateTime, "www.files.com", 25, @"P""r:o?d:u@(XP_2k)", 0, 0, "1:2:3:4");

            m_Index.AddProduct(product);

            Assert.AreEqual(1, m_Index.TotalProducts);
            Assert.AreEqual(true, m_Index.ProductExists(product));

            m_Index.Deactivate();
            m_Index.Dispose();

            m_Index = new SqlErrorIndex(StackHashSqlConfiguration.Default, SqlUtils.UnitTestDatabase, m_RootCabFolder);
            m_Index.Activate();

            StackHashProductCollection products = m_Index.LoadProductList();

            Assert.AreEqual(1, products.Count);

            Assert.AreEqual(1, m_Index.TotalProducts);
            Assert.AreEqual(true, m_Index.ProductExists(product));
        }
Exemplo n.º 9
0
        public void FileExistsForDifferentProduct()
        {
            m_Index = new SqlErrorIndex(StackHashSqlConfiguration.Default, SqlUtils.UnitTestDatabase, m_RootCabFolder);
            m_Index.DeleteIndex();

            m_Index.Activate();

            DateTime creationDateTime = new DateTime(2010, 04, 04, 22, 9, 0, DateTimeKind.Utc);
            DateTime modifiedDateTime = new DateTime(2010, 05, 05, 23, 10, 0, DateTimeKind.Utc);

            StackHashProduct product1 =
                new StackHashProduct(creationDateTime, modifiedDateTime, null, 1, "TestProduct1", 20, 30, "2.10.02123.1293");
            StackHashProduct product2 =
                new StackHashProduct(creationDateTime, modifiedDateTime, null, 2, "TestProduct1", 21, 31, "2.10.02123.1293");

            StackHashFile file1 =
                new StackHashFile(creationDateTime, modifiedDateTime, 20, creationDateTime, "File1.dll", "2.3.4.5");

            m_Index.AddProduct(product1);
            m_Index.AddProduct(product2);
            m_Index.AddFile(product1, file1);

            StackHashFile dbFile1 = m_Index.GetFile(product1, file1.Id);

            Assert.AreEqual(0, file1.CompareTo(dbFile1));

            Assert.AreEqual(true, m_Index.FileExists(product1, file1));
            Assert.AreEqual(false, m_Index.FileExists(product2, file1));
        }
Exemplo n.º 10
0
        public void GetProductEvents20Products5Files3EventsSql()
        {
            m_Index = new SqlErrorIndex(StackHashSqlConfiguration.Default, SqlUtils.UnitTestDatabase, m_RootCabFolder);
            m_Index.DeleteIndex();
            m_Index.Activate();

            getProductEvents(m_Index, 20, 5, 3);
        }
Exemplo n.º 11
0
        public void GetSetSyncCount()
        {
            m_Index = new SqlErrorIndex(StackHashSqlConfiguration.Default, SqlUtils.UnitTestDatabase, m_RootCabFolder);
            m_Index.DeleteIndex();
            m_Index.Activate();

            Assert.AreEqual(0, m_Index.SyncCount);
            m_Index.SyncCount = 1;
            Assert.AreEqual(1, m_Index.SyncCount);
        }
Exemplo n.º 12
0
        /// <summary>
        /// Checks for localeCode and localeName accepted ok.
        /// </summary>
        public void addMultipleLocales(StackHashProductLocaleSummaryCollection localesToAdd)
        {
            // Create a clean index.
            m_Index = new SqlErrorIndex(StackHashSqlConfiguration.Default, SqlUtils.UnitTestDatabase, m_RootCabFolder);
            m_Index.DeleteIndex();
            m_Index.Activate();

            int productId = 1234;

            // Check a locale that doesn't exist.
            Assert.AreEqual(false, m_Index.LocaleSummaryExists(1245, 12121));

            StackHashProductLocaleSummaryCollection allLocaleSummaries = new StackHashProductLocaleSummaryCollection();

            foreach (StackHashProductLocaleSummary locale in localesToAdd)
            {
                m_Index.AddLocale(locale.Lcid, locale.Locale, locale.Language);
                m_Index.AddLocaleSummary(productId, locale.Lcid, locale.TotalHits, false);

                // Check the locale exists now.
                Assert.AreEqual(true, m_Index.LocaleSummaryExists(productId, locale.Lcid));

                // Get the specific locale and make sure it was stored properly.
                StackHashProductLocaleSummary summary = m_Index.GetLocaleSummaryForProduct(productId, locale.Lcid);
                Assert.AreEqual(locale.Lcid, summary.Lcid);
                Assert.AreEqual(locale.Locale, summary.Locale);
                Assert.AreEqual(locale.Language, summary.Language);
                Assert.AreEqual(locale.TotalHits, summary.TotalHits);
            }


            StackHashProductLocaleSummaryCollection localeSummaryCollection = m_Index.GetLocaleSummaries(productId);

            Assert.AreEqual(localesToAdd.Count, localeSummaryCollection.Count);

            foreach (StackHashProductLocaleSummary loadedLocale in localeSummaryCollection)
            {
                StackHashProductLocaleSummary expectedSummary = localesToAdd.FindLocale(loadedLocale.Lcid);
                Assert.AreEqual(0, expectedSummary.CompareTo(loadedLocale));
            }

            // Now update the statistics again using the same values.
            m_Index.UpdateLocaleStatistics(productId, localesToAdd, false);

            // Values should have doubled.
            localeSummaryCollection = m_Index.GetLocaleSummaries(productId);
            Assert.AreEqual(localesToAdd.Count, localeSummaryCollection.Count);

            foreach (StackHashProductLocaleSummary loadedLocale in localeSummaryCollection)
            {
                StackHashProductLocaleSummary expectedSummary = localesToAdd.FindLocale(loadedLocale.Lcid);
                expectedSummary.TotalHits *= 2;
                Assert.AreEqual(0, expectedSummary.CompareTo(loadedLocale));
            }
        }
Exemplo n.º 13
0
        /// <summary>
        /// Adds the specified number of Updates to the UpdateTable and then CLEARS them.
        /// </summary>
        public void addAndClearAllUpdates(int numUpdates, bool incrementIds)
        {
            // Create a clean index.
            m_Index = new SqlErrorIndex(StackHashSqlConfiguration.Default, SqlUtils.UnitTestDatabase, m_RootCabFolder);
            m_Index.DeleteIndex();
            m_Index.Activate();
            m_Index.UpdateTableActive = true;

            int    productId     = 11111111;
            int    fileId        = 22222222;
            int    eventId       = 33333333;
            String eventTypeName = "EventTypeName";
            int    componentId   = 44444444;

            // Check that no update exists.
            StackHashBugTrackerUpdate update = m_Index.GetFirstUpdate();

            Assert.AreEqual(null, update);

            List <StackHashBugTrackerUpdate> allUpdates = new List <StackHashBugTrackerUpdate>();

            for (int updateCount = 0; updateCount < numUpdates; updateCount++)
            {
                StackHashBugTrackerUpdate newUpdate = new StackHashBugTrackerUpdate()
                {
                    EntryId         = updateCount + 1,                  // This will be the expected entryid - this is an automatic update field in the database.
                    DateChanged     = DateTime.Now.RoundToNextSecond(), // Database dates are not as accurate as .NET dates.
                    DataThatChanged = StackHashDataChanged.Event,
                    TypeOfChange    = StackHashChangeType.NewEntry,
                    ProductId       = productId,
                    FileId          = fileId,
                    EventId         = eventId,
                    EventTypeName   = eventTypeName,
                    ChangedObjectId = componentId,
                };

                if (incrementIds)
                {
                    productId++;
                    fileId++;
                    eventId++;
                    componentId++;
                }


                m_Index.AddUpdate(newUpdate);

                allUpdates.Add(newUpdate);
            }

            m_Index.ClearAllUpdates();

            Assert.AreEqual(null, m_Index.GetFirstUpdate());
        }
Exemplo n.º 14
0
        //
        // You can use the following additional attributes as you write your tests:
        //
        // Use ClassInitialize to run code before running the first test in the class
        // [ClassInitialize()]
        // public static void MyClassInitialize(TestContext testContext) { }
        //
        // Use ClassCleanup to run code after all tests in a class have run
        // [ClassCleanup()]
        // public static void MyClassCleanup() { }
        //
        // Use TestInitialize to run code before running each test
        // [TestInitialize()]
        // public void MyTestInitialize() { }
        //
        // Use TestCleanup to run code after each test has run
        // [TestCleanup()]
        // public void MyTestCleanup() { }
        //
        #endregion

        /// <summary>
        /// Adds the rollup of OperatingSystems.
        /// </summary>
        public void addOperatingSystemSummaries(int numOperatingSystemSummaries)
        {
            // Create a clean index.
            m_Index = new SqlErrorIndex(StackHashSqlConfiguration.Default, SqlUtils.UnitTestDatabase, m_RootCabFolder);
            m_Index.DeleteIndex();
            m_Index.Activate();

            String operatingSystemNameBase    = "Microsoft Windows Vista";
            String operatingSystemVersionBase = "6.0.0.1212.0";
            int    productId = 1234;

            // Check an OperatingSystem that doesn't exist.
            Assert.AreEqual(false, m_Index.OperatingSystemSummaryExists(productId, operatingSystemNameBase, operatingSystemVersionBase));

            StackHashProductOperatingSystemSummaryCollection allOperatingSystemSummaries = new StackHashProductOperatingSystemSummaryCollection();

            for (int operatingSystemCount = 0; operatingSystemCount < numOperatingSystemSummaries; operatingSystemCount++)
            {
                String operatingSystemName    = operatingSystemNameBase + operatingSystemCount.ToString();
                String operatingSystemVersion = operatingSystemVersionBase + operatingSystemCount.ToString();

                int totalHits = operatingSystemCount + 1;
                m_Index.AddOperatingSystem(operatingSystemName, operatingSystemVersion);
                short operatingSystemId = m_Index.GetOperatingSystemId(operatingSystemName, operatingSystemVersion);

                m_Index.AddOperatingSystemSummary(productId, operatingSystemId, totalHits, false);

                // Check the OperatingSystem exists now.
                Assert.AreEqual(true, m_Index.OperatingSystemSummaryExists(productId, operatingSystemName, operatingSystemVersion));

                // Get the specific OperatingSystem and make sure it was stored properly.
                StackHashProductOperatingSystemSummary summary = m_Index.GetOperatingSystemSummaryForProduct(productId, operatingSystemName, operatingSystemVersion);
                Assert.AreEqual(operatingSystemName, summary.OperatingSystemName);
                Assert.AreEqual(operatingSystemVersion, summary.OperatingSystemVersion);
                Assert.AreEqual(totalHits, summary.TotalHits);

                allOperatingSystemSummaries.Add(summary);
            }

            StackHashProductOperatingSystemSummaryCollection operatingSystemSummaryCollection = m_Index.GetOperatingSystemSummaries(productId);

            Assert.AreEqual(numOperatingSystemSummaries, operatingSystemSummaryCollection.Count);

            foreach (StackHashProductOperatingSystemSummary operatingSystemData in operatingSystemSummaryCollection)
            {
                // Find the matching OperatingSystem in the expected list.
                StackHashProductOperatingSystemSummary expectedSummary =
                    allOperatingSystemSummaries.FindOperatingSystem(operatingSystemData.OperatingSystemName, operatingSystemData.OperatingSystemVersion);

                Assert.AreNotEqual(null, expectedSummary);
                Assert.AreEqual(0, expectedSummary.CompareTo(operatingSystemData));
            }
        }
Exemplo n.º 15
0
        /// <summary>
        /// Checks for OS name and version nulls.
        /// </summary>
        public void addMultipleOperatingSystems(StackHashProductOperatingSystemSummaryCollection operatingSystemsToAdd)
        {
            // Create a clean index.
            m_Index = new SqlErrorIndex(StackHashSqlConfiguration.Default, SqlUtils.UnitTestDatabase, m_RootCabFolder);
            m_Index.DeleteIndex();
            m_Index.Activate();

            int productId = 1234;

            StackHashProductOperatingSystemSummaryCollection allOSSummaries = new StackHashProductOperatingSystemSummaryCollection();

            foreach (StackHashProductOperatingSystemSummary operatingSystem in operatingSystemsToAdd)
            {
                m_Index.AddOperatingSystem(operatingSystem.OperatingSystemName, operatingSystem.OperatingSystemVersion);
                short osId = m_Index.GetOperatingSystemId(operatingSystem.OperatingSystemName, operatingSystem.OperatingSystemVersion);
                m_Index.AddOperatingSystemSummary(productId, osId, operatingSystem.TotalHits, false);

                // Check the OS exists now.
                Assert.AreEqual(true, m_Index.OperatingSystemSummaryExists(productId, operatingSystem.OperatingSystemName, operatingSystem.OperatingSystemVersion));

                // Get the specific OS and make sure it was stored properly.
                StackHashProductOperatingSystemSummary summary = m_Index.GetOperatingSystemSummaryForProduct(productId, operatingSystem.OperatingSystemName, operatingSystem.OperatingSystemVersion);
                Assert.AreEqual(operatingSystem.OperatingSystemName, summary.OperatingSystemName);
                Assert.AreEqual(operatingSystem.OperatingSystemVersion, summary.OperatingSystemVersion);
            }


            StackHashProductOperatingSystemSummaryCollection osSummaryCollection = m_Index.GetOperatingSystemSummaries(productId);

            Assert.AreEqual(operatingSystemsToAdd.Count, osSummaryCollection.Count);

            foreach (StackHashProductOperatingSystemSummary os in osSummaryCollection)
            {
                StackHashProductOperatingSystemSummary expectedSummary = operatingSystemsToAdd.FindOperatingSystem(os.OperatingSystemName, os.OperatingSystemVersion);
                Assert.AreEqual(0, expectedSummary.CompareTo(os));
            }

            // Now update the statistics again using the same values.
            m_Index.UpdateOperatingSystemStatistics(productId, operatingSystemsToAdd, false);

            osSummaryCollection = m_Index.GetOperatingSystemSummaries(productId);
            Assert.AreEqual(operatingSystemsToAdd.Count, osSummaryCollection.Count);

            foreach (StackHashProductOperatingSystemSummary os in osSummaryCollection)
            {
                StackHashProductOperatingSystemSummary expectedSummary = operatingSystemsToAdd.FindOperatingSystem(os.OperatingSystemName, os.OperatingSystemVersion);
                expectedSummary.TotalHits *= 2;
                Assert.AreEqual(0, expectedSummary.CompareTo(os));
            }

            // Now update the statistics again using the same values.
            m_Index.UpdateOperatingSystemStatistics(productId, operatingSystemsToAdd, false);
        }
Exemplo n.º 16
0
        public void ProductControlDataGetDefault()
        {
            m_Index = new SqlErrorIndex(StackHashSqlConfiguration.Default, SqlUtils.UnitTestDatabase, m_RootCabFolder);
            m_Index.DeleteIndex();
            m_Index.Activate();

            int productId = 1000;

            Assert.AreEqual(new DateTime(0), m_Index.GetLastHitTimeLocal(productId));
            Assert.AreEqual(new DateTime(0), m_Index.GetLastSyncCompletedTimeLocal(productId));
            Assert.AreEqual(new DateTime(0), m_Index.GetLastSyncStartedTimeLocal(productId));
            Assert.AreEqual(new DateTime(0), m_Index.GetLastSyncTimeLocal(productId));
        }
Exemplo n.º 17
0
        public void MyTestCleanup()
        {
            if (m_Index != null)
            {
                SqlConnection.ClearAllPools();

                m_Index.Deactivate();
                m_Index.DeleteIndex();
                m_Index.Dispose();
                m_Index = null;
            }
            SqlConnection.ClearAllPools();
        }
Exemplo n.º 18
0
        public void InvalidDatabaseName()
        {
            String cabFolder    = m_RootCabFolder;
            String databaseName = "Index"; // This is invalid because Index is a reserved Sql keyword.

            m_Index = new SqlErrorIndex(StackHashSqlConfiguration.Default, databaseName, cabFolder);

            ErrorIndexConnectionTestResults result = m_Index.GetDatabaseStatus();

            Assert.AreNotEqual(null, result);
            Assert.AreEqual(StackHashErrorIndexDatabaseStatus.InvalidDatabaseName, result.Result);
            Assert.AreEqual(null, result.LastException);
        }
Exemplo n.º 19
0
        public void GetSetSyncProgress()
        {
            m_Index = new SqlErrorIndex(StackHashSqlConfiguration.Default, SqlUtils.UnitTestDatabase, m_RootCabFolder);
            m_Index.DeleteIndex();
            m_Index.Activate();

            StackHashSyncProgress syncProgress = new StackHashSyncProgress(1, 2, 3, "EventTypeName", 4, StackHashSyncPhase.Events);

            m_Index.SyncProgress = syncProgress;

            StackHashSyncProgress newProgress = m_Index.SyncProgress;

            Assert.AreEqual(0, newProgress.CompareTo(syncProgress));
        }
Exemplo n.º 20
0
        public void ControlDataGetDefault()
        {
            m_Index = new SqlErrorIndex(StackHashSqlConfiguration.Default, SqlUtils.UnitTestDatabase, m_RootCabFolder);
            m_Index.DeleteIndex();
            m_Index.Activate();

            Assert.AreEqual(0, m_Index.SyncCount);
            Assert.AreNotEqual(null, m_Index.SyncProgress);
            Assert.AreEqual(0, m_Index.SyncProgress.ProductId);
            Assert.AreEqual(0, m_Index.SyncProgress.FileId);
            Assert.AreEqual(0, m_Index.SyncProgress.EventId);
            Assert.AreEqual(0, m_Index.SyncProgress.CabId);
            Assert.AreEqual(null, m_Index.SyncProgress.EventTypeName);
        }
Exemplo n.º 21
0
        /// <summary>
        /// Checks for localeCode and localeName accepted ok.
        /// </summary>
        public void addSingleLocale(int localeId, String localeCode, String localeName)
        {
            // Create a clean index.
            m_Index = new SqlErrorIndex(StackHashSqlConfiguration.Default, SqlUtils.UnitTestDatabase, m_RootCabFolder);
            m_Index.DeleteIndex();
            m_Index.Activate();

            int productId = 1234;

            // Check a locale that doesn't exist.
            Assert.AreEqual(false, m_Index.LocaleSummaryExists(1245, 12121));

            StackHashProductLocaleSummaryCollection allLocaleSummaries = new StackHashProductLocaleSummaryCollection();

            int totalHits = 100;

            m_Index.AddLocale(localeId, localeCode, localeName);
            m_Index.AddLocaleSummary(productId, localeId, totalHits, false);

            // Check the locale exists now.
            Assert.AreEqual(true, m_Index.LocaleSummaryExists(productId, localeId));

            // Get the specific locale and make sure it was stored properly.
            StackHashProductLocaleSummary summary = m_Index.GetLocaleSummaryForProduct(productId, localeId);

            Assert.AreEqual(localeId, summary.Lcid);
            Assert.AreEqual(localeCode, summary.Locale);
            Assert.AreEqual(localeName, summary.Language);
            Assert.AreEqual(totalHits, summary.TotalHits);


            StackHashProductLocaleSummaryCollection localeSummaryCollection = m_Index.GetLocaleSummaries(productId);

            Assert.AreEqual(1, localeSummaryCollection.Count);

            StackHashProductLocaleSummary expectedSummary = new StackHashProductLocaleSummary(localeName, localeId, localeCode, totalHits);

            Assert.AreEqual(0, expectedSummary.CompareTo(localeSummaryCollection[0]));

            // Now update the statistics again using the same values.
            allLocaleSummaries.Add(expectedSummary);
            m_Index.UpdateLocaleStatistics(productId, allLocaleSummaries, false);

            // Values should have doubled.
            localeSummaryCollection = m_Index.GetLocaleSummaries(productId);
            Assert.AreEqual(1, localeSummaryCollection.Count);

            expectedSummary = new StackHashProductLocaleSummary(localeName, localeId, localeCode, totalHits * 2);
            Assert.AreEqual(0, expectedSummary.CompareTo(localeSummaryCollection[0]));
        }
Exemplo n.º 22
0
        //
        // You can use the following additional attributes as you write your tests:
        //
        // Use ClassInitialize to run code before running the first test in the class
        // [ClassInitialize()]
        // public static void MyClassInitialize(TestContext testContext) { }
        //
        // Use ClassCleanup to run code after all tests in a class have run
        // [ClassCleanup()]
        // public static void MyClassCleanup() { }
        //
        // Use TestInitialize to run code before running each test
        // [TestInitialize()]
        // public void MyTestInitialize() { }
        //
        // Use TestCleanup to run code after each test has run
        // [TestCleanup()]
        // public void MyTestCleanup() { }
        //
        #endregion

        /// <summary>
        /// Gets the rollup of locales.
        /// </summary>
        public void addLocaleSummaries(int numLocaleSummaries)
        {
            // Create a clean index.
            m_Index = new SqlErrorIndex(StackHashSqlConfiguration.Default, SqlUtils.UnitTestDatabase, m_RootCabFolder);
            m_Index.DeleteIndex();
            m_Index.Activate();

            String localeCodeBase = "US-";
            String localeNameBase = "ENGLISH";
            int    productId      = 1234;

            // Check a locale that doesn't exist.
            Assert.AreEqual(false, m_Index.LocaleSummaryExists(1245, 12121));

            StackHashProductLocaleSummaryCollection allLocaleSummaries = new StackHashProductLocaleSummaryCollection();

            for (int localeCount = 0; localeCount < numLocaleSummaries; localeCount++)
            {
                int localeId  = 1000 + localeCount;
                int totalHits = localeCount + 1;
                m_Index.AddLocale(localeId, localeCodeBase + localeId.ToString(), localeNameBase + localeId.ToString());

                m_Index.AddLocaleSummary(productId, localeId, totalHits, false);

                // Check the locale exists now.
                Assert.AreEqual(true, m_Index.LocaleSummaryExists(productId, localeId));

                // Get the specific locale and make sure it was stored properly.
                StackHashProductLocaleSummary summary = m_Index.GetLocaleSummaryForProduct(productId, localeId);
                Assert.AreEqual(localeId, summary.Lcid);
                Assert.AreEqual(localeCodeBase + localeId.ToString(), summary.Locale);
                Assert.AreEqual(localeNameBase + localeId.ToString(), summary.Language);
                Assert.AreEqual(totalHits, summary.TotalHits);

                allLocaleSummaries.Add(summary);
            }

            StackHashProductLocaleSummaryCollection localeSummaryCollection = m_Index.GetLocaleSummaries(productId);

            Assert.AreEqual(numLocaleSummaries, localeSummaryCollection.Count);

            foreach (StackHashProductLocaleSummary localeData in localeSummaryCollection)
            {
                // Find the matching locale in the expected list.
                StackHashProductLocaleSummary expectedSummary = allLocaleSummaries.FindLocale(localeData.Lcid);

                Assert.AreNotEqual(null, expectedSummary);
                Assert.AreEqual(0, expectedSummary.CompareTo(localeData));
            }
        }
Exemplo n.º 23
0
        public void MyTestCleanup()
        {
            SqlConnection.ClearAllPools();
            if (m_Index != null)
            {
                m_Index.Deactivate();
                m_Index.DeleteIndex();
                m_Index.Dispose();
                m_Index = null;
            }

            if (Directory.Exists(m_RootCabFolder))
            {
                PathUtils.DeleteDirectory(m_RootCabFolder, true);
            }
        }
Exemplo n.º 24
0
        public void ConnectedToMasterButDatabaseDoesNotExist()
        {
            String cabFolder    = m_RootCabFolder;
            String databaseName = "TestIndex";
            StackHashSqlConfiguration sqlConfig = StackHashSqlConfiguration.Default;

            sqlConfig.ConnectionTimeout = 10;

            m_Index = new SqlErrorIndex(sqlConfig, databaseName, cabFolder);

            ErrorIndexConnectionTestResults result = m_Index.GetDatabaseStatus();

            Assert.AreNotEqual(null, result);
            Assert.AreEqual(StackHashErrorIndexDatabaseStatus.ConnectedToMasterButDatabaseDoesNotExist, result.Result);
            Assert.AreEqual(null, result.LastException);
        }
Exemplo n.º 25
0
        public static void CreateTestIndex(bool sqlIndex, String folder, String name, int numProducts, int numFiles,
                                           int numEvents, int numEventInfos, int numCabs, String cabFile)
        {
            // The folder must exist.
            if (Directory.Exists(folder))
            {
                throw new ArgumentException("Destination folder must not exist", "folder");
            }

            if (String.IsNullOrEmpty(name))
            {
                throw new ArgumentException("You must specify an index name");
            }

            if (!File.Exists(cabFile))
            {
                throw new ArgumentException("Cab file must be specified and must exist");
            }

            Directory.CreateDirectory(folder);

            // Create an index.

            IErrorIndex index;

            if (sqlIndex)
            {
                index = new SqlErrorIndex(StackHashSqlConfiguration.Default, name, folder);
            }
            else
            {
                index = new XmlErrorIndex(folder, name);
            }

            index.Activate();

            StackHashTestIndexData testData = new StackHashTestIndexData();

            testData.NumberOfProducts   = numProducts;
            testData.NumberOfFiles      = numFiles;
            testData.NumberOfEvents     = numEvents;
            testData.NumberOfEventInfos = numEventInfos;
            testData.NumberOfCabs       = numCabs;
            testData.CabFileName        = cabFile;

            CreateTestIndex(index, testData);
        }
Exemplo n.º 26
0
        public void DatabaseExistsOk()
        {
            String cabFolder    = m_RootCabFolder;
            String databaseName = "TestIndex";
            StackHashSqlConfiguration sqlConfig = StackHashSqlConfiguration.Default;

            sqlConfig.ConnectionTimeout = 10;

            m_Index = new SqlErrorIndex(sqlConfig, databaseName, cabFolder);
            m_Index.Activate(true, false); // Allow database to be created.

            ErrorIndexConnectionTestResults result = m_Index.GetDatabaseStatus();

            Assert.AreNotEqual(null, result);
            Assert.AreEqual(StackHashErrorIndexDatabaseStatus.Success, result.Result);
            Assert.AreEqual(null, result.LastException);
        }
Exemplo n.º 27
0
        //
        // You can use the following additional attributes as you write your tests:
        //
        // Use ClassInitialize to run code before running the first test in the class
        // [ClassInitialize()]
        // public static void MyClassInitialize(TestContext testContext) { }
        //
        // Use ClassCleanup to run code after all tests in a class have run
        // [ClassCleanup()]
        // public static void MyClassCleanup() { }
        //
        // Use TestInitialize to run code before running each test
        // [TestInitialize()]
        // public void MyTestInitialize() { }
        //
        // Use TestCleanup to run code after each test has run
        // [TestCleanup()]
        // public void MyTestCleanup() { }
        //
        #endregion

        /// <summary>
        /// Adds the rollup of hitDates.
        /// </summary>
        public void addHitDateSummaries(int numHitDateSummaries)
        {
            // Create a clean index.
            m_Index = new SqlErrorIndex(StackHashSqlConfiguration.Default, SqlUtils.UnitTestDatabase, m_RootCabFolder);
            m_Index.DeleteIndex();
            m_Index.Activate();

            DateTime hitDateBase = DateTime.Now.RoundToNextSecond();
            int      productId   = 1234;

            // Check a hitDate that doesn't exist.
            Assert.AreEqual(false, m_Index.HitDateSummaryExists(productId, DateTime.Now));

            StackHashProductHitDateSummaryCollection allHitDateSummaries = new StackHashProductHitDateSummaryCollection();

            for (int hitDateCount = 0; hitDateCount < numHitDateSummaries; hitDateCount++)
            {
                int      totalHits = hitDateCount + 1;
                DateTime hitDate   = hitDateBase.AddDays(hitDateCount);

                m_Index.AddHitDateSummary(productId, hitDate, totalHits, false);

                // Check the hitDate exists now.
                Assert.AreEqual(true, m_Index.HitDateSummaryExists(productId, hitDate));

                // Get the specific hitDate and make sure it was stored properly.
                StackHashProductHitDateSummary summary = m_Index.GetHitDateSummaryForProduct(productId, hitDate);
                Assert.AreEqual(hitDate, summary.HitDate.ToLocalTime());
                Assert.AreEqual(totalHits, summary.TotalHits);

                allHitDateSummaries.Add(summary);
            }

            StackHashProductHitDateSummaryCollection hitDateSummaryCollection = m_Index.GetHitDateSummaries(productId);

            Assert.AreEqual(numHitDateSummaries, hitDateSummaryCollection.Count);

            foreach (StackHashProductHitDateSummary hitDateData in hitDateSummaryCollection)
            {
                // Find the matching hitDate in the expected list.
                StackHashProductHitDateSummary expectedSummary = allHitDateSummaries.FindHitDate(hitDateData.HitDate);

                Assert.AreNotEqual(null, expectedSummary);
                Assert.AreEqual(0, expectedSummary.CompareTo(hitDateData));
            }
        }
Exemplo n.º 28
0
        public void AddFileNullProduct()
        {
            m_Index = new SqlErrorIndex(StackHashSqlConfiguration.Default, SqlUtils.UnitTestDatabase, m_RootCabFolder);
            m_Index.DeleteIndex();
            try
            {
                m_Index.Activate();
                StackHashFile file = new StackHashFile();

                m_Index.AddFile(null, file);
            }
            catch (ArgumentNullException ex)
            {
                Assert.AreEqual("product", ex.ParamName);
                throw;
            }
        }
Exemplo n.º 29
0
        public void InvalidWrongInstance()
        {
            String cabFolder    = m_RootCabFolder;
            String databaseName = "TestIndex";
            StackHashSqlConfiguration sqlConfig = StackHashSqlConfiguration.Default;

            sqlConfig.ConnectionTimeout = 10;
            sqlConfig.ConnectionString  = "Data Source=(local)\\SQLEXPRESSSS;Integrated Security=True;";

            m_Index = new SqlErrorIndex(sqlConfig, databaseName, cabFolder);

            ErrorIndexConnectionTestResults result = m_Index.GetDatabaseStatus();

            Assert.AreNotEqual(null, result);
            Assert.AreEqual(StackHashErrorIndexDatabaseStatus.FailedToConnectToMaster, result.Result);
            Assert.AreNotEqual(null, result.LastException);
        }
Exemplo n.º 30
0
        private IErrorIndex getIndex(ErrorIndexSettings settings, StackHashSqlConfiguration sqlSettings)
        {
            IErrorIndex index;

            if (settings.Type == ErrorIndexType.Xml)
            {
                index = new XmlErrorIndex(settings.Folder, settings.Name);
                index = new ErrorIndexCache(index);
            }
            else
            {
                sqlSettings.InitialCatalog = settings.Name;
                index = new SqlErrorIndex(sqlSettings, settings.Name, settings.Folder);
            }

            return(index);
        }