コード例 #1
0
        public void AmountString(string amount, double convertedAmount, string culture)
        {
            // Arrange
            Thread.CurrentThread.CurrentCulture = new CultureInfo(culture, false);
            var fixture = new Fixture();

            fixture.Behaviors.Add(new OmitOnRecursionBehavior());
            var account = fixture.Create <AccountViewModel>();

            var accountRepositorySetup = new Mock <IAccountService>();

            accountRepositorySetup.Setup(x => x.SaveAccount(account.Account));
            accountRepositorySetup.Setup(c => c.GetNotExcludedAccounts()).ReturnsAsync(new List <Account>());
            accountRepositorySetup.Setup(c => c.GetExcludedAccounts()).ReturnsAsync(new List <Account>());

            var viewmodel = new ModifyAccountViewModel(new Mock <IAccountService>().Object,
                                                       new Mock <ISettingsManager>().Object,
                                                       new Mock <IBackupManager>().Object,
                                                       new Mock <IDialogService>().Object,
                                                       new Mock <IMvxLogProvider>().Object,
                                                       new Mock <IMvxNavigationService>().Object)
            {
                SelectedAccount = account
            };

            // Act
            viewmodel.AmountString = amount;

            // Assert
            viewmodel.AmountString.ShouldEqual(convertedAmount.ToString("N", CultureInfo.CurrentCulture));
        }
コード例 #2
0
        public void Cancel_SelectedAccountReseted()
        {
            string name        = "Account";
            var    baseAccount = new Account {
                Id = 5, Name = name
            };
            var account = new Account {
                Id = 5, Name = name
            };

            var accountRepositorySetup = new Mock <IAccountRepository>();

            accountRepositorySetup.Setup(x => x.FindById(It.IsAny <int>())).Returns(baseAccount);

            var viewmodel = new ModifyAccountViewModel(accountRepositorySetup.Object, new Mock <IDialogService>().Object)
            {
                IsEdit          = true,
                SelectedAccount = account
            };

            viewmodel.SelectedAccount.Name = "foooo";
            viewmodel.CancelCommand.Execute();

            viewmodel.SelectedAccount.Name.ShouldBe(name);
        }
コード例 #3
0
        public void SaveCommand_SavesAccount()
        {
            // Arrange
            var accountList = new List <Account>();

            var accountServiceMock = new Mock <IAccountService>();

            accountServiceMock.Setup(c => c.GetExcludedAccounts()).ReturnsAsync(new List <Account>());
            accountServiceMock.Setup(c => c.GetNotExcludedAccounts())
            .ReturnsAsync(new List <Account>());
            accountServiceMock.Setup(c => c.SaveAccount(It.IsAny <Account>()))
            .Callback((Account acc) => { accountList.Add(acc); })
            .Returns(Task.CompletedTask);

            var account = new AccountViewModel(new Account())
            {
                Name = "Test AccountViewModel"
            };

            var viewmodel = new ModifyAccountViewModel(accountServiceMock.Object,
                                                       new Mock <ISettingsManager>().Object,
                                                       new Mock <IBackupManager>().Object,
                                                       new Mock <IDialogService>().Object)
            {
                IsEdit          = false,
                SelectedAccount = account
            };

            // Act
            viewmodel.SaveCommand.Execute();

            // Assert
            Assert.Equal(1, accountList.Count);
        }
コード例 #4
0
        public void SaveCommand_SavesAccount()
        {
            // Arrange
            var accountList = new List <AccountViewModel>();

            var accountRepositorySetup = new Mock <IAccountRepository>();

            accountRepositorySetup.Setup(c => c.GetList(It.IsAny <Expression <Func <AccountViewModel, bool> > >()))
            .Returns(accountList);
            accountRepositorySetup.Setup(c => c.Save(It.IsAny <AccountViewModel>()))
            .Callback((AccountViewModel acc) => { accountList.Add(acc); });

            var settingsManagerMock = new Mock <ISettingsManager>();

            var account = new AccountViewModel
            {
                Id   = 1,
                Name = "Test AccountViewModel"
            };

            var viewmodel = new ModifyAccountViewModel(accountRepositorySetup.Object,
                                                       new Mock <IDialogService>().Object,
                                                       settingsManagerMock.Object,
                                                       new Mock <IBackupManager>().Object)
            {
                IsEdit          = false,
                SelectedAccount = account
            };

            // Act
            viewmodel.SaveCommand.Execute();

            // Assert
            Assert.Equal(1, accountList.Count);
        }
コード例 #5
0
        public ActionResult EditEmployeeAccount(string id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var account = _context.Users.FirstOrDefault(c => c.Id == id);

            if (account == null)
            {
                return(NotFound());
            }
            ModifyAccountViewModel mvm = new ModifyAccountViewModel();

            mvm.Email       = account.Email;
            mvm.FirstName   = account.FirstName;
            mvm.LastName    = account.LastName;
            mvm.Address     = account.Address;
            mvm.City        = account.City;
            mvm.State       = account.State;
            mvm.Zip         = account.Zip;
            mvm.PhoneNumber = account.PhoneNumber;
            mvm.CreditCard1 = account.CreditCard1;
            mvm.CreditCard2 = account.CreditCard2;
            mvm.CreditCard3 = account.CreditCard3;
            return(View(mvm));
        }
コード例 #6
0
        public void Save_UpdateTimeStamp()
        {
            // Arrange
            var account = new AccountViewModel {
                Id = 0, Name = "AccountViewModel"
            };

            var accountRepositorySetup = new Mock <IAccountRepository>();

            accountRepositorySetup.Setup(x => x.Save(account)).Returns(true);
            accountRepositorySetup.Setup(x => x.GetList(null)).Returns(() => new List <AccountViewModel>());

            var localDateSetting    = DateTime.MinValue;
            var settingsManagerMock = new Mock <ISettingsManager>();

            settingsManagerMock.SetupSet(x => x.LastDatabaseUpdate = It.IsAny <DateTime>())
            .Callback((DateTime x) => localDateSetting             = x);

            var viewmodel = new ModifyAccountViewModel(accountRepositorySetup.Object,
                                                       new Mock <IDialogService>().Object,
                                                       settingsManagerMock.Object,
                                                       new Mock <IBackupManager>().Object)
            {
                IsEdit          = false,
                SelectedAccount = account
            };

            // Act
            viewmodel.SaveCommand.Execute();

            // Assert
            localDateSetting.ShouldBeGreaterThan(DateTime.Now.AddSeconds(-1));
            localDateSetting.ShouldBeLessThan(DateTime.Now.AddSeconds(1));
        }
コード例 #7
0
        public void AmountString(string amount, double convertedAmount, string culture)
        {
            // Arrange
            Thread.CurrentThread.CurrentCulture = new CultureInfo(culture, false);
            var account = new Fixture().Create <AccountViewModel>();

            var accountRepositorySetup = new Mock <IAccountRepository>();

            accountRepositorySetup.Setup(x => x.Save(account)).Returns(true);
            accountRepositorySetup.Setup(x => x.GetList(null)).Returns(() => new List <AccountViewModel>());

            var viewmodel = new ModifyAccountViewModel(accountRepositorySetup.Object,
                                                       new Mock <IDialogService>().Object,
                                                       new Mock <ISettingsManager>().Object,
                                                       new Mock <IBackupManager>().Object)
            {
                SelectedAccount = account
            };

            // Act
            viewmodel.AmountString = amount;

            // Assert
            viewmodel.AmountString.ShouldBe(convertedAmount.ToString("N", CultureInfo.CurrentCulture));
        }
コード例 #8
0
        public void SaveCommand_Does_Not_Allow_Duplicate_Names2()
        {
            var accountRepo = new Mock <IAccountRepository>();

            accountRepo.SetupAllProperties();
            accountRepo.Setup(c => c.Save(It.IsAny <Account>()))
            .Callback((Account acc) => { accountRepo.Object.Data.Add(acc); });
            accountRepo.Object.Data = new ObservableCollection <Account>();
            var account = new Account {
                Id   = 1,
                Name = "Test Account"
            };
            var newAccount = new Account {
                Name = "TESt Account"
            };

            accountRepo.Object.Data.Add(account);

            var viewmodel = new ModifyAccountViewModel(accountRepo.Object, new Mock <IDialogService>().Object)
            {
                IsEdit          = false,
                SelectedAccount = newAccount
            };

            viewmodel.SaveCommand.Execute();
            Assert.AreEqual(1, accountRepo.Object.Data.Count);
        }
コード例 #9
0
        public void SaveCommand_Does_Not_Allow_Duplicate_Names()
        {
            var accountList = new List <Account>();

            var accountRepositorySetup = new Mock <IAccountRepository>();

            accountRepositorySetup.Setup(c => c.GetList(It.IsAny <Expression <Func <Account, bool> > >()))
            .Returns(accountList);
            accountRepositorySetup.Setup(c => c.Save(It.IsAny <Account>()))
            .Callback((Account acc) => { accountList.Add(acc); });

            var account = new Account
            {
                Id   = 1,
                Name = "Test Account"
            };
            var newAccount = new Account
            {
                Name = "Test Account"
            };

            accountList.Add(account);

            var viewmodel = new ModifyAccountViewModel(accountRepositorySetup.Object, new Mock <IDialogService>().Object)
            {
                IsEdit          = false,
                SelectedAccount = newAccount
            };

            viewmodel.SaveCommand.Execute();
            Assert.AreEqual(1, accountList.Count());
        }
コード例 #10
0
        public void Save_UpdateTimeStamp()
        {
            var account = new Account {
                Id = 0, Name = "account"
            };

            var accountRepositorySetup = new Mock <IAccountRepository>();

            accountRepositorySetup.SetupAllProperties();
            accountRepositorySetup.Setup(x => x.AddPaymentAmount(new Payment())).Returns(true);
            accountRepositorySetup.Setup(x => x.Save(account)).Returns(true);
            accountRepositorySetup.Setup(x => x.Data).Returns(() => new ObservableCollection <Account>());
            var accountRepo = accountRepositorySetup.Object;

            var viewmodel = new ModifyAccountViewModel(accountRepo, new Mock <IDialogService>().Object)
            {
                IsEdit          = false,
                SelectedAccount = account
            };

            viewmodel.SaveCommand.Execute();

            localDateSetting.ShouldBeGreaterThan(DateTime.Now.AddSeconds(-1));
            localDateSetting.ShouldBeLessThan(DateTime.Now.AddSeconds(1));
        }
コード例 #11
0
        public void Title_AddAccount_CorrectTitle()
        {
            var viewmodel = new ModifyAccountViewModel(new Mock <IAccountRepository>().Object, new Mock <IDialogService>().Object)
            {
                IsEdit = false
            };

            viewmodel.Title.ShouldBe(Strings.AddAccountTitle);
        }
コード例 #12
0
        public void Title_AddAccount_CorrectTitle()
        {
            var viewmodel = new ModifyAccountViewModel(new Mock<IAccountRepository>().Object,
                new Mock<IDialogService>().Object,
                new Mock<ISettingsManager>().Object,
                new Mock<IBackupManager>().Object)
            { IsEdit = false};

            viewmodel.Title.ShouldBe(Strings.AddAccountTitle);
        }
コード例 #13
0
        public async Task <IActionResult> OnGetAsync(string userId)
        {
            var userEntity    = _userManager.Users.FirstOrDefault(u => u.Id == userId); //User account object
            var userViewModel = Mapper.Map <ModifyAccountViewModel>(userEntity);        //userViewModel mapped
            var userRoles     = await _userManager.GetRolesAsync(userEntity);           //user's assigned Roles

            var allRoles = _roleManager.Roles.Select(r => r.Name);                      //all available roles

            userViewModel.AddRoles(allRoles, userRoles);                                //Adding user Roles to viewmodel.
            CurrentUserSettings = userViewModel;                                        //Applying viewmodel class variable CurrentSettings.
            return(Page());
        }
コード例 #14
0
        public MainViewModel()
        {
            lobbyViewModel_         = new LobbyViewModel();
            loginViewModel_         = new LoginViewModel();
            createAccountModel_     = new CreateAccountViewModel();
            modifyAccountViewModel_ = new ModifyAccountViewModel();

            CallbackMediator.Subscribe("ToLobby", ToLobby);
            CallbackMediator.Subscribe("ToLogin", ToLogin);
            CallbackMediator.Subscribe("ToCreateAccount", ToCreateAccount);
            CallbackMediator.Subscribe("ToModifyAccount", ToModifyAccount);

            CurrentViewModel = loginViewModel_;
        }
コード例 #15
0
        public void Title_AddAccount_CorrectTitle()
        {
            // Arrange
            var viewmodel = new ModifyAccountViewModel(new Mock <IAccountRepository>().Object,
                                                       new Mock <IDialogService>().Object,
                                                       new Mock <ISettingsManager>().Object,
                                                       new Mock <IBackupManager>().Object)
            {
                IsEdit = false
            };

            // Act / Assert
            viewmodel.Title.ShouldBe(Strings.AddAccountTitle);
        }
コード例 #16
0
        public void Title_EditAccount_CorrectTitle()
        {
            var accountname = "Sparkonto";

            var viewmodel = new ModifyAccountViewModel(new Mock <IAccountRepository>().Object, new Mock <IDialogService>().Object)
            {
                IsEdit          = true,
                SelectedAccount = new Account {
                    Id = 3, Name = accountname
                }
            };

            viewmodel.Title.ShouldBe(string.Format(Strings.EditAccountTitle, accountname));
        }
コード例 #17
0
        public void Title_AddAccount_CorrectTitle()
        {
            // Arrange
            var viewmodel = new ModifyAccountViewModel(new Mock <IAccountService>().Object,
                                                       new Mock <ISettingsManager>().Object,
                                                       new Mock <IBackupManager>().Object,
                                                       new Mock <IDialogService>().Object,
                                                       new Mock <IMvxLogProvider>().Object,
                                                       new Mock <IMvxNavigationService>().Object)
            {
                IsEdit = false
            };

            // Act / Assert
            viewmodel.Title.ShouldEqual(Strings.AddAccountTitle);
        }
コード例 #18
0
        public void Title_AddAccount_CorrectTitle()
        {
            var accountname = "Sparkonto";

            var accountRepositorySetup = new Mock <IAccountRepository>();

            accountRepositorySetup.SetupGet(x => x.Selected).Returns(new Account {
                Id = 2, Name = accountname
            });

            var viewmodel = new ModifyAccountViewModel(accountRepositorySetup.Object)
            {
                IsEdit = false
            };

            viewmodel.Title.ShouldBe(Strings.AddAccountTitle);
        }
コード例 #19
0
        public void Title_EditAccount_CorrectTitle()
        {
            var accountname = "Sparkonto";

            var settingsManagerMock = new Mock<ISettingsManager>();

            var viewmodel = new ModifyAccountViewModel(new Mock<IAccountRepository>().Object, 
                new Mock<IDialogService>().Object, 
                settingsManagerMock.Object,
                new Mock<IBackupManager>().Object)
            {
                IsEdit = true,
                SelectedAccount = new AccountViewModel {Id = 3, Name = accountname}
            };

            viewmodel.Title.ShouldBe(string.Format(Strings.EditAccountTitle, accountname));
        }
コード例 #20
0
        public void SaveCommand_DoesNotAllowDuplicateNames(string name1, string name2)
        {
            // Arrange
            var accountList = new List <Account>();

            var accountRepositorySetup = new Mock <IAccountService>();

            accountRepositorySetup.Setup(c => c.GetExcludedAccounts()).ReturnsAsync(new List <Account>());
            accountRepositorySetup.Setup(c => c.GetNotExcludedAccounts())
            .ReturnsAsync(accountList);
            accountRepositorySetup.Setup(c => c.SaveAccount(It.IsAny <Account>()))
            .Callback((Account acc) => { accountList.Add(acc); });

            var account = new Account
            {
                Data =
                {
                    Id   = 1,
                    Name = name1
                }
            };
            var accountViewModel = new AccountViewModel(account)
            {
                Name = name2
            };

            accountList.Add(account);

            var viewmodel = new ModifyAccountViewModel(new Mock <IAccountService>().Object,
                                                       new Mock <ISettingsManager>().Object,
                                                       new Mock <IBackupManager>().Object,
                                                       new Mock <IDialogService>().Object,
                                                       new Mock <IMvxLogProvider>().Object,
                                                       new Mock <IMvxNavigationService>().Object)
            {
                IsEdit          = false,
                SelectedAccount = accountViewModel
            };

            // Act
            viewmodel.SaveCommand.Execute();

            // Assert
            Assert.Single(accountList);
        }
コード例 #21
0
        public IActionResult EditEmployeeAccount(ModifyAccountViewModel account)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    AppUser dbAccount = _context.Users
                                        .FirstOrDefault(c => c.Id == account.Id);

                    dbAccount.FirstName   = account.FirstName;
                    dbAccount.LastName    = account.LastName;
                    dbAccount.Email       = account.Email;
                    dbAccount.UserName    = account.Email;
                    dbAccount.Address     = account.Address;
                    dbAccount.City        = account.City;
                    dbAccount.State       = account.State;
                    dbAccount.Zip         = account.Zip;
                    dbAccount.PhoneNumber = account.PhoneNumber;
                    dbAccount.CreditCard1 = account.CreditCard1;
                    dbAccount.CreditCard2 = account.CreditCard2;
                    dbAccount.CreditCard3 = account.CreditCard3;

                    _context.Update(dbAccount);
                    _context.SaveChanges();

                    //edit department/course relationships
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!AccountExists(account.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }

                return(RedirectToAction(nameof(Index)));
            }
            return(View(account));
        }
コード例 #22
0
        public void Title_EditAccount_CorrectTitle()
        {
            // Arrange
            var accountname = "Sparkonto";

            var viewmodel = new ModifyAccountViewModel(new Mock <IAccountService>().Object,
                                                       new Mock <ISettingsManager>().Object,
                                                       new Mock <IBackupManager>().Object,
                                                       new Mock <IDialogService>().Object)
            {
                IsEdit          = true,
                SelectedAccount = new AccountViewModel(new Account())
                {
                    Id = 3, Name = accountname
                }
            };

            // Act / Assert
            viewmodel.Title.ShouldBe(string.Format(Strings.EditAccountTitle, accountname));
        }
コード例 #23
0
        public void Save_UpdateTimeStamp()
        {
            var account = new Account {
                Id = 0, Name = "account"
            };

            var accountRepositorySetup = new Mock <IAccountRepository>();

            accountRepositorySetup.Setup(x => x.Save(account)).Returns(true);
            accountRepositorySetup.Setup(x => x.GetList(null)).Returns(() => new List <Account>());

            var viewmodel = new ModifyAccountViewModel(accountRepositorySetup.Object, new Mock <IDialogService>().Object)
            {
                IsEdit          = false,
                SelectedAccount = account
            };

            viewmodel.SaveCommand.Execute();

            localDateSetting.ShouldBeGreaterThan(DateTime.Now.AddSeconds(-1));
            localDateSetting.ShouldBeLessThan(DateTime.Now.AddSeconds(1));
        }
コード例 #24
0
        public void Save_UpdateTimeStamp()
        {
            // Arrange
            var account = new AccountViewModel(new Account {
                Data = { Id = 0, Name = "AccountViewModel" }
            });

            var accountRepositorySetup = new Mock <IAccountService>();

            accountRepositorySetup.Setup(x => x.SaveAccount(account.Account));
            accountRepositorySetup.Setup(c => c.GetNotExcludedAccounts()).ReturnsAsync(new List <Account>());
            accountRepositorySetup.Setup(c => c.GetExcludedAccounts()).ReturnsAsync(new List <Account>());

            var localDateSetting    = DateTime.MinValue;
            var settingsManagerMock = new Mock <ISettingsManager>();

            settingsManagerMock.SetupSet(x => x.LastDatabaseUpdate = It.IsAny <DateTime>())
            .Callback((DateTime x) => localDateSetting             = x);

            var viewmodel = new ModifyAccountViewModel(new Mock <IAccountService>().Object,
                                                       settingsManagerMock.Object,
                                                       new Mock <IBackupManager>().Object,
                                                       new Mock <IDialogService>().Object,
                                                       new Mock <IMvxLogProvider>().Object,
                                                       new Mock <IMvxNavigationService>().Object)
            {
                IsEdit          = false,
                SelectedAccount = account
            };

            // Act
            viewmodel.SaveCommand.Execute();

            // Assert
            localDateSetting.ShouldBeGreaterThan(DateTime.Now.AddSeconds(-1));
            localDateSetting.ShouldBeLessThan(DateTime.Now.AddSeconds(1));
        }
コード例 #25
0
        public async Task <IActionResult> OnPostAsync([FromForm] ModifyAccountViewModel modifyAccountViewModel)
        {
            var user = _userManager.Users
                       .FirstOrDefault(u => u.Id == modifyAccountViewModel.UserId);     //The user that is to be modified.
            var userRoles = await _userManager.GetRolesAsync(user) as List <string>;    //All that user's roles

            var availableRoles = _roleManager.Roles;                                    //All available roles
            var modifiedRoles  = modifyAccountViewModel.Roles.Keys.ToList();            //modified user roles
            var removeList     = new List <string>();                                   //List of roles to remove
            var addList        = new List <string>();                                   //List of roles to add

            //Set lockout to whatever is set in the model bind (lazy)
            await _userManager
            .SetLockoutEnabledAsync(user, modifyAccountViewModel.LockoutEnabled);

            //deal with empty roles
            if (modifiedRoles.Count == 0 && userRoles.Count == 0)
            {
                return(RedirectToPage(@"AdministerAccounts"));
            }

            //deal with 1 set of empty roles
            if (modifiedRoles.Count == 0)
            {
                removeList = userRoles.ToList();
            }
            else if (userRoles.Count == 0)
            {
                addList = modifiedRoles;
            }
            else
            {
                //Add role to removeList by cross referencing the lists
                foreach (var r in userRoles)
                {
                    if (!modifiedRoles.Contains(r))
                    {
                        removeList.Add(r);
                    }
                }
                //Add roles to the addList by cross referencing hte lists.
                foreach (var r in modifiedRoles)
                {
                    if (!userRoles.Contains(r))
                    {
                        addList.Add(r);
                    }
                }
            }
            if (removeList.Count == 0 && addList.Count == 0)
            {
                return(RedirectToPage(@"AdministerAccounts"));
            }
            //Remove roles, throw new exception if failed.
            var remRes = await _userManager.RemoveFromRolesAsync(user, removeList);

            if (!remRes.Succeeded)
            {
                throw new Exception($"Failed to remove roles");
            }
            //Add roles, throw new exception if failed.
            var addRes = await _userManager.AddToRolesAsync(user, addList);

            if (!addRes.Succeeded)
            {
                throw new Exception($"Failed to add roles");
            }

            return(RedirectToPage(@"AdministerAccounts"));
        }
コード例 #26
0
        public void SaveCommand_Does_Not_Allow_Duplicate_Names2()
        {
            var accountList = new List<AccountViewModel>();

            var settingsManagerMock = new Mock<ISettingsManager>();

            var accountRepositorySetup = new Mock<IAccountRepository>();
            accountRepositorySetup.Setup(c => c.GetList(It.IsAny<Expression<Func<AccountViewModel, bool>>>()))
                .Returns(accountList);
            accountRepositorySetup.Setup(c => c.Save(It.IsAny<AccountViewModel>()))
                .Callback((AccountViewModel acc) => { accountList.Add(acc); });

            var account = new AccountViewModel
            {
                Id = 1,
                Name = "Test AccountViewModel"
            };
            var newAccount = new AccountViewModel
            {
                Name = "TESt AccountViewModel"
            };
            accountList.Add(account);

            var viewmodel = new ModifyAccountViewModel(accountRepositorySetup.Object, 
                new Mock<IDialogService>().Object, 
                settingsManagerMock.Object,
                new Mock<IBackupManager>().Object)
            {
                IsEdit = false,
                SelectedAccount = newAccount
            };

            viewmodel.SaveCommand.Execute();
            Assert.AreEqual(1, accountList.Count);
        }
コード例 #27
0
        public void Save_UpdateTimeStamp()
        {
            var account = new AccountViewModel {Id = 0, Name = "AccountViewModel"};

            var accountRepositorySetup = new Mock<IAccountRepository>();
            accountRepositorySetup.Setup(x => x.Save(account)).Returns(true);
            accountRepositorySetup.Setup(x => x.GetList(null)).Returns(() => new List<AccountViewModel>());

            var localDateSetting = DateTime.MinValue;
            var settingsManagerMock = new Mock<ISettingsManager>();
            settingsManagerMock.SetupSet(x => x.LastDatabaseUpdate = It.IsAny<DateTime>())
                .Callback((DateTime x) => localDateSetting = x);

            var viewmodel = new ModifyAccountViewModel(accountRepositorySetup.Object,
                new Mock<IDialogService>().Object, 
                settingsManagerMock.Object,
                new Mock<IBackupManager>().Object)
            {
                IsEdit = false,
                SelectedAccount = account
            };

            viewmodel.SaveCommand.Execute();

            localDateSetting.ShouldBeGreaterThan(DateTime.Now.AddSeconds(-1));
            localDateSetting.ShouldBeLessThan(DateTime.Now.AddSeconds(1));
        }