From 2e07a602e10dea2ef5bc4b0bd1be3dee32482086 Mon Sep 17 00:00:00 2001 From: Kevin Pilch-Bisson Date: Sun, 9 Aug 2015 12:28:05 -0700 Subject: [PATCH] Implement the State Filters and Counts. --- xunit.runner.wpf/MainWindow.xaml | 50 ++++++++++------ xunit.runner.wpf/ViewModel/MainViewModel.cs | 65 ++++++++++++++++++++- 2 files changed, 97 insertions(+), 18 deletions(-) diff --git a/xunit.runner.wpf/MainWindow.xaml b/xunit.runner.wpf/MainWindow.xaml index 67fd2e6..50eb805 100644 --- a/xunit.runner.wpf/MainWindow.xaml +++ b/xunit.runner.wpf/MainWindow.xaml @@ -128,23 +128,39 @@ - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/xunit.runner.wpf/ViewModel/MainViewModel.cs b/xunit.runner.wpf/ViewModel/MainViewModel.cs index a7b7636..33bb37e 100644 --- a/xunit.runner.wpf/ViewModel/MainViewModel.cs +++ b/xunit.runner.wpf/ViewModel/MainViewModel.cs @@ -62,13 +62,34 @@ namespace xunit.runner.wpf.ViewModel private set { Set(ref methodsCaption, value); } } - private int testsCompleted = -1; + private int testsCompleted = 0; public int TestsCompleted { get { return testsCompleted; } set { Set(ref testsCompleted, value); } } + private int testsPassed = 0; + public int TestsPassed + { + get { return testsPassed; } + set { Set(ref testsPassed, value); } + } + + private int testsFailed = 0; + public int TestsFailed + { + get { return testsFailed; } + set { Set(ref testsFailed, value); } + } + + private int testsSkipped = 0; + public int TestsSkipped + { + get { return testsSkipped; } + set { Set(ref testsSkipped, value); } + } + private int maximumProgress = int.MaxValue; public int MaximumProgress { @@ -323,6 +344,19 @@ namespace xunit.runner.wpf.ViewModel private void TestRunVisitor_TestFinished(object sender, TestStateEventArgs e) { TestsCompleted++; + switch (e.State) + { + case TestState.Passed: + TestsPassed++; + break; + case TestState.Failed: + TestsFailed++; + break; + case TestState.Skipped: + TestsSkipped++; + break; + } + if (e.State > CurrentRunState) { CurrentRunState = e.State; @@ -335,6 +369,35 @@ namespace xunit.runner.wpf.ViewModel { this.IsCancelRequested = true; } + + public bool IsPassedFilterChecked + { + get { return ResultFilter == TestState.Passed; } + set { UpdateFilter(value, TestState.Passed); } + } + + public bool IsFailedFilterChecked + { + get { return ResultFilter == TestState.Failed; } + set { UpdateFilter(value, TestState.Failed); } + } + + public bool IsSkippedFilterChecked + { + get { return ResultFilter == TestState.Skipped; } + set { UpdateFilter(value, TestState.Skipped); } + } + + private void UpdateFilter(bool value, TestState newState) + { + if (value && ResultFilter != newState) + { + ResultFilter = newState; + RaisePropertyChanged(nameof(IsPassedFilterChecked)); + RaisePropertyChanged(nameof(IsFailedFilterChecked)); + RaisePropertyChanged(nameof(IsSkippedFilterChecked)); + } + } } ///