Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 7
0
        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));
        }