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.ShouldNotBeEmpty(); result.Count.ShouldBe(1); }
public async Task Should_Push_Page() { // Given ViewStackService sut = new ViewStackServiceFixture(); // When await sut.PushPage(new NavigableViewModelMock()); var result = await sut.TopPage(); // Then result.ShouldNotBeNull(); result.ShouldBeOfType <NavigableViewModelMock>(); }
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.ShouldHaveSingleItem(); }
public async Task Should_Pop_Page() { // Given ViewStackService sut = new ViewStackServiceFixture(); await sut.PushModal(new NavigableViewModelMock()); // When await sut.PopPage(); var result = await sut.PageStack.FirstAsync(); // Then result.ShouldBeEmpty(); }
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.Should().ContainSingle(); }
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"); }
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(); }
public async Task Should_Push_And_Pop(int amount) { // Given ViewStackService sut = new ViewStackServiceFixture(); await sut.PushModal(new NavigableViewModelMock(), "modal", amount); sut.ModalStack.FirstAsync().Wait().Count.Should().Be(amount); await sut.PopModal(amount); // When var result = await sut.ModalStack.FirstAsync(); // Then result.Should().BeEmpty(); }
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); }
public async Task Should_Pop_Modal() { // Given ViewStackService sut = new ViewStackServiceFixture(); await sut.PushModal(new NavigableViewModelMock()); // When var item = await sut.ModalStack.FirstAsync(); item.Count.Should().Be(1); await sut.PopModal(); // Then item = await sut.ModalStack.FirstAsync(); item.Should().BeEmpty(); }