public void Init_SpendingNotEditing_PropertiesSetupCorrectly() { //Setup var transactionRepositorySetup = new Mock<ITransactionRepository>(); transactionRepositorySetup.SetupProperty(x => x.Selected); var transactionManager = new TransactionManager(transactionRepositorySetup.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>(); var defaultManager = new DefaultManager(accountRepo, new SettingDataAccess(new Mock<IRoamingSettings>().Object)); var viewmodel = new ModifyTransactionViewModel(transactionRepositorySetup.Object, accountRepo, new Mock<IDialogService>().Object, transactionManager, defaultManager); //Execute and Assert viewmodel.SelectedTransaction.ShouldBeNull(); viewmodel.Init(false, "Spending"); viewmodel.SelectedTransaction.Type.ShouldBe((int) TransactionType.Spending); viewmodel.SelectedTransaction.IsTransfer.ShouldBeFalse(); viewmodel.SelectedTransaction.IsRecurring.ShouldBeFalse(); }
public void GetDefaultAccount_SelectedSettingsData_CorrectFallbackValue() { //Setup var accountRepositorySetup = new Mock<IAccountRepository>(); accountRepositorySetup.SetupGet(x => x.Data).Returns(new ObservableCollection<Account>( new List<Account> { new Account {Id = 1, CurrentBalance = 1230, Name = "Sparkonto"}, new Account {Id = 2, CurrentBalance = 999, Name = "Jugendkonto"}, new Account {Id = 3, CurrentBalance = 65, Name = "The Rest"} })); accountRepositorySetup.SetupGet(x => x.Data).Returns(new ObservableCollection<Account>()); accountRepositorySetup.SetupGet(x => x.Selected).Returns(new Account {Id = 2}); var roamingSettingsSetup = new Mock<IRoamingSettings>(); roamingSettingsSetup.Setup(x => x.AddOrUpdateValue(It.IsAny<string>(), It.IsAny<object>())); roamingSettingsSetup.Setup(x => x.GetValueOrDefault(It.IsAny<string>(), It.IsAny<int>())).Returns(3); //Execute var account = new DefaultManager(accountRepositorySetup.Object, new SettingDataAccess(roamingSettingsSetup.Object)) .GetDefaultAccount(); //Assert account.Id.ShouldBe(2); }
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 ModifyTransactionViewModel(ITransactionRepository transactionRepository, IRepository<Account> accountRepository, IDialogService dialogService, TransactionManager transactionManager, DefaultManager defaultManager) { this.transactionRepository = transactionRepository; this.dialogService = dialogService; this.transactionManager = transactionManager; this.defaultManager = defaultManager; this.accountRepository = accountRepository; }
public void GetDefaultAccount_NoSettingsNoData_CorrectFallbackValue() { //Setup var accountRepositorySetup = new Mock<IAccountRepository>(); accountRepositorySetup.SetupGet(x => x.Data).Returns(new ObservableCollection<Account>()); accountRepositorySetup.SetupGet(x => x.Selected).Returns(new Account {Id = 5}); //Execute var account = new DefaultManager(accountRepositorySetup.Object, new SettingDataAccess(new Mock<IRoamingSettings>().Object) {DefaultAccount = -1}) .GetDefaultAccount(); //Assert account.Id.ShouldBe(5); }
public void GoToAddTransaction_Transactiontype_CorrectPreparation(string typestring, TransactionType type) { Setup(); // for navigation parsing Ioc.RegisterSingleton<IMvxStringToTypeParser>(new MvxStringToTypeParser()); var dbHelper = new Mock<ISqliteConnectionCreator>().Object; var accountRepository = new AccountRepository(new AccountDataAccess(dbHelper)); var transactionRepository = new TransactionRepository(new TransactionDataAccess(dbHelper), new RecurringTransactionDataAccess(dbHelper)); var transactionManager = new TransactionManager(transactionRepository, accountRepository, new Mock<IDialogService>().Object); var defaultManager = new DefaultManager(accountRepository, new SettingDataAccess(new Mock<IRoamingSettings>().Object)); var modifyTransactionViewModel = new ModifyTransactionViewModel(transactionRepository, accountRepository, new Mock<IDialogService>().Object, transactionManager, defaultManager); var modifyAccountViewModel = new ModifyAccountViewModel(accountRepository, new BalanceViewModel(accountRepository, new Mock<ITransactionRepository>().Object)); var mainViewModel = new MainViewModel(modifyAccountViewModel, modifyTransactionViewModel, new BalanceViewModel(accountRepository, transactionRepository)); mainViewModel.GoToAddTransactionCommand.Execute(typestring); Assert.False(modifyTransactionViewModel.IsEdit); Assert.True(modifyTransactionViewModel.IsEndless); if (type == TransactionType.Transfer) { Assert.True(modifyTransactionViewModel.IsTransfer); } else { Assert.False(modifyTransactionViewModel.IsTransfer); } Assert.Equal((int) type, modifyTransactionViewModel.SelectedTransaction.Type); }
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 modifyAccountViewModel = new ModifyAccountViewModel(accountRepository); var mainViewModel = new MainViewModel(modifyAccountViewModel); 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 Title_TransactionTypeDifferentModes_CorrectTitle(TransactionType type, bool isEditMode, string result, string culture) { //Setup CultureInfo.DefaultThreadCurrentCulture = new CultureInfo(culture); Strings.Culture = new CultureInfo(culture); var dbHelper = new Mock<ISqliteConnectionCreator>().Object; var transactionRepository = new TransactionRepository(new TransactionDataAccess(dbHelper), new RecurringTransactionDataAccess(dbHelper)) { Selected = new FinancialTransaction {Type = (int) type} }; var transactionManager = new TransactionManager(transactionRepository, new Mock<IRepository<Account>>().Object, new Mock<IDialogService>().Object); var defaultManager = new DefaultManager(new Mock<IRepository<Account>>().Object, new SettingDataAccess(new Mock<IRoamingSettings>().Object)); var viewModel = new ModifyTransactionViewModel(transactionRepository, new AccountRepository(new AccountDataAccess(dbHelper)), new Mock<IDialogService>().Object, transactionManager, defaultManager) { IsEdit = isEditMode, IsTransfer = true }; //Execute and assert viewModel.Title.ShouldBe(result); // Reset culture to current culture Strings.Culture = CultureInfo.CurrentCulture; CultureInfo.DefaultThreadCurrentCulture = CultureInfo.CurrentCulture; }
public void Init_IncomeEditing_PropertiesSetupCorrectly() { //Setup var testEndDate = new DateTime(2099, 1, 31); var transactionRepositorySetup = new Mock<ITransactionRepository>(); transactionRepositorySetup.SetupGet(x => x.Selected).Returns(new FinancialTransaction { Type = (int) TransactionType.Income, IsRecurring = true, RecurringTransaction = new RecurringTransaction { 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 transactionManager = new TransactionManager(transactionRepositorySetup.Object, accountRepo, new Mock<IDialogService>().Object); var defaultManager = new DefaultManager(accountRepo, new SettingDataAccess(new Mock<IRoamingSettings>().Object)); var viewmodel = new ModifyTransactionViewModel(transactionRepositorySetup.Object, accountRepo, new Mock<IDialogService>().Object, transactionManager, defaultManager); //Execute and Assert viewmodel.SelectedTransaction.ShouldNotBeNull(); viewmodel.Init(true, "Income"); viewmodel.SelectedTransaction.Type.ShouldBe((int) TransactionType.Income); viewmodel.SelectedTransaction.IsTransfer.ShouldBeFalse(); viewmodel.SelectedTransaction.IsRecurring.ShouldBeTrue(); viewmodel.SelectedTransaction.RecurringTransaction.EndDate.ShouldBe(testEndDate); viewmodel.SelectedTransaction.RecurringTransaction.IsEndless.ShouldBeFalse(); }
public void Init_SpendingNotEditing_PropertiesSetupCorrectly() { //Setup var dbHelper = new Mock<ISqliteConnectionCreator>().Object; var transactionRepositorySetup = new Mock<ITransactionRepository>(); transactionRepositorySetup.SetupProperty(x => x.Selected); var transactionManager = new TransactionManager(transactionRepositorySetup.Object, new Mock<IRepository<Account>>().Object, new Mock<IDialogService>().Object); var accountRepoSetup = new Mock<IRepository<Account>>(); accountRepoSetup.SetupGet(x => x.Data).Returns(new ObservableCollection<Account>()); var defaultManager = new DefaultManager(accountRepoSetup.Object, new SettingDataAccess(new Mock<IRoamingSettings>().Object)); var viewmodel = new ModifyTransactionViewModel(transactionRepositorySetup.Object, new AccountRepository(new AccountDataAccess(dbHelper)), new Mock<IDialogService>().Object, transactionManager, defaultManager); //Execute and Assert viewmodel.SelectedTransaction.ShouldBeNull(); viewmodel.Init(false, "Spending"); viewmodel.SelectedTransaction.Type.ShouldBe((int) TransactionType.Spending); viewmodel.SelectedTransaction.IsTransfer.ShouldBeFalse(); viewmodel.SelectedTransaction.IsRecurring.ShouldBeFalse(); }
public void GetDefaultAccount_SelectedAndDataNoSettings_CorrectFallbackValue() { //Setup var accountRepositorySetup = new Mock<IAccountRepository>(); accountRepositorySetup.SetupGet(x => x.Data).Returns(new ObservableCollection<Account>( new List<Account> { new Account {Id = 1, CurrentBalance = 1230, Name = "Sparkonto"}, new Account {Id = 2, CurrentBalance = 999, Name = "Jugendkonto"}, new Account {Id = 3, CurrentBalance = 65, Name = "The Rest"} })); accountRepositorySetup.SetupGet(x => x.Data).Returns(new ObservableCollection<Account>()); accountRepositorySetup.SetupGet(x => x.Selected).Returns(new Account {Id = 2}); //Execute var account = new DefaultManager(accountRepositorySetup.Object, new SettingDataAccess(new Mock<IRoamingSettings>().Object) {DefaultAccount = -1}) .GetDefaultAccount(); //Assert account.Id.ShouldBe(2); }
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 SettingDefaultsViewModel(DefaultManager defaultManager, SettingDataAccess settings) { this.defaultManager = defaultManager; this.settings = settings; }