public void can_create_new_AccountTagViewModel() { var tag = new AccountTag(1, "Entertainment"); var vm = new AccountTagViewModel(tag, _mockAccountTagRepository); Assert.AreEqual(tag.Id, vm.TagId); Assert.AreEqual(tag.Name, vm.TagName); }
public void changing_AccountTagName_to_same_name_does_not_cause_update() { var tag = new AccountTag(1, "Holiday"); var vm = new AccountTagViewModel(tag, _mockAccountTagRepository); vm.PropertyChanged += _changeCounter.HandlePropertyChange; vm.TagName = "Holiday"; Assert.AreEqual(0, _changeCounter.NoOfPropertiesChanged); Assert.AreEqual(0, _changeCounter.TotalChangeCount); Assert.AreEqual(0, _changeCounter.ChangeCount("TagName")); _mocks.VerifyAllExpectationsHaveBeenMet(); }
public void attempting_to_change_AccountTagName_to_a_name_that_would_cause_a_duplicate_in_repository_do_not_call_repository() { var tag = new AccountTag(1, "Holiday"); var vm = new AccountTagViewModel(tag, _mockAccountTagRepository); vm.PropertyChanged += (s, args) => _changeCounter.HandlePropertyChange(s, args); Expect.Once.On(_mockAccountTagRepository).Method("CouldSetAccountTagName").Will(Return.Value(false)); vm.TagName = "Duplicate Name"; Assert.AreEqual(1, _changeCounter.NoOfPropertiesChanged); Assert.AreEqual(1, _changeCounter.TotalChangeCount); Assert.AreEqual(1, _changeCounter.ChangeCount("TagName")); _mocks.VerifyAllExpectationsHaveBeenMet(); }
public void changing_AccountTagName_to_valid_name_causes_AccountTag_to_be_updated() { var tag = new AccountTag(1, "Holiday"); var vm = new AccountTagViewModel(tag, _mockAccountTagRepository); vm.PropertyChanged += (s, args) => _changeCounter.HandlePropertyChange(s, args); Expect.Once.On(_mockAccountTagRepository).Method("CouldSetAccountTagName").Will(Return.Value(true)); Expect.Once.On(_mockAccountTagRepository).Method("Save").With(tag); vm.TagName = "Holidays"; Assert.AreEqual(1, _changeCounter.NoOfPropertiesChanged); Assert.AreEqual(1, _changeCounter.TotalChangeCount); Assert.AreEqual(1, _changeCounter.ChangeCount("TagName")); _mocks.VerifyAllExpectationsHaveBeenMet(); }
public AccountViewModel(Account account, IAccountRepository accountRepository, IAccountTagRepository accountTagRepository, IMainWindowViewModel mainWindow = null) { if (account == null) throw new ArgumentNullException("account"); if (accountRepository == null) throw new ArgumentNullException("accountRepository"); if (accountTagRepository == null) throw new ArgumentNullException("accountTagRepository"); _mainWindow = mainWindow; _account = account; _accountName = account.Name; _accountRepository = accountRepository; _accountTagRepository = accountTagRepository; _allTransactions = new Collection<TransactionViewModel>(); _visibleTransactions = new ObservableCollection<TransactionViewModel>(); _accountTags = new ObservableCollection<AccountTagViewModel>(); foreach (var tag in account.Tags) { var tagVM = new AccountTagViewModel(tag, _accountTagRepository); tagVM.RequestDelete += RemoveAccountTag; _accountTags.Add(tagVM); } }
public void SetAccount(Account account) { if (account == null) throw new ArgumentNullException("account"); _account = account; _accountName = account.Name; _accountTags = new ObservableCollection<AccountTagViewModel>(); foreach (var tag in account.Tags) { var tagVM = new AccountTagViewModel(tag, _accountTagRepository); tagVM.RequestDelete += RemoveAccountTag; _accountTags.Add(tagVM); } }
public void TagId_property_returns_tags_id() { var tag = new AccountTag(122, "Misc expenses"); var vm = new AccountTagViewModel(tag, _mockAccountTagRepository); Assert.AreEqual(122, vm.TagId); }