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