Exemplo n.º 1
0
            public async Task Should_Return_Last_Element()
            {
                // Given
                ViewStackService sut = new ViewStackServiceFixture();
                await sut.PushPage(new NavigableViewModelMock("1"));

                await sut.PushPage(new NavigableViewModelMock("2"));

                // When
                var result = await sut.TopPage();

                // Then
                result.Should().BeOfType <NavigableViewModelMock>();
                result.Id.Should().Be("2");
            }
Exemplo n.º 2
0
            public async Task Should_Clear_Navigation_Stack_If_Reset()
            {
                // Given
                ViewStackService sut = new ViewStackServiceFixture().WithView(Substitute.For <IView>());

                // When
                await sut.PushPage(new NavigableViewModelMock(), pages : 3);

                await sut.PushPage(new NavigableViewModelMock(), resetStack : true);

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

                // Then
                result.Should().ContainSingle();
            }
Exemplo n.º 3
0
            public async Task Should_Throw_If_View_Model_Null()
            {
                // Given
                ViewStackService sut = new ViewStackServiceFixture();

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

                // Then
                result.Should().BeOfType <ArgumentNullException>().Which.ParamName.Should().Be("viewModel");
            }
Exemplo n.º 4
0
            public async Task Should_Receive_Push_Page()
            {
                // Given
                ViewStackService sut = new ViewStackServiceFixture().WithView(Substitute.For <IView>());

                // When
                await sut.PushPage(new NavigableViewModelMock());

                // Then
                await sut.View.Received().PushPage(Arg.Any <IViewModel>(), null, false);
            }
Exemplo n.º 5
0
            public async Task Should_Not_Pop()
            {
                // Given
                ViewStackService sut = new ViewStackServiceFixture().WithView(Substitute.For <IView>());
                await sut.PushPage(new NavigableViewModelMock());

                // When
                await sut.TopPage();

                // Then
                await sut.View.DidNotReceive().PopPage();
            }
Exemplo n.º 6
0
            public async Task Should_Return_Unit()
            {
                // Given
                ViewStackService sut = new ViewStackServiceFixture();
                await sut.PushPage(new NavigableViewModelMock());

                // When
                var result = await sut.PopPage();

                // Then
                result.Should().BeOfType <Unit>();
            }
Exemplo n.º 7
0
            public async Task Should_Receive_Pop_Page()
            {
                // Given
                ViewStackService sut = new ViewStackServiceFixture();
                await sut.PushPage(new NavigableViewModelMock());

                // When
                await sut.PopPage();

                // Then
                await sut.View.Received().PopPage();
            }
Exemplo n.º 8
0
            public async Task Should_Push_Page_On_Stack()
            {
                // Given
                ViewStackService sut = new ViewStackServiceFixture();

                // When
                await sut.PushPage(new NavigableViewModelMock());

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

                // Then
                result.Should().NotBeEmpty();
                result.Count.Should().Be(1);
            }
Exemplo n.º 9
0
            public async Task Should_Push_Page()
            {
                // Given
                ViewStackService sut = new ViewStackServiceFixture();

                // When
                await sut.PushPage(new NavigableViewModelMock());

                var result = await sut.TopPage();

                // Then
                result.Should().NotBeNull();
                result.Should().BeOfType <NavigableViewModelMock>();
            }
Exemplo n.º 10
0
            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();
            }
Exemplo n.º 11
0
            public async Task Should_Pop_Page()
            {
                // Given
                ViewStackService sut = new ViewStackServiceFixture().WithView(new NavigationViewMock());
                await sut.PushPage(new NavigableViewModelMock());

                // When
                await sut.PopPage();

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

                // Then
                result.Should().BeEmpty();
            }
Exemplo n.º 12
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();
            }
Exemplo n.º 13
0
            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);
            }
Exemplo n.º 14
0
            public async Task Should_Throw_If_View_Model_Null()
            {
                // Given
                ViewStackService sut = new ViewStackServiceFixture();

                // When
                var result = await Should.ThrowAsync <ArgumentNullException>(async() => await sut.PushPage(null)).ConfigureAwait(false);

                // Then
                result.ParamName.ShouldBe("page");
            }