public void Init_IncomeNotEditing_PropertiesSetupCorrectly() { var accountRepoMock = new Mock <IAccountRepository>(); accountRepoMock.Setup(x => x.Load(It.IsAny <Expression <Func <Account, bool> > >())); accountRepoMock.Setup(x => x.GetList(null)).Returns(new List <Account>()); var paymentManager = new PaymentManager(new Mock <IPaymentRepository>().Object, accountRepoMock.Object, new Mock <IRecurringPaymentRepository>().Object, new Mock <IDialogService>().Object); var settingsManagerMock = new Mock <ISettingsManager>(); settingsManagerMock.SetupAllProperties(); Mvx.RegisterType(() => settingsManagerMock.Object); var viewmodel = new ModifyPaymentViewModel(new Mock <IPaymentRepository>().Object, accountRepoMock.Object, new Mock <IDialogService>().Object, paymentManager, settingsManagerMock.Object); viewmodel.Init(PaymentType.Income); //Execute and Assert viewmodel.SelectedPayment.ShouldNotBeNull(); viewmodel.SelectedPayment.Type.ShouldBe((int)PaymentType.Income); viewmodel.SelectedPayment.IsTransfer.ShouldBeFalse(); viewmodel.SelectedPayment.IsRecurring.ShouldBeFalse(); }
public void Init_TransferNotEditing_PropertiesSetupCorrectly() { // Arrange var accountServiceMock = new Mock <IAccountService>(); accountServiceMock.Setup(x => x.GetAllAccounts()) .ReturnsAsync(new List <Account> { new Account { Data = { Id = 3 } } }); var settingsManagerMock = new Mock <ISettingsManager>(); settingsManagerMock.SetupAllProperties(); var viewmodel = new ModifyPaymentViewModel(new Mock <IPaymentService>().Object, accountServiceMock.Object, new Mock <IDialogService>().Object, settingsManagerMock.Object, new Mock <IMvxMessenger>().Object, new Mock <IBackupManager>().Object); // Act / Assert viewmodel.Init(PaymentType.Transfer); viewmodel.SelectedPayment.Type.ShouldBe(PaymentType.Transfer); viewmodel.SelectedPayment.IsTransfer.ShouldBeTrue(); viewmodel.SelectedPayment.IsRecurring.ShouldBeFalse(); }
public void Init_TransferNotEditing_PropertiesSetupCorrectly() { var accountRepoMock = new Mock <IAccountRepository>(); accountRepoMock.Setup(x => x.GetList(null)) .Returns(new List <AccountViewModel> { new AccountViewModel { Id = 3 } }); var paymentManager = new PaymentManager(new Mock <IPaymentRepository>().Object, accountRepoMock.Object, new Mock <IRecurringPaymentRepository>().Object, new Mock <IDialogService>().Object); var settingsManagerMock = new Mock <ISettingsManager>(); settingsManagerMock.SetupAllProperties(); var viewmodel = new ModifyPaymentViewModel(new Mock <IPaymentRepository>().Object, accountRepoMock.Object, new Mock <IDialogService>().Object, paymentManager, settingsManagerMock.Object, new Mock <IMvxMessenger>().Object, new Mock <IBackupManager>().Object); //Execute and Assert viewmodel.Init(PaymentType.Transfer); viewmodel.SelectedPayment.Type.ShouldBe(PaymentType.Transfer); viewmodel.SelectedPayment.IsTransfer.ShouldBeTrue(); viewmodel.SelectedPayment.IsRecurring.ShouldBeFalse(); }
public void Cancel_SelectedPaymentReseted() { double amount = 99; var basePayment = new Payment { Id = 5, Amount = amount }; var payment = new Payment { Id = 5, Amount = amount }; var paymentRepositorySetup = new Mock <IPaymentRepository>(); paymentRepositorySetup.Setup(x => x.FindById(It.IsAny <int>())).Returns(basePayment); var viewmodel = new ModifyPaymentViewModel(paymentRepositorySetup.Object, new Mock <IAccountRepository>().Object, new Mock <IDialogService>().Object, new Mock <IPaymentManager>().Object) { SelectedPayment = payment }; viewmodel.SelectedPayment.Amount = 7777; viewmodel.CancelCommand.Execute(); viewmodel.SelectedPayment.Amount.ShouldBe(amount); }
public void AmountString_CorrectConvertedAmount(string amount, double convertedAmount, string culture) { Thread.CurrentThread.CurrentCulture = new CultureInfo(culture, false); // Setup var paymentRepoSetup = new Mock <IPaymentRepository>(); var accountRepoMock = new Mock <IAccountRepository>(); var settingsManagerMock = new Mock <ISettingsManager>(); settingsManagerMock.SetupAllProperties(); var paymentManagerMock = new Mock <IPaymentManager>(); var testPayment = new Fixture().Create <PaymentViewModel>(); testPayment.Amount = 0; var viewmodel = new ModifyPaymentViewModel(paymentRepoSetup.Object, accountRepoMock.Object, new Mock <IDialogService>().Object, paymentManagerMock.Object, settingsManagerMock.Object, new Mock <IMvxMessenger>().Object, new Mock <IBackupManager>().Object) { SelectedPayment = testPayment, }; // Execute viewmodel.AmountString = amount; // Assert viewmodel.AmountString.ShouldBe(convertedAmount.ToString("N", CultureInfo.CurrentCulture)); }
public void Save_CorrectlyCalled() { // Arrange base.Setup(); bool saveCalled = false; var paymentServiceMock = new Mock <IPaymentService>(); paymentServiceMock.Setup(x => x.SavePayments(It.IsAny <Payment>())) .Callback(() => saveCalled = true) .Returns(Task.CompletedTask); var payment = new PaymentViewModel { ChargedAccount = new AccountViewModel(new Account()) { Name = "Konto" } }; var viewmodel = new ModifyPaymentViewModel(paymentServiceMock.Object, new Mock <IAccountService>().Object, new Mock <IDialogService>().Object, new Mock <ISettingsManager>().Object, new Mock <IMvxMessenger>().Object, new Mock <IBackupManager>().Object, new Mock <IMvxLogProvider>().Object, new Mock <IMvxNavigationService>().Object); // Act viewmodel.SelectedPayment = payment; viewmodel.SaveCommand.Execute(); //Assert Assert.True(saveCalled); }
public void Init_TransferNotEditing_PropertiesSetupCorrectly() { var accountRepoMock = new Mock <IAccountRepository>(); accountRepoMock.Setup(x => x.Load(It.IsAny <Expression <Func <Account, bool> > >())); accountRepoMock.Setup(x => x.GetList(null)) .Returns(new List <Account> { new Account { Id = 3 } }); var paymentManager = new PaymentManager(new Mock <IPaymentRepository>().Object, accountRepoMock.Object, new Mock <IRecurringPaymentRepository>().Object, new Mock <IDialogService>().Object); var viewmodel = new ModifyPaymentViewModel(new Mock <IPaymentRepository>().Object, accountRepoMock.Object, new Mock <IDialogService>().Object, paymentManager); //Execute and Assert viewmodel.Init(PaymentType.Transfer); viewmodel.SelectedPayment.Type.ShouldBe((int)PaymentType.Transfer); viewmodel.SelectedPayment.IsTransfer.ShouldBeTrue(); viewmodel.SelectedPayment.IsRecurring.ShouldBeFalse(); }
public void AmountString_CorrectConvertedAmount(string amount, double convertedAmount, string culture) { // Arrange Thread.CurrentThread.CurrentCulture = new CultureInfo(culture, false); var settingsManagerMock = new Mock <ISettingsManager>(); settingsManagerMock.SetupAllProperties(); var testPayment = new PaymentViewModel(new Payment()); var viewmodel = new ModifyPaymentViewModel(new Mock <IPaymentService>().Object, new Mock <IAccountService>().Object, new Mock <IDialogService>().Object, settingsManagerMock.Object, new Mock <IMvxMessenger>().Object, new Mock <IBackupManager>().Object, new Mock <IMvxLogProvider>().Object, new Mock <IMvxNavigationService>().Object) { SelectedPayment = testPayment }; // Act viewmodel.AmountString = amount; // Assert viewmodel.AmountString.ShouldEqual(convertedAmount.ToString("N", CultureInfo.CurrentCulture)); }
public void Save_NoAccount_AccountRequiredInfoShown() { // Arrange base.Setup(); bool dialogShown = false; var dialogServiceMock = new Mock <IDialogService>(); dialogServiceMock.Setup(x => x.ShowMessage(It.Is <string>(s => s == Strings.MandatoryFieldEmptyTitle), It.Is <string>(s => s == Strings.AccountRequiredMessage))) .Callback(() => dialogShown = true) .Returns(Task.CompletedTask); var viewmodel = new ModifyPaymentViewModel(new Mock <IPaymentService>().Object, new Mock <IAccountService>().Object, dialogServiceMock.Object, new Mock <ISettingsManager>().Object, new Mock <IMvxMessenger>().Object, new Mock <IBackupManager>().Object, new Mock <IMvxLogProvider>().Object, new Mock <IMvxNavigationService>().Object); // Act viewmodel.SelectedPayment = new PaymentViewModel(); viewmodel.SaveCommand.Execute(); //Assert Assert.True(dialogShown); }
public async void Init_IncomeNotEditing_PropertiesSetupCorrectly(PaymentType type) { // Arrange var accountServiceMock = new Mock <IAccountService>(); accountServiceMock.Setup(x => x.GetAllAccounts()).ReturnsAsync(new List <Account>()); var settingsManagerMock = new Mock <ISettingsManager>(); settingsManagerMock.SetupAllProperties(); var viewmodel = new ModifyPaymentViewModel(new Mock <IPaymentService>().Object, accountServiceMock.Object, new Mock <IDialogService>().Object, settingsManagerMock.Object, new Mock <IMvxMessenger>().Object, new Mock <IBackupManager>().Object, new Mock <IMvxLogProvider>().Object, new Mock <IMvxNavigationService>().Object); viewmodel.Prepare(new ModifyPaymentParameter(type)); await viewmodel.Initialize(); // Act / Assert viewmodel.SelectedPayment.ShouldNotBeNull(); viewmodel.SelectedPayment.Type.ShouldEqual(type); viewmodel.SelectedPayment.IsTransfer.ShouldBeFalse(); viewmodel.SelectedPayment.IsRecurring.ShouldBeFalse(); }
public void SaveCommand_RecurrenceStringBiweekly_RecurrenceSetCorrectly() { //setup var testPayment = new Payment(); var paymentRepoSetup = new Mock <IPaymentRepository>(); var accountRepoMock = new Mock <IAccountRepository>(); accountRepoMock.Setup(x => x.Load(It.IsAny <Expression <Func <Account, bool> > >())); var paymentManagerMock = new Mock <IPaymentManager>(); paymentManagerMock.Setup(x => x.SavePayment(It.IsAny <Payment>())).Callback((Payment payment) => testPayment = payment); var viewmodel = new ModifyPaymentViewModel(paymentRepoSetup.Object, accountRepoMock.Object, new Mock <IDialogService>().Object, paymentManagerMock.Object); viewmodel.Init(PaymentType.Income); viewmodel.SelectedPayment.ChargedAccount = new Account(); viewmodel.SelectedPayment.IsRecurring = true; viewmodel.RecurrenceString = Strings.BiweeklyLabel; // execute viewmodel.SaveCommand.Execute(); //Assert testPayment.RecurringPayment.ShouldNotBeNull(); testPayment.RecurringPayment.Recurrence.ShouldBe((int)PaymentRecurrence.Biweekly); }
public void SaveCommand_Recurrence_RecurrenceSetCorrectly(PaymentRecurrence recurrence) { // Arrange var testPayment = new Payment(); var settingsManagerMock = new Mock <ISettingsManager>(); settingsManagerMock.SetupAllProperties(); var paymentServiceMock = new Mock <IPaymentService>(); paymentServiceMock.Setup(x => x.SavePayment(It.IsAny <Payment>())) .Callback((Payment payment) => testPayment = payment) .Returns(Task.CompletedTask); var viewmodel = new ModifyPaymentViewModel(paymentServiceMock.Object, new Mock <IAccountService>().Object, new Mock <IDialogService>().Object, settingsManagerMock.Object, new Mock <IMvxMessenger>().Object, new Mock <IBackupManager>().Object); viewmodel.Init(PaymentType.Income); viewmodel.SelectedPayment.ChargedAccount = new AccountViewModel(new Account()); viewmodel.SelectedPayment.IsRecurring = true; viewmodel.Recurrence = recurrence; // Act viewmodel.SaveCommand.Execute(); // Assert testPayment.Data.RecurringPayment.ShouldNotBeNull(); testPayment.Data.RecurringPayment.Recurrence.ShouldBe(recurrence); }
public void Save_UpdateTimeStamp() { // Arrange var account = new AccountEntity { Id = 3, Name = "3" }; var selectedPayment = new Payment { Data = { ChargedAccount = account } }; var localDateSetting = DateTime.MinValue; var settingsManagerMock = new Mock <ISettingsManager>(); settingsManagerMock.SetupSet(x => x.LastDatabaseUpdate = It.IsAny <DateTime>()) .Callback((DateTime x) => localDateSetting = x); var paymentServiceMock = new Mock <IPaymentService>(); paymentServiceMock.Setup(x => x.GetById(It.IsAny <int>())).ReturnsAsync(selectedPayment); paymentServiceMock.Setup(x => x.SavePayment(selectedPayment)).Returns(Task.CompletedTask); var accountServiceMock = new Mock <IAccountService>(); accountServiceMock.Setup(x => x.GetAllAccounts()) .ReturnsAsync(new List <Account> { new Account { Data = { Id = 3, Name = "3" } } }); var dialogService = new Mock <IDialogService>().Object; var viewmodel = new ModifyPaymentViewModel(paymentServiceMock.Object, accountServiceMock.Object, dialogService, settingsManagerMock.Object, new Mock <IMvxMessenger>().Object, new Mock <IBackupManager>().Object, new Mock <IMvxNavigationService>().Object) { SelectedPayment = new PaymentViewModel(selectedPayment) { ChargedAccount = new AccountViewModel(new Account(account)) } }; // Act viewmodel.SaveCommand.Execute(); // Assert localDateSetting.ShouldBeGreaterThan(DateTime.Now.AddSeconds(-1)); localDateSetting.ShouldBeLessThan(DateTime.Now.AddSeconds(1)); }
public void Save_UpdateTimeStamp() { var selectedPayment = new PaymentViewModel { ChargedAccountId = 3, ChargedAccount = new AccountViewModel { Id = 3, Name = "3" } }; var localDateSetting = DateTime.MinValue; var settingsManagerMock = new Mock <ISettingsManager>(); settingsManagerMock.SetupSet(x => x.LastDatabaseUpdate = It.IsAny <DateTime>()) .Callback((DateTime x) => localDateSetting = x); var paymentRepoSetup = new Mock <IPaymentRepository>(); paymentRepoSetup.Setup(x => x.GetList(null)).Returns(new List <PaymentViewModel>()); paymentRepoSetup.Setup(x => x.FindById(It.IsAny <int>())).Returns(selectedPayment); paymentRepoSetup.Setup(x => x.Save(selectedPayment)).Returns(true); var accountRepoMock = new Mock <IAccountRepository>(); accountRepoMock.Setup(x => x.GetList(null)) .Returns(new List <AccountViewModel> { new AccountViewModel { Id = 3, Name = "3" } }); var dialogService = new Mock <IDialogService>().Object; var paymentManagerSetup = new Mock <IPaymentManager>(); paymentManagerSetup.Setup(x => x.SavePayment(It.IsAny <PaymentViewModel>())).Returns(true); paymentManagerSetup.Setup(x => x.AddPaymentAmount(It.IsAny <PaymentViewModel>())).Returns(true); var viewmodel = new ModifyPaymentViewModel(paymentRepoSetup.Object, accountRepoMock.Object, dialogService, paymentManagerSetup.Object, settingsManagerMock.Object, new Mock <IMvxMessenger>().Object, new Mock <IBackupManager>().Object) { SelectedPayment = selectedPayment }; viewmodel.SaveCommand.Execute(); localDateSetting.ShouldBeGreaterThan(DateTime.Now.AddSeconds(-1)); localDateSetting.ShouldBeLessThan(DateTime.Now.AddSeconds(1)); }
public void Init_IncomeEditing_PropertiesSetupCorrectly() { Mvx.RegisterSingleton(() => new Mock <IMvxMessenger>().Object); var testEndDate = new DateTime(2099, 1, 31); var paymentRepoSetup = new Mock <IPaymentRepository>(); paymentRepoSetup.SetupGet(x => x.Selected).Returns(new Payment { Type = (int)PaymentType.Income, IsRecurring = true, RecurringPayment = new RecurringPayment { EndDate = testEndDate } }); var accountRepoMock = new Mock <IAccountRepository>(); accountRepoMock.Setup(x => x.Load(It.IsAny <Expression <Func <Account, bool> > >())); accountRepoMock.SetupAllProperties(); var accountRepo = accountRepoMock.Object; accountRepo.Data = new ObservableCollection <Account>(); var paymentManager = new PaymentManager(paymentRepoSetup.Object, accountRepo, new Mock <IDialogService>().Object); var defaultManager = new DefaultManager(accountRepo, new SettingDataAccess(new Mock <IRoamingSettings>().Object)); var viewmodel = new ModifyPaymentViewModel(paymentRepoSetup.Object, accountRepo, new Mock <IDialogService>().Object, paymentManager, defaultManager); //Execute and Assert viewmodel.SelectedPayment.ShouldNotBeNull(); viewmodel.Init("Income", true); viewmodel.SelectedPayment.Type.ShouldBe((int)PaymentType.Income); viewmodel.SelectedPayment.IsTransfer.ShouldBeFalse(); viewmodel.SelectedPayment.IsRecurring.ShouldBeTrue(); viewmodel.SelectedPayment.RecurringPayment.EndDate.ShouldBe(testEndDate); viewmodel.SelectedPayment.RecurringPayment.IsEndless.ShouldBeFalse(); }
public async void Init_IncomeEditing_PropertiesSetupCorrectly(PaymentType type) { // Arrange var testEndDate = new DateTime(2099, 1, 31); var paymentServiceMock = new Mock <IPaymentService>(); paymentServiceMock.Setup(x => x.GetById(It.IsAny <int>())).ReturnsAsync(new Payment { Data = { Type = type, IsRecurring = true, RecurringPayment = new RecurringPaymentEntity { EndDate = testEndDate } } }); var accountServiceMock = new Mock <IAccountService>(); accountServiceMock.Setup(x => x.GetAllAccounts()).ReturnsAsync(new List <Account>()); var settingsManagerMock = new Mock <ISettingsManager>(); settingsManagerMock.SetupAllProperties(); var viewmodel = new ModifyPaymentViewModel(paymentServiceMock.Object, accountServiceMock.Object, new Mock <IDialogService>().Object, settingsManagerMock.Object, new Mock <IMvxMessenger>().Object, new Mock <IBackupManager>().Object, new Mock <IMvxLogProvider>().Object, new Mock <IMvxNavigationService>().Object); // Act viewmodel.Prepare(new ModifyPaymentParameter(type, 12)); await viewmodel.Initialize(); // Assert viewmodel.SelectedPayment.ShouldNotBeNull(); viewmodel.SelectedPayment.Type.ShouldEqual(type); viewmodel.SelectedPayment.IsTransfer.ShouldBeFalse(); viewmodel.SelectedPayment.IsRecurring.ShouldBeTrue(); viewmodel.SelectedPayment.RecurringPayment.EndDate.ShouldEqual(testEndDate); viewmodel.SelectedPayment.RecurringPayment.IsEndless.ShouldBeFalse(); }
public void Init_IncomeEditing_PropertiesSetupCorrectly() { var testEndDate = new DateTime(2099, 1, 31); var paymentRepoSetup = new Mock <IPaymentRepository>(); paymentRepoSetup.Setup(x => x.FindById(It.IsAny <int>())).Returns(new Payment { Type = (int)PaymentType.Income, IsRecurring = true, RecurringPayment = new RecurringPayment { EndDate = testEndDate } }); var accountRepoMock = new Mock <IAccountRepository>(); accountRepoMock.Setup(x => x.Load(It.IsAny <Expression <Func <Account, bool> > >())); accountRepoMock.Setup(x => x.GetList(null)).Returns(new List <Account>()); var paymentManager = new PaymentManager(paymentRepoSetup.Object, accountRepoMock.Object, new Mock <IRecurringPaymentRepository>().Object, new Mock <IDialogService>().Object); var settingsManagerMock = new Mock <ISettingsManager>(); settingsManagerMock.SetupAllProperties(); Mvx.RegisterType(() => settingsManagerMock.Object); var viewmodel = new ModifyPaymentViewModel(paymentRepoSetup.Object, accountRepoMock.Object, new Mock <IDialogService>().Object, paymentManager, settingsManagerMock.Object); viewmodel.Init(PaymentType.Income, 12); //Execute and Assert viewmodel.SelectedPayment.ShouldNotBeNull(); viewmodel.SelectedPayment.Type.ShouldBe((int)PaymentType.Income); viewmodel.SelectedPayment.IsTransfer.ShouldBeFalse(); viewmodel.SelectedPayment.IsRecurring.ShouldBeTrue(); viewmodel.SelectedPayment.RecurringPayment.EndDate.ShouldBe(testEndDate); viewmodel.SelectedPayment.RecurringPayment.IsEndless.ShouldBeFalse(); }
public void Save_UpdateTimeStamp() { var selectedPayment = new Payment { ChargedAccountId = 3, ChargedAccount = new Account { Id = 3, Name = "3" } }; var paymentRepoSetup = new Mock <IPaymentRepository>(); paymentRepoSetup.Setup(x => x.GetList(null)).Returns(new List <Payment>()); paymentRepoSetup.Setup(x => x.FindById(It.IsAny <int>())).Returns(selectedPayment); paymentRepoSetup.Setup(x => x.Save(selectedPayment)).Returns(true); var accountRepoMock = new Mock <IAccountRepository>(); accountRepoMock.Setup(x => x.Load(It.IsAny <Expression <Func <Account, bool> > >())); accountRepoMock.Setup(x => x.GetList(null)) .Returns(new List <Account> { new Account { Id = 3, Name = "3" } }); var dialogService = new Mock <IDialogService>().Object; var paymentManagerSetup = new Mock <IPaymentManager>(); paymentManagerSetup.Setup(x => x.SavePayment(It.IsAny <Payment>())).Returns(true); paymentManagerSetup.Setup(x => x.AddPaymentAmount(It.IsAny <Payment>())).Returns(true); var viewmodel = new ModifyPaymentViewModel(paymentRepoSetup.Object, accountRepoMock.Object, dialogService, paymentManagerSetup.Object) { SelectedPayment = selectedPayment }; viewmodel.SaveCommand.Execute(); localDateSetting.ShouldBeGreaterThan(DateTime.Now.AddSeconds(-1)); localDateSetting.ShouldBeLessThan(DateTime.Now.AddSeconds(1)); }
public void Save_UpdateTimeStamp() { Mvx.RegisterSingleton(() => new Mock <IMvxMessenger>().Object); var paymentRepoSetup = new Mock <IPaymentRepository>(); paymentRepoSetup.SetupGet(x => x.Selected).Returns(new Payment { ChargedAccountId = 3, ChargedAccount = new Account { Id = 3, Name = "3" }, }); paymentRepoSetup.Setup(x => x.Save(paymentRepoSetup.Object.Selected)).Returns(true); var paymentManager = new PaymentManager(paymentRepoSetup.Object, new Mock <IAccountRepository>().Object, new Mock <IDialogService>().Object); var accountRepoMock = new Mock <IAccountRepository>(); accountRepoMock.Setup(x => x.Load(It.IsAny <Expression <Func <Account, bool> > >())); accountRepoMock.SetupAllProperties(); accountRepoMock.Setup(x => x.AddPaymentAmount(paymentRepoSetup.Object.Selected)).Returns(true); var accountRepo = accountRepoMock.Object; accountRepo.Data = new ObservableCollection <Account> { new Account { Id = 3, Name = "3" } }; var defaultManager = new DefaultManager(accountRepo); var viewmodel = new ModifyPaymentViewModel(paymentRepoSetup.Object, accountRepo, new Mock <IDialogService>().Object, paymentManager, defaultManager); viewmodel.SaveCommand.Execute(); localDateSetting.ShouldBeGreaterThan(DateTime.Now.AddSeconds(-1)); localDateSetting.ShouldBeLessThan(DateTime.Now.AddSeconds(1)); }
public void SelectedItemChangedCommand_UpdatesCorrectely() { var settingsManagerMock = new Mock <ISettingsManager>(); settingsManagerMock.SetupAllProperties(); Mvx.RegisterType(() => settingsManagerMock.Object); var accountRepoMock = new Mock <IAccountRepository>(); accountRepoMock.Setup(x => x.Load(It.IsAny <Expression <Func <Account, bool> > >())); accountRepoMock.Setup(x => x.GetList(null)).Returns(new List <Account>()); var paymentManager = new PaymentManager(new Mock <IPaymentRepository>().Object, accountRepoMock.Object, new Mock <IRecurringPaymentRepository>().Object, new Mock <IDialogService>().Object); var viewmodel = new ModifyPaymentViewModel(new Mock <IPaymentRepository>().Object, accountRepoMock.Object, new Mock <IDialogService>().Object, paymentManager, settingsManagerMock.Object); viewmodel.Init(PaymentType.Income); Account test1 = new Account(); //target account Account test2 = new Account(); //charge account viewmodel.TargetAccounts.Add(test1); viewmodel.ChargedAccounts.Add(test1); viewmodel.TargetAccounts.Add(test2); viewmodel.ChargedAccounts.Add(test2); viewmodel.SelectedPayment.TargetAccount = test1; viewmodel.SelectedPayment.ChargedAccount = test2; viewmodel.SelectedItemChangedCommand.Execute(); viewmodel.ChargedAccounts.Contains(viewmodel.SelectedPayment.ChargedAccount).ShouldBeTrue(); viewmodel.TargetAccounts.Contains(viewmodel.SelectedPayment.TargetAccount).ShouldBeTrue(); viewmodel.ChargedAccounts.Contains(viewmodel.SelectedPayment.TargetAccount).ShouldBeFalse(); viewmodel.TargetAccounts.Contains(viewmodel.SelectedPayment.ChargedAccount).ShouldBeFalse(); }
public void Init_SpendingNotEditing_PropertiesSetupCorrectly() { Mvx.RegisterSingleton(() => new Mock <IMvxMessenger>().Object); var paymentRepoSetup = new Mock <IPaymentRepository>(); paymentRepoSetup.SetupGet(x => x.Selected).Returns(new Payment { ChargedAccountId = 3 }); var paymentManager = new PaymentManager(paymentRepoSetup.Object, new Mock <IAccountRepository>().Object, new Mock <IDialogService>().Object); var accountRepoMock = new Mock <IAccountRepository>(); accountRepoMock.Setup(x => x.Load(It.IsAny <Expression <Func <Account, bool> > >())); accountRepoMock.SetupAllProperties(); var accountRepo = accountRepoMock.Object; accountRepo.Data = new ObservableCollection <Account> { new Account { Id = 3 } }; var defaultManager = new DefaultManager(accountRepo, new SettingDataAccess(new Mock <IRoamingSettings>().Object)); var viewmodel = new ModifyPaymentViewModel(paymentRepoSetup.Object, accountRepo, new Mock <IDialogService>().Object, paymentManager, defaultManager); //Execute and Assert viewmodel.Init("Income", true); viewmodel.SelectedPayment.Type.ShouldBe((int)PaymentType.Expense); viewmodel.SelectedPayment.IsTransfer.ShouldBeFalse(); viewmodel.SelectedPayment.IsRecurring.ShouldBeFalse(); }
public void SelectedItemChangedCommand_UpdatesCorrectely() { var settingsManagerMock = new Mock <ISettingsManager>(); settingsManagerMock.SetupAllProperties(); var accountRepoMock = new Mock <IAccountRepository>(); accountRepoMock.Setup(x => x.GetList(null)).Returns(new List <AccountViewModel>()); var paymentManager = new PaymentManager(new Mock <IPaymentRepository>().Object, accountRepoMock.Object, new Mock <IRecurringPaymentRepository>().Object, new Mock <IDialogService>().Object); var viewmodel = new ModifyPaymentViewModel(new Mock <IPaymentRepository>().Object, accountRepoMock.Object, new Mock <IDialogService>().Object, paymentManager, settingsManagerMock.Object, new Mock <IMvxMessenger>().Object, new Mock <IBackupManager>().Object); viewmodel.Init(PaymentType.Income); AccountViewModel test1 = new AccountViewModel(); //target AccountViewModel AccountViewModel test2 = new AccountViewModel(); //charge AccountViewModel viewmodel.TargetAccounts.Add(test1); viewmodel.ChargedAccounts.Add(test1); viewmodel.TargetAccounts.Add(test2); viewmodel.ChargedAccounts.Add(test2); viewmodel.SelectedPayment.TargetAccount = test1; viewmodel.SelectedPayment.ChargedAccount = test2; viewmodel.SelectedItemChangedCommand.Execute(); viewmodel.ChargedAccounts.Contains(viewmodel.SelectedPayment.ChargedAccount).ShouldBeTrue(); viewmodel.TargetAccounts.Contains(viewmodel.SelectedPayment.TargetAccount).ShouldBeTrue(); viewmodel.ChargedAccounts.Contains(viewmodel.SelectedPayment.TargetAccount).ShouldBeFalse(); viewmodel.TargetAccounts.Contains(viewmodel.SelectedPayment.ChargedAccount).ShouldBeFalse(); }
public void GoToAddPayment_PaymentType_CorrectPreparation(string typestring, PaymentType type) { Setup(); // for navigation parsing Ioc.RegisterSingleton <IMvxStringToTypeParser>(new MvxStringToTypeParser()); var dbHelper = new Mock <ISqliteConnectionCreator>().Object; var accountRepository = new AccountRepository(new AccountDataAccess(dbHelper)); var paymentRepository = new PaymentRepository(new PaymentDataAccess(dbHelper), new RecurringPaymentDataAccess(dbHelper), accountRepository, new CategoryRepository(new CategoryDataAccess(dbHelper))); var paymentManager = new PaymentManager(paymentRepository, accountRepository, new Mock <IDialogService>().Object); var defaultManager = new DefaultManager(accountRepository, new SettingDataAccess(new Mock <IRoamingSettings>().Object)); var modifyPaymentViewModel = new ModifyPaymentViewModel(paymentRepository, accountRepository, new Mock <IDialogService>().Object, paymentManager, defaultManager); var mainViewModel = new MainViewModel(); mainViewModel.GoToAddPaymentCommand.Execute(typestring); Assert.False(modifyPaymentViewModel.IsEdit); Assert.True(modifyPaymentViewModel.IsEndless); if (type == PaymentType.Transfer) { Assert.True(modifyPaymentViewModel.IsTransfer); } else { Assert.False(modifyPaymentViewModel.IsTransfer); } Assert.Equal((int)type, modifyPaymentViewModel.SelectedPayment.Type); }
public void Save_OldDate_InvalidDateInfoShown() { // Arrange base.Setup(); bool dialogShown = false; var dialogServiceMock = new Mock <IDialogService>(); dialogServiceMock.Setup(x => x.ShowMessage(It.Is <string>(s => s == Strings.InvalidEnddateTitle), It.Is <string>(s => s == Strings.InvalidEnddateMessage))) .Callback(() => dialogShown = true) .Returns(Task.CompletedTask); var payment = new PaymentViewModel { ChargedAccount = new AccountViewModel(new Account()) { Name = "Konto" }, IsRecurring = true, Date = DateTime.Now.AddDays(-2) }; var viewmodel = new ModifyPaymentViewModel(new Mock <IPaymentService>().Object, new Mock <IAccountService>().Object, dialogServiceMock.Object, new Mock <ISettingsManager>().Object, new Mock <IMvxMessenger>().Object, new Mock <IBackupManager>().Object, new Mock <IMvxLogProvider>().Object, new Mock <IMvxNavigationService>().Object); // Act viewmodel.SelectedPayment = payment; viewmodel.SaveCommand.Execute(); //Assert Assert.True(dialogShown); }
public async void SaveCommand_Recurrence_RecurrenceSetCorrectly(PaymentRecurrence recurrence) { // Arrange base.Setup(); var testPayment = new Payment(); var settingsManagerMock = new Mock <ISettingsManager>(); settingsManagerMock.SetupAllProperties(); var paymentServiceMock = new Mock <IPaymentService>(); paymentServiceMock.Setup(x => x.SavePayments(It.IsAny <Payment[]>())) .Callback((Payment[] payment) => testPayment = payment.First()) .Returns(Task.CompletedTask); var viewmodel = new ModifyPaymentViewModel(paymentServiceMock.Object, new Mock <IAccountService>().Object, new Mock <IDialogService>().Object, settingsManagerMock.Object, new Mock <IMvxMessenger>().Object, new Mock <IBackupManager>().Object, new Mock <IMvxLogProvider>().Object, new Mock <IMvxNavigationService>().Object); viewmodel.Prepare(new ModifyPaymentParameter(PaymentType.Income)); await viewmodel.Initialize(); viewmodel.SelectedPayment.ChargedAccount = new AccountViewModel(new Account()); viewmodel.SelectedPayment.IsRecurring = true; viewmodel.Recurrence = recurrence; // Act viewmodel.SaveCommand.Execute(); // Assert testPayment.Data.RecurringPayment.ShouldNotBeNull(); testPayment.Data.RecurringPayment.Recurrence.ShouldEqual(recurrence); }
public void SaveCommand_Recurrence_RecurrenceSetCorrectly(PaymentRecurrence recurrence) { //setup var testPayment = new PaymentViewModel(); var paymentRepoSetup = new Mock <IPaymentRepository>(); var accountRepoMock = new Mock <IAccountRepository>(); var settingsManagerMock = new Mock <ISettingsManager>(); settingsManagerMock.SetupAllProperties(); var paymentManagerMock = new Mock <IPaymentManager>(); paymentManagerMock.Setup(x => x.SavePayment(It.IsAny <PaymentViewModel>())).Callback((PaymentViewModel payment) => testPayment = payment); var viewmodel = new ModifyPaymentViewModel(paymentRepoSetup.Object, accountRepoMock.Object, new Mock <IDialogService>().Object, paymentManagerMock.Object, settingsManagerMock.Object, new Mock <IMvxMessenger>().Object, new Mock <IBackupManager>().Object); viewmodel.Init(PaymentType.Income); viewmodel.SelectedPayment.ChargedAccount = new AccountViewModel(); viewmodel.SelectedPayment.IsRecurring = true; viewmodel.Recurrence = recurrence; // execute viewmodel.SaveCommand.Execute(); //Assert testPayment.RecurringPayment.ShouldNotBeNull(); testPayment.RecurringPayment.Recurrence.ShouldBe(recurrence); }