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