Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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());
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
        /// <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());
        }
Ejemplo n.º 9
0
        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());
        }
Ejemplo n.º 12
0
        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);
        }