public async Task Extended_interface_contract_changes_can_be_detected() { var ct = CancellationToken.None; IStackNavigator navigator = new BlindStackNavigator(); // If the extension methods available in the abstraction package change their signatures, we get compilation errors here. TestVM vmAfterNavigate = await navigator.Navigate(ct, () => new TestVM(), suppressTransition : false); TestVM vmAfterNavigateAndClear = await navigator.NavigateAndClear(ct, () => new TestVM(), suppressTransition : false); INavigableViewModel vm = navigator.GetActiveViewModel(); bool canGoBack = navigator.CanNavigateBack(); // Navigate twice so that RemovePrevious works. await navigator.Navigate(ct, () => new TestVM(), suppressTransition : false); await navigator.Navigate(ct, () => new TestVM(), suppressTransition : false); await navigator.RemovePrevious(ct); bool didNavigateBack = await navigator.TryNavigateBackTo <TestVM>(ct); await navigator.ProcessRequest(ct, StackNavigatorRequest.GetNavigateRequest(() => new TestVM(), false, false)); IObservable <EventPattern <StackNavigatorEventArgs> > ob1 = navigator.ObserveStateChanged(); IObservable <StackNavigatorState> ob2 = navigator.ObserveCurrentState(); }