public void TestOnItemSelectedWithSelectedItemTestWithoutChildTestsPushesTestDetailPageToStackAndCaches() { NUnitRunner runner = new NUnitRunner("runner-name"); runner.AddTestAssembly(typeof(TestFixtureStubOne).Assembly); IMethodInfo methodOne = new MethodWrapper(typeof(TestsPageTest), GetType().GetMethods().First()); IMethodInfo methodTwo = new MethodWrapper(typeof(TestsPageTest), GetType().GetMethods().Last()); ITest firstTestInstance = new TestMethod(methodOne); ITest secondTestInstance = new TestMethod(methodTwo); TestsViewModel firstTest = new TestsViewModel(runner, firstTestInstance); TestsViewModel secondTest = new TestsViewModel(runner, secondTestInstance); Assert.IsFalse(firstTest.Test.IsSuite); Assert.IsFalse(firstTest.Test.HasChildren); Assert.IsFalse(secondTest.Test.IsSuite); Assert.IsFalse(secondTest.Test.HasChildren); SelectedItemChangedEventArgs firstArgs = new SelectedItemChangedEventArgs(firstTest, 0); SelectedItemChangedEventArgs secondArgs = new SelectedItemChangedEventArgs(secondTest, 0); TestsPageForTest page = new TestsPageForTest(runner); // Load first page page.InvokeOnItemSelected(null, firstArgs); Assert.AreEqual(1, page.NavigationStack.Count); TestDetailPage firstTestsPage = page.NavigationStack.First() as TestDetailPage; Assert.IsNotNull(firstTestsPage); Assert.AreEqual(firstTest, firstTestsPage.ViewModel); Assert.AreEqual(runner, firstTestsPage.ViewModel.TestRunner); Assert.AreEqual(firstTestInstance, firstTestsPage.ViewModel.Test); // Load second page page.InvokeOnItemSelected(null, secondArgs); Assert.AreEqual(2, page.NavigationStack.Count); TestDetailPage secondTestsPage = page.NavigationStack[1] as TestDetailPage; Assert.IsNotNull(secondTestsPage); Assert.AreEqual(secondTest, secondTestsPage.ViewModel); Assert.AreEqual(runner, secondTestsPage.ViewModel.TestRunner); Assert.AreEqual(secondTestInstance, secondTestsPage.ViewModel.Test); // Load first page again IList <Page> expectedStack = new List <Page>(page.NavigationStack); expectedStack.Add(firstTestsPage); page.InvokeOnItemSelected(null, firstArgs); Assert.AreEqual(3, page.NavigationStack.Count); Assert.AreSame(firstTestsPage, page.NavigationStack[2]); CollectionAssert.AreEqual(expectedStack, page.NavigationStack); }
public void TestOnItemSelectedWithEventArgsOrSelectedItemNullReturnsImmediately([Values] bool isArgNull) { SelectedItemChangedEventArgs args = isArgNull ? null : new SelectedItemChangedEventArgs(null, 0); NUnitRunner runner = new NUnitRunner("runner-name"); TestsPageForTest page = new TestsPageForTest(runner); page.InvokeOnItemSelected(null, args); CollectionAssert.IsEmpty(page.NavigationStack); }
public void TestOnItemSelectedWithSelectedItemNotTestTypeReturnsImmediately() { SelectedItemChangedEventArgs args = new SelectedItemChangedEventArgs("Hello", 0); NUnitRunner runner = new NUnitRunner("runner-name"); TestsPageForTest page = new TestsPageForTest(runner); page.InvokeOnItemSelected(null, args); CollectionAssert.IsEmpty(page.NavigationStack); }
public void TestOnItemSelectedWithSelectedItemTestIdIsNullOrEmptyReturnsImmediately([Values] bool isNull) { TestForTest test = new TestForTest(); test.Id = isNull ? null : string.Empty; SelectedItemChangedEventArgs args = new SelectedItemChangedEventArgs(test, 0); NUnitRunner runner = new NUnitRunner("runner-name"); TestsPageForTest page = new TestsPageForTest(runner); page.InvokeOnItemSelected(null, args); CollectionAssert.IsEmpty(page.NavigationStack); }
public void TestOnItemSelectedWithSelectedItemTestDoesNotHaveChildrenAndIsTestSuiteReturnsImmediately() { NUnitRunner runner = new NUnitRunner("runner-name"); ITest suite = new NUnitSuite("suite-name"); TestsViewModel test = new TestsViewModel(runner, suite); Assert.IsTrue(test.Test.IsSuite); Assert.IsFalse(test.Test.HasChildren); SelectedItemChangedEventArgs args = new SelectedItemChangedEventArgs(test, 0); TestsPageForTest page = new TestsPageForTest(runner, test); page.InvokeOnItemSelected(null, args); CollectionAssert.IsEmpty(page.NavigationStack); }
public void TestRunTestsClickedRunsTests() { NUnitRunner runner = new NUnitRunner("runner-name"); runner.AddTestAssembly(typeof(TestFixtureStubOne).Assembly); TestsViewModel test = new TestsViewModel(runner, new NUnitSuite("suite-name")); TestsPageForTest page = new TestsPageForTest(runner, test); Assert.IsNotNull(page.ViewModel.Result); Assert.IsNull(page.ViewModel.Result.Result); page.InvokeRunTestsClicked(this, EventArgs.Empty); while (page.ViewModel.IsBusy) { Thread.Sleep(10); } Assert.IsNotNull(page.ViewModel.Result); }
public void TestOnAppearingLoadsTests() { NUnitRunner runner = new NUnitRunner("runner-name"); runner.AddTestAssembly(typeof(TestFixtureStubOne).Assembly); TestsPageForTest page = new TestsPageForTest(runner); CollectionAssert.IsEmpty(page.ViewModel.Tests); Assert.IsNull(page.ViewModel?.Result?.Result); page.InvokeOnAppearing(); while (page.ViewModel.IsBusy) { Thread.Sleep(10); } CollectionAssert.IsNotEmpty(page.ViewModel.Tests); page.ViewModel.Result = new NUnitTestResult(new TestSuiteResult(runner.TestSuite)); IList <TestsViewModel> tests = new List <TestsViewModel>(page.ViewModel.Tests); runner.AddTestAssembly(GetType().Assembly); page.InvokeOnAppearing(); while (page.ViewModel.IsBusy) { Thread.Sleep(10); } CollectionAssert.AreEquivalent(tests, page.ViewModel.Tests); Assert.IsNotNull(page.ViewModel.Result.Result); CollectionAssert.IsNotEmpty(page.ViewModel.Tests.Select(x => x.Result)); }