public void NavigationPushPopTest() { var input = new TestViewModel() {SomeProp = "Foo"}; var fixture = new RoutingState(); RxApp.ConfigureServiceLocator( (t, s) => new TestViewModel() {SomeProp = "Foo"}, (t, s) => Enumerable.Empty<object>(), (c, t, s) => { }); Assert.False(fixture.NavigateBack.CanExecute(input)); fixture.Navigate.Go<TestViewModel>(); Assert.Equal(1, fixture.NavigationStack.Count); Assert.False(fixture.NavigateBack.CanExecute(null)); fixture.Navigate.Go<TestViewModel>(); Assert.Equal(2, fixture.NavigationStack.Count); Assert.True(fixture.NavigateBack.CanExecute(null)); fixture.NavigateBack.Execute(null); Assert.Equal(1, fixture.NavigationStack.Count); }
public void NavigationPushPopTest() { var input = new TestViewModel() {SomeProp = "Foo"}; var fixture = new RoutingState(); Assert.False(fixture.NavigateBack.CanExecute(input)); fixture.Navigate.Execute(input); Assert.Equal(1, fixture.NavigationStack.Count); Assert.True(fixture.NavigateBack.CanExecute(null)); fixture.NavigateBack.Execute(null); Assert.Equal(0, fixture.NavigationStack.Count); }
public void RoutingStateSerializableRoundTripTest() { var engine = new DictionaryStorageEngine(); using(var _ = engine.AsPrimaryEngine()) { var input = new TestViewModel() {SomeProp = "Foo"}; var fixture = new RoutingState(); fixture.NavigationStack.Add(input); RxStorage.Engine.CreateSyncPoint(fixture); var output = RxStorage.Engine.Load<RoutingState>(fixture.ContentHash); Assert.True(output.NavigationStack.Count == 1); Assert.True(output.NavigationStack[0].ContentHash == input.ContentHash); Assert.Equal(input.SomeProp, ((TestViewModel) output.NavigationStack[0]).SomeProp); } }
public async Task NavigationPushPopTest() { var input = new TestViewModel() {SomeProp = "Foo"}; var fixture = new RoutingState(); Assert.False(await fixture.NavigateBack.CanExecute.FirstAsync()); await fixture.Navigate.Execute(new TestViewModel()); Assert.Equal(1, fixture.NavigationStack.Count); Assert.False(await fixture.NavigateBack.CanExecute.FirstAsync()); await fixture.Navigate.Execute(new TestViewModel()); Assert.Equal(2, fixture.NavigationStack.Count); Assert.True(await fixture.NavigateBack.CanExecute.FirstAsync()); await fixture.NavigateBack.Execute(); Assert.Equal(1, fixture.NavigationStack.Count); }
public void NavigationPushPopSerializationTest() { var engine = new DictionaryStorageEngine(); using (var _ = engine.AsPrimaryEngine()) { var input = new TestViewModel() {SomeProp = "Foo"}; var fixture = new RoutingState(); fixture.NavigateForward.Execute(input); RxStorage.Engine.CreateSyncPoint(fixture); var output = RxStorage.Engine.GetLatestRootObject<RoutingState>(); Assert.True(output.NavigateBack.CanExecute(null)); output.NavigateBack.Execute(null); RxStorage.Engine.CreateSyncPoint(output); output = RxStorage.Engine.GetLatestRootObject<RoutingState>(); Assert.False(output.NavigateBack.CanExecute(null)); } }
public void NavigateAndResetCheckNavigationStack() { var fixture = new TestScreen(); fixture.Router = new RoutingState(); var viewModel = new TestViewModel(); Assert.False(fixture.Router.NavigationStack.Any()); fixture.Router.NavigateAndReset.Execute(viewModel); Assert.True(fixture.Router.NavigationStack.Count == 1); Assert.True(object.ReferenceEquals(fixture.Router.NavigationStack.First(), viewModel)); }