public async Task Push_And_Prepare_Model(string stringValue) { var container = new Container(); var app = new Application(); ZeroApp .On(app) .WithContainer(DryIocZeroContainer.Build(container)) .RegisterShell(() => new FirstShell()) .Start(); var firstViewModel = container.Resolve <FirstViewModel>(); var secondViewModel = container.Resolve <SecondViewModel>(); var secondViewModelPageBeforePush = secondViewModel.CurrentPage; var secondViewModelPreviousModelBeforePush = secondViewModel.PreviousModel; Assert.IsNull(secondViewModelPageBeforePush); Assert.IsNull(secondViewModelPreviousModelBeforePush); Assert.IsNull(secondViewModel.SecondStringProperty); await firstViewModel.Push <SecondPage>(stringValue); var secondViewModelPageAfterPush = secondViewModel.CurrentPage; var secondViewModelPreviousModelAfterPush = secondViewModel.PreviousModel; Assert.IsNotNull(secondViewModelPageAfterPush); Assert.IsNotNull(secondViewModelPreviousModelAfterPush); Assert.AreEqual(secondViewModelPageAfterPush.GetType(), typeof(SecondPage)); Assert.AreEqual(secondViewModelPreviousModelAfterPush.GetType(), typeof(FirstViewModel)); Assert.AreEqual(firstViewModel, secondViewModel.PreviousModel); Assert.IsNotNull(secondViewModel.SecondStringProperty); Assert.AreEqual(stringValue, secondViewModel.SecondStringProperty); }
public void ShellPagedViewModel_Markup_Returns_ActualViewModel() { var container = new Container(); var app = new Application(); ZeroApp .On(app) .WithContainer(DryIocZeroContainer.Build(container)) .RegisterShell(() => new FirstShell()) .Start(); var firstPage = container.Resolve <FirstPage>(); var markup = new ShellPagedViewModelMarkup() { ViewModel = typeof(FirstViewModel), Page = firstPage }; var provider = new XamlServiceProvider(); var vmValue = (FirstViewModel)markup.ProvideValue(provider); Assert.AreEqual(typeof(FirstViewModel), vmValue.GetType()); Assert.AreEqual(vmValue, container.Resolve <FirstViewModel>()); }
public void SetUp() { Xamarin.Forms.Mocks.MockForms.Init(); this._container = new Container(); this._app = new Application(); ZeroApp .On(this._app) .WithContainer(DryIocZeroContainer.Build(this._container)) .RegisterShell(() => new FirstShell()) .Start(); }
public void Test_ViewModels_ShellService_And_MessagingCenter_Are_Registered_On_Startup() { var container = new Container(); var app = new Application(); ZeroApp .On(app) .WithContainer(DryIocZeroContainer.Build(container)) .RegisterShell(() => new FirstShell()) .Start(); var firstViewModel = container.Resolve <FirstViewModel>(); var secondViewModel = container.Resolve <SecondViewModel>(); var shellService = container.Resolve <IShellService>(); var messagingCenter = container.Resolve <IMessagingCenter>(); Assert.NotNull(firstViewModel); Assert.NotNull(secondViewModel); Assert.NotNull(shellService); Assert.NotNull(messagingCenter); }
public async Task Pop_And_ReversePrepare_Model(string stringValue) { var container = new Container(); var app = new Application(); ZeroApp .On(app) .WithContainer(DryIocZeroContainer.Build(container)) .RegisterShell(() => new FirstShell()) .Start(); var firstViewModel = container.Resolve <FirstViewModel>(); var secondViewModel = container.Resolve <SecondViewModel>(); Assert.AreEqual(firstViewModel.CurrentPage.GetType(), typeof(FirstPage)); Assert.IsNull(secondViewModel.CurrentPage); Assert.AreEqual(firstViewModel.CurrentPage.Navigation.NavigationStack.Count, 1); await firstViewModel.Push <SecondPage>(); Assert.AreEqual(firstViewModel.CurrentPage.Navigation.NavigationStack.Count, 2); Assert.AreEqual(firstViewModel.CurrentPage.GetType(), typeof(FirstPage)); Assert.AreEqual(secondViewModel.CurrentPage.GetType(), typeof(SecondPage)); await secondViewModel.Pop(stringValue); Assert.AreEqual(firstViewModel.CurrentPage.Navigation.NavigationStack.Count, 1); Assert.AreEqual(firstViewModel.CurrentPage.GetType(), typeof(FirstPage)); Assert.AreEqual(secondViewModel.CurrentPage.GetType(), typeof(SecondPage)); Assert.NotNull(firstViewModel.FirstStringProperty); Assert.AreEqual(firstViewModel.FirstStringProperty, stringValue); }