public void OnTestCompletionShouldUpdateInProgressListWhenTestHasSameId() { long cacheSize = 2; var tester = new TestCacheTester { ExpectedCacheSize = cacheSize }; var cache = new TestRunCache(cacheSize, TimeSpan.MaxValue, tester.CacheHitOnSize); for (var i = 0; i < cacheSize; i++) { var tr = this.GetTestResult(i); cache.OnTestStarted(tr.TestCase); var clone = new TestCase( tr.TestCase.FullyQualifiedName, tr.TestCase.ExecutorUri, tr.TestCase.Source); clone.Id = tr.TestCase.Id; Assert.IsTrue(cache.OnTestCompletion(clone)); Assert.AreEqual(0, cache.InProgressTests.Count); } }
public void TestRunStatsShouldReturnCurrentStats() { long cacheSize = 10; var tester = new TestCacheTester { ExpectedCacheSize = cacheSize }; var cache = new TestRunCache(cacheSize, TimeSpan.MaxValue, tester.CacheHitOnSize); for (var i = 0; i < cacheSize; i++) { var tr = this.GetTestResult(i); if (i < 5) { tr.Outcome = TestOutcome.Passed; } else { tr.Outcome = TestOutcome.Failed; } cache.OnNewTestResult(tr); } var stats = cache.TestRunStatistics; Assert.AreEqual(cacheSize, stats.ExecutedTests); Assert.AreEqual(5, stats.Stats[TestOutcome.Passed]); Assert.AreEqual(5, stats.Stats[TestOutcome.Failed]); }
public void OnTestCompletionShouldReturnFalseIfInProgressTestsIsEmpty() { long cacheSize = 10; var tester = new TestCacheTester { ExpectedCacheSize = cacheSize }; var cache = new TestRunCache(cacheSize, TimeSpan.MaxValue, tester.CacheHitOnSize); Assert.IsFalse(cache.OnTestCompletion(this.GetTestResult(0).TestCase)); }
public void OnTestCompletionShouldNotThrowIfCompletedTestIsNull() { long cacheSize = 10; var tester = new TestCacheTester { ExpectedCacheSize = cacheSize }; var cache = new TestRunCache(cacheSize, TimeSpan.MaxValue, tester.CacheHitOnSize); Assert.IsFalse(cache.OnTestCompletion(null)); }
public void OnTestStartedShouldAddToInProgressTests() { var tester = new TestCacheTester { ExpectedCacheSize = int.MaxValue }; var cache = new TestRunCache(int.MaxValue, TimeSpan.MaxValue, tester.CacheHitOnSize); var tr = this.GetTestResult(0); cache.OnTestStarted(tr.TestCase); CollectionAssert.Contains(cache.InProgressTests.ToList(), tr.TestCase); }
public void OnNewTestResultShouldAddToTestResultCache() { long cacheSize = 10; var tester = new TestCacheTester { ExpectedCacheSize = cacheSize }; var cache = new TestRunCache(cacheSize, TimeSpan.MaxValue, tester.CacheHitOnSize); for (var i = 0; i < 2; i++) { var tr = this.GetTestResult(i); cache.OnNewTestResult(tr); CollectionAssert.Contains(cache.TestResults.ToList(), tr); } }
public void OnNewTestResultShouldAddToTotalExecutedTests() { long cacheSize = 10; var tester = new TestCacheTester { ExpectedCacheSize = cacheSize }; var cache = new TestRunCache(cacheSize, TimeSpan.MaxValue, tester.CacheHitOnSize); for (var i = 0; i < 2; i++) { var tr = this.GetTestResult(i); cache.OnNewTestResult(tr); } Assert.AreEqual(2, cache.TotalExecutedTests); }
public void OnTestStartedShouldAddMultipleInProgressTestsTillCacheHit() { long cacheSize = 10; var tester = new TestCacheTester { ExpectedCacheSize = cacheSize }; var cache = new TestRunCache(cacheSize, TimeSpan.MaxValue, tester.CacheHitOnSize); for (var i = 0; i < (cacheSize - 1); i++) { var tr = this.GetTestResult(i); cache.OnTestStarted(tr.TestCase); Assert.AreEqual(i, cache.InProgressTests.Count - 1); } }
public void OnTestCompletionShouldUpdateInProgressList() { long cacheSize = 2; var tester = new TestCacheTester { ExpectedCacheSize = cacheSize }; var cache = new TestRunCache(cacheSize, TimeSpan.MaxValue, tester.CacheHitOnSize); for (int i = 0; i < cacheSize; i++) { var tr = this.GetTestResult(i); cache.OnTestStarted(tr.TestCase); Assert.IsTrue(cache.OnTestCompletion(tr.TestCase)); Assert.AreEqual(0, cache.InProgressTests.Count); } }
public void OnNewTestResultShouldRemoveTestCaseFromInProgressList() { long cacheSize = 10; var tester = new TestCacheTester { ExpectedCacheSize = cacheSize }; var cache = new TestRunCache(cacheSize, TimeSpan.MaxValue, tester.CacheHitOnSize); for (var i = 0; i < 2; i++) { var tr = this.GetTestResult(i); cache.OnTestStarted(tr.TestCase); cache.OnNewTestResult(tr); } Assert.AreEqual(0, cache.InProgressTests.Count); }
public void GetLastChunkShouldResetTestResultsInCache() { long cacheSize = 10; var tester = new TestCacheTester { ExpectedCacheSize = cacheSize }; var cache = new TestRunCache(cacheSize, TimeSpan.MaxValue, tester.CacheHitOnSize); for (var i = 0; i < 2; i++) { var tr = this.GetTestResult(i); cache.OnNewTestResult(tr); } cache.GetLastChunk(); Assert.AreEqual(0, cache.TestResults.Count); }
public void OnTestCompleteShouldNotRemoveTestCaseFromInProgressListForUnrelatedTestResult() { long cacheSize = 10; var tester = new TestCacheTester { ExpectedCacheSize = cacheSize }; var cache = new TestRunCache(cacheSize, TimeSpan.MaxValue, tester.CacheHitOnSize); var tr1 = this.GetTestResult(0); cache.OnTestStarted(tr1.TestCase); var tr2 = this.GetTestResult(1); Assert.IsFalse(cache.OnTestCompletion(tr2.TestCase)); Assert.AreEqual(1, cache.InProgressTests.Count); }
public void OnNewTestResultShouldReportTestResultsWhenMaxCacheSizeIsHit() { long cacheSize = 10; var tester = new TestCacheTester { ExpectedCacheSize = cacheSize }; var cache = new TestRunCache(cacheSize, TimeSpan.MaxValue, tester.CacheHitOnSize); for (var i = 0; i < cacheSize; i++) { var tr = this.GetTestResult(i); cache.OnNewTestResult(tr); } Assert.AreEqual(1, tester.CacheHitCount); Assert.AreEqual(cacheSize, cache.TotalExecutedTests); Assert.AreEqual(0, cache.TestResults.Count); }
public void OnNewTestResultShouldUpdateRunStats() { long cacheSize = 10; var tester = new TestCacheTester { ExpectedCacheSize = cacheSize }; var cache = new TestRunCache(cacheSize, TimeSpan.MaxValue, tester.CacheHitOnSize); for (var i = 0; i < 2; i++) { var tr = this.GetTestResult(i); tr.Outcome = TestOutcome.Passed; cache.OnNewTestResult(tr); } Assert.AreEqual(2, cache.TestRunStatistics.ExecutedTests); Assert.AreEqual(2, cache.TestRunStatistics.Stats[TestOutcome.Passed]); }
public void OnNewTestResultShouldNotFireIfMaxCacheSizeIsNotHit() { long cacheSize = 10; var tester = new TestCacheTester { ExpectedCacheSize = cacheSize }; var cache = new TestRunCache(cacheSize, TimeSpan.MaxValue, tester.CacheHitOnSize); var executedTests = cacheSize - 1; for (var i = 0; i < executedTests; i++) { var tr = this.GetTestResult(i); cache.OnNewTestResult(tr); } Assert.AreEqual(0, tester.CacheHitCount); Assert.AreEqual(executedTests, cache.TotalExecutedTests); Assert.AreEqual(executedTests, cache.TestResults.Count); }
public void OnNewTestResultShouldReportResultsMultipleTimes() { long cacheSize = 10; var tester = new TestCacheTester { ExpectedCacheSize = cacheSize }; var cache = new TestRunCache(cacheSize, TimeSpan.MaxValue, tester.CacheHitOnSize); long executedTests = 45; for (var i = 0; i < executedTests; i++) { var tr = this.GetTestResult(i); cache.OnNewTestResult(tr); } Assert.AreEqual(4, tester.CacheHitCount); Assert.AreEqual(executedTests, cache.TotalExecutedTests); Assert.AreEqual(5, cache.TestResults.Count); }
public void OnTestStartedShouldReportResultsOnCacheHit() { long cacheSize = 2; var tester = new TestCacheTester { ExpectedCacheSize = cacheSize }; var cache = new TestRunCache(cacheSize, TimeSpan.MaxValue, tester.CacheHitOnSize); for (var i = 0; i < cacheSize; i++) { var tr = this.GetTestResult(i); cache.OnTestStarted(tr.TestCase); } Assert.AreEqual(1, tester.CacheHitCount); Assert.AreEqual(0, cache.TotalExecutedTests); Assert.AreEqual(0, cache.TestResults.Count); Assert.AreEqual(0, cache.InProgressTests.Count); Assert.AreEqual(2, tester.TotalInProgressTestsReceived); }
public void GetLastChunkShouldReturnTestResultsInCache() { long cacheSize = 10; var tester = new TestCacheTester { ExpectedCacheSize = cacheSize }; var cache = new TestRunCache(cacheSize, TimeSpan.MaxValue, tester.CacheHitOnSize); List <Microsoft.VisualStudio.TestPlatform.ObjectModel.TestResult> pushedTestResults = new List <Microsoft.VisualStudio.TestPlatform.ObjectModel.TestResult>(); for (var i = 0; i < 2; i++) { var tr = this.GetTestResult(i); cache.OnNewTestResult(tr); pushedTestResults.Add(tr); } var testResultsInCache = cache.GetLastChunk(); CollectionAssert.AreEqual(pushedTestResults, testResultsInCache.ToList()); }