public async Task Interface_contract_changes_can_be_detected() { var ct = CancellationToken.None; var sectionsNavigator = new BlindSectionsNavigator("Section1", "Section2"); // If the core contract changes, we get compilation errors here. ISectionStackNavigator navigator = await sectionsNavigator.SetActiveSection(ct, SectionsNavigatorRequest.GetSetActiveSectionRequest("Section1")); // Make sure ISectionStackNavigator inherits from IStackNavigator StackNavigation.IStackNavigator stackNavigator = navigator; Assert.Equal("Section1", navigator.Name); }
public async Task Interface_contract_changes_can_be_detected() { var ct = CancellationToken.None; var sectionsNavigator = new BlindSectionsNavigator("Section1", "Section2"); // If the core contract changes, we get compilation errors here. IModalStackNavigator navigator = await sectionsNavigator.OpenModal(ct, SectionsNavigatorRequest.GetOpenModalRequest(StackNavigation.StackNavigatorRequest.GetNavigateRequest(() => new TestVM()), "modalName", 0)); // Make sure IModalStackNavigator inherits from IStackNavigator StackNavigation.IStackNavigator stackNavigator = navigator; Assert.Equal("modalName", navigator.Name); Assert.Equal(0, navigator.Priority); }
public async Task Extended_interface_contract_changes_can_be_detected() { var ct = CancellationToken.None; var navigator = new BlindSectionsNavigator("Section1", "Section2"); // If the extension methods available in the abstraction package change their signatures, we get compilation errors here. // Only test extensions specific to ISectionStackNavigator ISectionStackNavigator sectionNavigator1 = await navigator.SetActiveSection(ct, "Section1"); ISectionStackNavigator sectionNavigator2 = await navigator.SetActiveSection(ct, "Section1", () => new TestVM(), true); StackNavigation.IStackNavigator stackNavigator = navigator.GetActiveStackNavigator(); await navigator.OpenModal(ct, () => new TestVM(), 0, "modalName"); bool canNavigateBackOrCloseModal = navigator.CanNavigateBackOrCloseModal(); await navigator.NavigateBackOrCloseModal(ct); IObservable <EventPattern <SectionsNavigatorEventArgs> > ob1 = navigator.ObserveStateChanged(); IObservable <SectionsNavigatorState> ob2 = navigator.ObserveCurrentState(); }