private void updateAllWinQualFieldsInProduct(IErrorIndex index) { index.Activate(); int i = 0; int productId = 200; 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, productId, "TestProduct1", 20 + i, 30 + i, "2.10.02123.1293", 20); index.AddProduct(product1); i = 1; // Causes the product fields to change (except the product id). StackHashProduct product2 = new StackHashProduct(creationDateTime.AddDays(1), modifiedDateTime.AddDays(1), null, productId, "TestProduct1", 20 + i + 1, 30 + i + 2, "2.10.02123.1293", 100); // Add the same product ID again - should replace all fields. index.AddProduct(product2, true); // Get the product list. StackHashProductCollection products = index.LoadProductList(); Assert.AreNotEqual(null, products); Assert.AreEqual(1, products.Count); Assert.AreEqual(0, product2.CompareTo(products[0])); Assert.AreEqual(product2.TotalStoredEvents, products[0].TotalStoredEvents); StackHashProduct thisProduct = index.GetProduct(product2.Id); Assert.AreNotEqual(null, thisProduct); Assert.AreEqual(0, product2.CompareTo(thisProduct)); }
private void testAddSameProductTwiceWithReset(bool useCache) { IErrorIndex index = new XmlErrorIndex(m_TempPath, "Cucku"); if (useCache) { index = new ErrorIndexCache(index); } index.Activate(); int i = 0; int productId = 200; StackHashProduct product1 = new StackHashProduct(DateTime.Now.AddDays(i), DateTime.Now.AddDays(i), null, productId, "TestProduct1", 20 + i, 30 + i, "2.10.02123.1293"); index.AddProduct(product1); i = 1; // Causes the product fields to change (except the product id). product1 = new StackHashProduct(DateTime.Now.AddDays(i), DateTime.Now.AddDays(i), null, productId, "TestProduct1", 20 + i, 30 + i, "2.10.02123.1293"); // Add the same product ID again - should replace. index.AddProduct(product1); // Reload. index = new XmlErrorIndex(m_TempPath, "Cucku"); if (useCache) { index = new ErrorIndexCache(index); } index.Activate(); // Get the product list. StackHashProductCollection products = index.LoadProductList(); Assert.AreNotEqual(null, products); Assert.AreEqual(1, products.Count); Assert.AreEqual(0, product1.CompareTo(products[0])); StackHashProduct thisProduct = index.GetProduct(product1.Id); Assert.AreNotEqual(null, thisProduct); Assert.AreEqual(0, product1.CompareTo(thisProduct)); }
private void checkIndexData(IErrorIndex index) { int numProducts = 100; int cabId = 12345678; int fileId = 2000; int eventId = 1000; for (int productCount = 0; productCount < numProducts; productCount++) { StackHashProduct retrievedProduct = index.GetProduct(productCount + 10); 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, (productCount + 10), "TestProduct1", 20, 30, "2.10.02123.1293"); Assert.AreEqual(0, product1.CompareTo(retrievedProduct)); StackHashFile file1 = new StackHashFile(creationDateTime, modifiedDateTime, fileId++, creationDateTime, "FileName", "1.2.3.4"); StackHashFile retrievedFile = index.GetFile(product1, file1.Id); Assert.AreEqual(0, file1.CompareTo(retrievedFile)); StackHashEventSignature eventSignature = new StackHashEventSignature(); eventSignature.Parameters = new StackHashParameterCollection(); eventSignature.Parameters.Add(new StackHashParameter(StackHashEventSignature.ParamApplicationName, "AppName")); eventSignature.Parameters.Add(new StackHashParameter(StackHashEventSignature.ParamApplicationVersion, "1.2.3.4")); eventSignature.Parameters.Add(new StackHashParameter(StackHashEventSignature.ParamApplicationTimeStamp, creationDateTime.ToString())); eventSignature.Parameters.Add(new StackHashParameter(StackHashEventSignature.ParamModuleName, "ModuleName")); eventSignature.Parameters.Add(new StackHashParameter(StackHashEventSignature.ParamModuleVersion, "2.3.4.5")); eventSignature.Parameters.Add(new StackHashParameter(StackHashEventSignature.ParamModuleTimeStamp, creationDateTime.ToString())); eventSignature.Parameters.Add(new StackHashParameter(StackHashEventSignature.ParamExceptionCode, "1234")); eventSignature.Parameters.Add(new StackHashParameter(StackHashEventSignature.ParamOffset, "0x1234")); eventSignature.InterpretParameters(); StackHashEvent thisEvent = new StackHashEvent(creationDateTime, modifiedDateTime, "CLR20", eventId++, eventSignature, 1, file1.Id); StackHashEvent retrievedEvent = index.GetEvent(product1, file1, thisEvent); Assert.AreEqual(0, thisEvent.CompareTo(retrievedEvent)); StackHashCab cab = new StackHashCab(creationDateTime, modifiedDateTime, thisEvent.Id, thisEvent.EventTypeName, "cab12345_23232.cab", cabId++, 12000); cab.DumpAnalysis = new StackHashDumpAnalysis("2 days, 5 hours, 2 mins", "1 hour, 2 mins", "2.120.222.1121212", "Microsoft Windows Vista X64 6.0.212121212 (Build 2500)", "64 bit windows"); cab.CabDownloaded = true; StackHashCab retrievedCab = index.GetCab(product1, file1, thisEvent, cab.Id); Assert.AreEqual(0, cab.CompareTo(retrievedCab)); String cabFolder = index.GetCabFolder(product1, file1, thisEvent, cab); String cabFileName = index.GetCabFileName(product1, file1, thisEvent, cab); Assert.AreEqual(true, Directory.Exists(cabFolder)); Assert.AreEqual(true, File.Exists(cabFileName)); } }
private void testGetProductUnknownId(IErrorIndex index) { index.Activate(); int i = 0; int productId = 200; 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, productId, "TestProduct1", 20 + i, 30 + i, "2.10.02123.1293"); index.AddProduct(product1); // Get the product list. StackHashProductCollection products = index.LoadProductList(); Assert.AreNotEqual(null, products); Assert.AreEqual(1, products.Count); Assert.AreEqual(0, product1.CompareTo(products[0])); StackHashProduct thisProduct = index.GetProduct(product1.Id + 1); Assert.AreEqual(null, thisProduct); }
private void testCacheInitialiseNProductsAddAnotherProduct(IErrorIndex realIndex, int numProducts) { realIndex.Activate(); StackHashProductCollection allProducts = new StackHashProductCollection(); for (int i = 0; i < numProducts; i++) { DateTime creationDateTime = new DateTime(2010, 04, 04, 22, 9, 0, DateTimeKind.Utc).AddDays(i); DateTime modifiedDateTime = new DateTime(2010, 05, 05, 23, 10, 0, DateTimeKind.Utc).AddDays(i); int productId = 200 + i; StackHashProduct product1 = new StackHashProduct(creationDateTime, modifiedDateTime, null, productId, "TestProduct1", 20 + i, 30 + i, "2.10.02123.1293"); realIndex.AddProduct(product1); } // Hook up the cache and call LoadProductList. ErrorIndexCache indexCache = new ErrorIndexCache(realIndex); indexCache.Activate(); // Get the product list. StackHashProductCollection products = indexCache.LoadProductList(); Assert.AreNotEqual(null, products); Assert.AreEqual(numProducts, products.Count); for (int i = 0; i < allProducts.Count; i++) { Assert.AreEqual(0, allProducts[0].CompareTo(products.FindProduct(allProducts[0].Id))); } // Hook up the cache afresh and call GetProduct. indexCache = new ErrorIndexCache(realIndex); indexCache.Activate(); for (int i = 0; i < allProducts.Count; i++) { StackHashProduct thisProduct = indexCache.GetProduct(allProducts[i].Id); Assert.AreNotEqual(null, thisProduct); Assert.AreEqual(0, allProducts[i].CompareTo(thisProduct)); } // Now add one more product. StackHashProduct finalProduct = new StackHashProduct(DateTime.Now.AddDays(99), DateTime.Now.AddDays(99), null, 99, "TestProduct99", 99, 98, "2.10.02123.1293"); indexCache.AddProduct(finalProduct); // Now reload and check it is still there. indexCache = new ErrorIndexCache(realIndex); indexCache.Activate(); products = indexCache.LoadProductList(); Assert.AreNotEqual(null, products); Assert.AreEqual(numProducts + 1, products.Count); StackHashProduct latestProduct = indexCache.GetProduct(finalProduct.Id); Assert.AreNotEqual(null, latestProduct); Assert.AreEqual(0, finalProduct.CompareTo(latestProduct)); }