public void TestDeduplicaiton_NoClassifier_ShouldGenerateCorrectSha() { var report1 = new BacktraceReport(string.Empty); var deduplicationStrategy1 = new DeduplicationModel(new BacktraceData(report1), DeduplicationStrategy.Classifier); var sha1 = deduplicationStrategy1.GetSha(); Assert.IsNotEmpty(sha1); }
public void TestDeduplicaiton_EmptyStackTraceMessage_ShouldGenerateCorrectSha() { var report1 = new BacktraceReport(new BacktraceUnhandledException(string.Empty, string.Empty)); var deduplicationStrategy1 = new DeduplicationModel(new BacktraceData(report1), DeduplicationStrategy.Default); var sha1 = deduplicationStrategy1.GetSha(); Assert.IsNotEmpty(sha1); }
public void TestDeduplicaiton_DifferentExceptions_ShouldGenerateDifferentHashForDifferentRerports(DeduplicationStrategy strategy) { var report1 = new BacktraceReport(new Exception("test")); var report2 = new BacktraceReport(new ArgumentException("argument test")); var deduplicationStrategy1 = new DeduplicationModel(new BacktraceData(report1), strategy); var deduplicationStrategy2 = new DeduplicationModel(new BacktraceData(report2), strategy); var sha1 = deduplicationStrategy1.GetSha(); var sha2 = deduplicationStrategy2.GetSha(); Assert.AreNotEqual(sha1, sha2); }
public void TestShaComparision_Fingerprintavailable_DeduplicationReturnsFingerprint() { string fingerprint = "12345"; var exception = new Exception("test message"); var report = new BacktraceReport(exception) { Fingerprint = fingerprint }; var data = new BacktraceData(report, null); var deduplicationModel = new DeduplicationModel(data, DeduplicationStrategy.Default); var sha = deduplicationModel.GetSha(); Assert.AreEqual(sha, fingerprint); }
public void TestShaComparisionWithMultipleOptionsAndReports_MultipleOptions_DeduplicationReturnsFingerprint(DeduplicationStrategy strategy) { var fingerprint = "12345"; var exception = new Exception("testMessage"); var report = new BacktraceReport(exception) { Fingerprint = fingerprint }; var data = new BacktraceData(report, null); var deduplicationModel = new DeduplicationModel(data, strategy); var sha = deduplicationModel.GetSha(); Assert.AreEqual(sha, fingerprint); }
public void TestShaComparision_OnlyEmptyStackTrace_ReportWithFactorGenerateDifferentSha() { var report = new BacktraceReport(new Exception("test message")); var reportWithFactor = new BacktraceReport(new Exception("test message")) { Factor = "12345" }; var data = new BacktraceData(report, null); var dataWithFactor = new BacktraceData(reportWithFactor, null); var deduplicationModel = new DeduplicationModel(data, DeduplicationStrategy.Default); var comparer = new DeduplicationModel(dataWithFactor, DeduplicationStrategy.Default); Assert.AreNotEqual(deduplicationModel.GetSha(), comparer.GetSha()); }
public void TestShaComparision_OnlyStackTrace_ValidSha() { var report = new BacktraceReport(new Exception("test message")); var data = report.ToBacktraceData(null); var deduplicationModel = new DeduplicationModel(data, DeduplicationStrategy.Default); var comparer = new DeduplicationModel(data, DeduplicationStrategy.Default); var deduplicationSha = deduplicationModel.GetSha(); var comparerSha = comparer.GetSha(); Assert.IsNotEmpty(deduplicationSha); Assert.IsNotEmpty(comparerSha); Assert.AreEqual(deduplicationSha, comparerSha); }
/// <summary> /// Generate hash for current diagnostic data /// </summary> /// <param name="backtraceData">Diagnostic data </param> /// <returns>hash for current backtrace data</returns> private string GetHash(BacktraceData backtraceData) { var fingerprint = backtraceData == null ? string.Empty : backtraceData.Report.Fingerprint ?? string.Empty; if (!string.IsNullOrEmpty(fingerprint)) { return(fingerprint); } if (DeduplicationStrategy == DeduplicationStrategy.None) { return(string.Empty); } var deduplicationModel = new DeduplicationModel(backtraceData, DeduplicationStrategy); return(deduplicationModel.GetSha()); }
public void TestShaComparision_ExceptionMessageStrategy_ValidSha() { var exception = new Exception("testMessage"); var report = new BacktraceReport(exception); var data = report.ToBacktraceData(null); var deduplicationModel = new DeduplicationModel(data, DeduplicationStrategy.Message); var comparer = new DeduplicationModel(data, DeduplicationStrategy.Message); var deduplicationSha = deduplicationModel.GetSha(); var comparerSha = comparer.GetSha(); Assert.IsNotEmpty(deduplicationSha); Assert.IsNotEmpty(comparerSha); Assert.AreEqual(deduplicationSha, comparerSha); }
public void TestShaComparisionWithMultipleOptionsAndReports_MultipleOptions_ValidSha(DeduplicationStrategy strategy) { var exception = new Exception("testMessage"); var report = new BacktraceReport(exception); var data = report.ToBacktraceData(null); var deduplicationModel = new DeduplicationModel(data, strategy); var comparer = new DeduplicationModel(data, strategy); var deduplicationSha = deduplicationModel.GetSha(); var comparerSha = comparer.GetSha(); Assert.IsNotEmpty(deduplicationSha); Assert.IsNotEmpty(comparerSha); Assert.AreEqual(deduplicationSha, comparerSha); }
public void TestShaComparision_OnlyEmptyStackTrace_ReportsWithTheSameFactorAreTheSame() { var reportWithFactor = new BacktraceReport(new Exception("test message")) { Factor = "12345" }; var reportWithFactor2 = new BacktraceReport(new Exception("test message")) { Factor = "12345" }; var dataWithFactor2 = new BacktraceData(reportWithFactor2, null); var dataWithFactor = new BacktraceData(reportWithFactor, null); var result = new DeduplicationModel(dataWithFactor2, DeduplicationStrategy.Default); var comparer = new DeduplicationModel(dataWithFactor, DeduplicationStrategy.Default); Assert.AreEqual(result.GetSha(), comparer.GetSha()); }
public void TestShaComparisionWithReportMessage_ExceptionMessageStrategy_ValidSha() { string expectedString = "test"; var report = new BacktraceReport(expectedString); var data = report.ToBacktraceData(null); var deduplicationModel = new DeduplicationModel(data, DeduplicationStrategy.Message); var comparer = new DeduplicationModel(data, DeduplicationStrategy.Message); var deduplicationSha = deduplicationModel.GetSha(); Assert.AreEqual(deduplicationModel.ExceptionMessage, expectedString); Assert.AreEqual(comparer.ExceptionMessage, expectedString); var comparerSha = comparer.GetSha(); Assert.IsNotEmpty(deduplicationSha); Assert.IsNotEmpty(comparerSha); Assert.AreEqual(deduplicationSha, comparerSha); }