public void Delete() { var sut = new MealItemEditingViewModel(); var needToDelete = false; sut.StateProvider = stateProvider; sut.NeedToDelete += delegate { needToDelete = true; }; sut.ChangesProperty("IsVisible", () => sut.Delete.Call()); Assert.IsTrue(needToDelete); Assert.IsFalse(sut.IsVisible); Assert.IsFalse(stateProvider.State.ContainsKey(MealItemEditingViewModel.MEAL_ITEM)); }
public void Confirm() { var sut = new MealItemEditingViewModel(); var confirmed = false; sut.StateProvider = stateProvider; sut.Confirmed += delegate { confirmed = true; }; sut.ChangesProperty("IsVisible", () => sut.Confirm.Call()); Assert.IsTrue(confirmed); Assert.IsFalse(sut.IsVisible); Assert.IsFalse(stateProvider.State.ContainsKey(MealItemEditingViewModel.MEAL_ITEM)); }
public void Initialize(MealItemEditingViewModel viewModel) { Delete = Picker.ApplicationBarInfo.Buttons[2]; ViewModel = viewModel; ViewModel.NeedToShow += delegate { DataContext = ViewModel.Subject; Delete.IsEnabled = ViewModel.CanDelete; Picker.IsPopupOpen = true; controlledClosing = false; }; TranslateApplicationBar(); }
public void Show() { var sut = new MealItemEditingViewModel(); var model = new MealItem { Value = 5 }; var mealItem = new MealItemViewModel(model, Substitute.For<Factories>()); var needToShow = false; stateProvider.State[MealItemEditingViewModel.MEAL_ITEM] = model.Serialize(string.Empty); model.Value = 1; sut.StateProvider = stateProvider; sut.NeedToShow += delegate { needToShow = true; }; sut.ChangesProperty("IsVisible", () => sut.Show(mealItem)); Assert.AreEqual("5", sut.Subject.Value); Assert.IsTrue(needToShow); Assert.IsTrue(sut.IsVisible); }
public MainViewModel(Factories factories, Cloud cloud, TimerFactory timerFactory, BackgroundWorkerFactory workerFactory, MealEditingViewModel.BackNavigation mealEditingBackNavigation, JournalViewModel journal, ProductListingViewModel productListing, MealItemEditingViewModel mealItemEditing, MessageDialog messageDialog, WelcomeScreen welcomeScreen, CloudMessages cloudMessages) { this.factories = factories; this.cloud = cloud; this.timerFactory = timerFactory; this.workerFactory = workerFactory; this.mealEditingBackNavigation = mealEditingBackNavigation; this.journal = journal; this.productListing = productListing; this.mealItemEditing = mealItemEditing; this.messageDialog = messageDialog; this.cloudMessages = cloudMessages; WelcomeScreen = welcomeScreen; ShareStateProvider(); }
public void TestInitialize() { factories = new FactoriesImpl(); factories.StorageCreator = new StorageCreatorStub(); productListing = new ProductListingViewModel(factories, new BackgroundWorkerSyncFactory()); mealItemEditing = new MealItemEditingViewModel(); sut = CreateSut(factories, productListing: productListing, mealItemEditing: mealItemEditing); navigation = new MainViewModel.Navigation(); sut.Init(navigation); var stateProvider = Substitute.For<StateProvider>(); stateProvider.State.Returns(new Dictionary<string, object>()); sut.StateProvider = stateProvider; navigator = Substitute.For<Navigator>(); }
private MainViewModel CreateSut(Factories factories = null, Cloud cloud = null, TimerFactory timerFactory = null, ProductListingViewModel productListing = null, MealItemEditingViewModel mealItemEditing = null, MessageDialog messageDialog = null, WelcomeScreen welcomeScreen = null, CloudMessages cloudMessages = null) { if (factories == null) factories = Substitute.For<Factories>(); if (cloud == null) cloud = Substitute.For<Cloud>(); if (timerFactory == null) timerFactory = Substitute.For<TimerFactory>(); if (productListing == null) productListing = new ProductListingViewModel(factories, new BackgroundWorkerSyncFactory()); if (mealItemEditing == null) mealItemEditing = new MealItemEditingViewModel(); if (messageDialog == null) messageDialog = Substitute.For<MessageDialog>(); if (welcomeScreen == null) welcomeScreen = new WelcomeScreenImpl(messageDialog); if (cloudMessages == null) cloudMessages = new CloudMessages(); var journal = new JournalViewModel(factories, new BackgroundWorkerSyncFactory(), new SugarEditingViewModel()); return new MainViewModel(factories, cloud, timerFactory, new BackgroundWorkerSyncFactory(), new MealEditingViewModel.BackNavigation(), journal, productListing, mealItemEditing, messageDialog, welcomeScreen, cloudMessages); }
private void UntombstoneMealItemEditing() { var state = StateProvider.State; var mealItemEditing = false; if (state.ContainsKey(MEAL_ITEM_EDITING)) { mealItemEditing = (bool)state[MEAL_ITEM_EDITING]; } if (mealItemEditing) { var productId = (Guid)state[MEAL_ITEM_PRODUCT]; var products = productListing.Products; var product = products.FindById(productId); if (product != null) { AddMealItemWithProduct(product); } } }