コード例 #1
0
        public void passing_an_object_that_is_not_an_AccountTagViewModel_to_RemoveAccountTag_method_causes_an_exception()
        {
            var account = new Account(1, "HSBC current", AccountType.Asset);
            var vm = new AccountViewModel(account, _mockAccountRepository, _mockAccountTagRepository);

            Assert.Throws<ArgumentException>(() => vm.RemoveAccountTag(account, null));
        }
コード例 #2
0
        public void can_remove_an_AccountTag_from_an_Account_by_calling_RemoveAccountTag_method()
        {
            var tag1 = new AccountTag(1, "Entertainment");
            var tag2 = new AccountTag(2, "Food");
            var tag3 = new AccountTag(3, "Services");
            var account = new Account(1, "HSBC current", AccountType.Asset);
            account.AddTag(tag1);
            account.AddTag(tag2);
            account.AddTag(tag3);

            var vm = new AccountViewModel(account, _mockAccountRepository, _mockAccountTagRepository);
            vm.PropertyChanged += _changeCounter.HandlePropertyChange;

            ObservableCollection<AccountTagViewModel> tagVMs = vm.AccountTags;
            var tagVMToRemove = tagVMs.First(x => x.TagName == "Food");

            Expect.Once.On(_mockAccountRepository).Method("Save").With(account);
            vm.RemoveAccountTag(tagVMToRemove, null);

            var tagIdsInViewModel = tagVMs.Select(x => x.TagId).ToList();

            Assert.AreEqual(2, tagVMs.Count);
            Assert.IsFalse(tagIdsInViewModel.Contains(2));
            Assert.IsTrue(tagIdsInViewModel.Contains(1));
            Assert.IsTrue(tagIdsInViewModel.Contains(3));

            Assert.AreEqual(1, _changeCounter.NoOfPropertiesChanged);
            Assert.AreEqual(1, _changeCounter.TotalChangeCount);
            Assert.AreEqual(1, _changeCounter.ChangeCount("AccountTags"));

            _mocks.VerifyAllExpectationsHaveBeenMet();
        }