public void IF_view_lookup_returns_null_SHOULD_throw()
        {
            //Arrange
            MockNavigationLookup.Where_GetViewType_returns <TestViewModel>(null);

            //Act
            Assert.ThrowsAsync <NavigationException>(async() => await Sut.ShowViewAsync <TestViewModel>(), "View not registered for ViewModel");
        }
        public override void Setup()
        {
            base.Setup();

            _testView = new TestView(new TestViewModel());
            MockNavigationLookup.Where_GetViewType_returns <TestViewModel>(typeof(TestView));
            MockServiceLocator.Where_Resolve_returns(_testView, typeof(TestView));
        }
        public void IF_resolved_view_cannot_be_converted_to_Page_SHOULD_throw()
        {
            //Arrange
            MockNavigationLookup.Where_GetViewType_returns <TestViewModel>(typeof(FakeView));
            MockServiceLocator.Where_Resolve_returns(new FakeView(), typeof(FakeView));

            //Act
            Assert.ThrowsAsync <NavigationException>(async() => await Sut.ShowViewAsync <TestViewModel>(), "View type FakeView is not a Xamarin.Forms Page");
        }
        public override void Setup()
        {
            base.Setup();

            _parameter          = Guid.NewGuid();
            _testView           = new TestInitializingView(new TestInitializingViewModel());
            _testNavigationView = new NavigationView(MockNavigationService.Object, _testView);

            MockNavigationLookup.Where_GetViewType_returns <TestInitializingViewModel>(typeof(TestInitializingView));
            MockServiceLocator.Where_Resolve_returns(_testView, typeof(TestInitializingView));
        }
        public async Task IF_ViewModel_is_IAsyncInitializable_SHOULD_initialize()
        {
            //Arrange
            var testAsyncInitializableView = new TestAsyncInitializableView(new TestAsyncInitializableViewModel());

            MockNavigationLookup.Where_GetViewType_returns <TestAsyncInitializableViewModel>(typeof(TestAsyncInitializableView));
            MockServiceLocator.Where_Resolve_returns(testAsyncInitializableView, typeof(TestAsyncInitializableView));

            //Act
            await Sut.ShowMainViewAsync <TestAsyncInitializableViewModel>();

            //Assert
            Assert.That(((TestAsyncInitializableViewModel)testAsyncInitializableView.BindingContext).IsInitialized, Is.True);
        }
        public override void Setup()
        {
            base.Setup();

            MockForms.Init();

            _testViewModel = new TestViewModel();
            _testView      = new TestView(new TestViewModel());

            _testMenuView        = new TestMenuView(_testViewModel);
            _testFlyoutViewModel = new TestFlyoutViewModel();
            _testFlyoutPage      = new FlyoutPage <TestFlyoutViewModel, TestMenuView, TestView>(_testFlyoutViewModel, MockNavigationService.Object, _testMenuView, _testView);

            MockNavigationLookup.Where_GetViewType_returns <TestViewModel>(typeof(TestView));
            MockServiceLocator.Where_Resolve_returns(_testView, typeof(TestView));
        }