public async Task Handle_ExistingAccount_UpdatesName() { var account = new Account { UserId = "#user-id" }; _entityTables.AddAccounts(account); await _updateAccountCommandHandler.Handle( new UpdateAccountCommand { Id = account.Id, Name = "#Test-Name-Updated", Hint = account.Hints.Single().Hint, Notes = account.Notes, IsPinned = account.IsPinned }, default ); _entityTables.AssertAccounts(new Account(account) { Name = "#Test-Name-Updated" }); }
public async Task Handle_WhenAccountExistAndIsDeleted_DeletesItFromDatabase() { var account = new Account { UserId = "#user-id", Id = "#account-id", Hints = Array.Empty <AccountHint>(), IsDeleted = true }; _entityTables.AddAccounts(account); await _moveAccountToBinCommandHandler.Handle(new DeleteAccountCommand { Id = "#account-id" }, default); _entityTables.AssertAccounts(Enumerable.Empty <Account>()); }
public async Task Handle_WhenAccountExist_MarksItAsDeleted() { var account = new Account { UserId = "#user-id", Id = "#account-id" }; _entityTables.AddAccounts(account); await _moveAccountToBinCommandHandler.Handle(new MoveAccountToBinCommand { Id = "#account-id" }, default); _entityTables.AssertAccounts(new Account(account) { IsDeleted = true }); }
public async Task Handle_WhenAccountHintHasDateSet_UpdatesTheHintDate() { var now = DateTime.UtcNow; var account = new Account { UserId = "#user-id", Id = "#account-id", Hints = new[] { new AccountHint { Id = "#hint-id", DateAdded = DateTime.UtcNow.AddDays(-1) } } }; _entityTables.AddAccounts(account); await _updateAccountHintCommandHandler.Handle( new UpdateAccountHintCommand { AccountId = "#account-id", HintId = "#hint-id", DateAdded = now }, default ); _entityTables.AssertAccounts(new Account(account) { Hints = new[] { new AccountHint(account.Hints.Single()) { DateAdded = now } } }); }
public async Task Handle_NewAccount_InsertsAccountEntity() { var accountId = await _createAccountCommandHandler.Handle( new AddAccountCommand { Name = "#Test-Name", Hint = "#Test-Hint", Notes = "#Test-Notes", IsPinned = true }, default ); Assert.Equal(3, _entityTables.Accounts.ExecuteQuery(new TableQuery <AccountEntity>()).Count()); var accountHintEntity = Assert.Single(_entityTables.Accounts.ExecuteQuery( new TableQuery <AccountHintEntity>() .Where(TableQuery.GenerateFilterCondition(nameof(AccountHintEntity.AccountId), QueryComparisons.Equal, accountId)) )); _entityTables.AssertAccounts(new Account { UserId = "#user-id", Id = accountId, Name = "#Test-Name", Hints = new[] { new AccountHint { Id = accountHintEntity.HintId, Hint = "#Test-Hint", DateAdded = accountHintEntity.DateAdded.Value } }, Notes = "#Test-Notes", IsPinned = true }); }
public async Task Handle_WhenProvingNewHintToAccountWithoutHints_UpdatesHintOnAccount() { var now = DateTime.UtcNow; var account = new Account { UserId = "#user-id", Id = "#account-id", Hints = Array.Empty <AccountHint>() }; _entityTables.AddAccounts(account); await _addAccountHintCommandHandler.Handle( new AddAccountHintCommand { AccountId = "#account-id", Hint = "#hint", DateAdded = now }, default ); var accountHint = Assert.Single(_entityTables.Accounts.ExecuteQuery(new TableQuery <AccountHintEntity>().Where(TableQuery.GenerateFilterCondition(nameof(HintKeepTableEntity.EntityType), QueryComparisons.Equal, "AccountHintEntity")))); _entityTables.AssertAccounts(new Account(account) { Hints = new[] { new AccountHint { Id = accountHint.HintId, Hint = "#hint", DateAdded = now } } }); }
public async Task Handle_WhenReferredHintIsNotLatest_DeletesItWithoutUpdatingAccount() { var now = DateTime.UtcNow; var account = new Account { UserId = "#user-id", Id = "#account-id", Hints = new[] { new AccountHint { Id = "#hint-id-1", Hint = "#Test-Hint-1", DateAdded = now }, new AccountHint { Id = "#hint-id-2", Hint = "#Test-Hint-2", DateAdded = now.AddDays(-1) } } }; _entityTables.AddAccounts(account); await _deleteAccountHintCommandHandler.Handle(new DeleteAccountHintCommand { AccountId = "#account-id", HintId = "#hint-id-2" }, default); _entityTables.AssertAccounts(new Account(account) { Hints = new[] { account.Hints.First() } }); }
public async Task Handle_ExistingDeletedAccount_UpdatesIsDeletedFlag() { var account = new Account { UserId = "#user-id", IsDeleted = true }; _entityTables.AddAccounts(account); await _updateAccountCommandHandler.Handle( new UpdateDeletedAccountCommand { Id = account.Id, IsDeleted = false }, default ); _entityTables.AssertAccounts(new Account(account) { IsDeleted = false }); }
public static IEntityTables AssertAccounts(this IEntityTables entityTables, params Account[] accounts) => entityTables.AssertAccounts((IEnumerable <Account>)accounts);