public async Task Should_Throw_If_Stack_Empty()
            {
                // Given
                ViewStackService sut = new ViewStackServiceFixture();

                // When
                var result = await Record.ExceptionAsync(async() => await sut.PopToRootPage()).ConfigureAwait(false);

                // Then
                result.Should().BeOfType <InvalidOperationException>().Which.Message.Should().Be("Stack is empty.");
            }
            public async Task Should_Have_One_Item_On_Stack()
            {
                // Given
                ViewStackService sut = new ViewStackServiceFixture();
                await sut.PushPage(new NavigableViewModelMock(), pages : 3);

                await sut.PopToRootPage();

                // When
                var result = await sut.PageStack.FirstOrDefaultAsync();

                // Then
                result.Should().ContainSingle();
            }
Esempio n. 3
0
            public async Task Should_Clear_Navigation_Stack()
            {
                // Given
                ViewStackService sut = new ViewStackServiceFixture();
                await sut.PushPage(new NavigableViewModelMock(), pages : 3);

                // When
                await sut.PopToRootPage();

                var result = await sut.PageStack.FirstOrDefaultAsync();

                // Then
                result.ShouldHaveSingleItem();
            }
            public async Task Should_Return_Single_Notification()
            {
                // Given
                int count            = 0;
                ViewStackService sut = new ViewStackServiceFixture();
                await sut.PushPage(new NavigableViewModelMock(), pages : 3);

                sut.View.PagePopped.Subscribe(_ => count++);

                // When
                await sut.PopToRootPage();

                // Then
                count.Should().Be(1);
            }