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); }