public async Task WhenAccountsExists() { const string firstCode = nameof(firstCode); const string secondCode = nameof(secondCode); await GivenAStoreItem() .ForUser(AuthorizedUserId) .WithCode(firstCode) .SavedInDb(_objectStoreDatabaseDriver); await GivenAStoreItem() .ForUser(AuthorizedUserId) .WithCode(secondCode) .SavedInDb(_objectStoreDatabaseDriver); await GivenAStoreItem() .SavedInDb(_objectStoreDatabaseDriver); GivenUserIsAuthorized(); await WhenUserTriesToQuery(ApiResources.GetStoreItems, sorts : "-code"); ThenShouldExpectStatusCode(HttpStatusCode.OK); var result = HttpClientDriver.DeserializeContent <StoreItemViewModel[]>(); ThenAssertAll(() => { result.Should().NotBeNull().And.HaveCount(2); result ![0].Code.Should().Be(secondCode); result[1].Code.Should().Be(firstCode); });
public async Task WhenAccountExistsWithExpenses() { var account = await GivenAnActiveAccount() .OfType(AccountType.Checking) .ForUser(AuthorizedUserId) .SavedInDb(_holefeederDatabaseDriver); var category = await GivenACategory() .OfType(CategoryType.Expense) .ForUser(AuthorizedUserId) .SavedInDb(_holefeederDatabaseDriver); var transaction = await GivenATransaction() .ForAccount(account) .ForCategory(category) .SavedInDb(_holefeederDatabaseDriver); GivenUserIsAuthorized(); await WhenUserGetAccount(account.Id); ThenShouldExpectStatusCode(HttpStatusCode.OK); var result = HttpClientDriver.DeserializeContent <AccountViewModel>(); ThenAssertAll(() => { result.Should() .NotBeNull() .And .BeEquivalentTo(account, options => options.Excluding(x => x.UserId)); result !.TransactionCount.Should().Be(1); result.Balance.Should().Be(account.OpenBalance - transaction.Amount); }); }
public async Task WhenCategoriesExists() { const string firstName = nameof(firstName); const string secondName = nameof(secondName); var firstCategory = await GivenACategory() .WithName(firstName) .ForUser(AuthorizedUserId) .SavedInDb(_holefeederDatabaseDriver); var secondCategory = await GivenACategory() .WithName(secondName) .ForUser(AuthorizedUserId) .SavedInDb(_holefeederDatabaseDriver); GivenUserIsAuthorized(); await WhenUserGetCategories(); ThenShouldExpectStatusCode(HttpStatusCode.OK); var result = HttpClientDriver.DeserializeContent <CategoryViewModel[]>(); ThenAssertAll(() => { result.Should().NotBeNull().And.HaveCount(2); result ![0].Should().BeEquivalentTo(firstCategory, options => options.ExcludingMissingMembers()); result[1].Should().BeEquivalentTo(secondCategory, options => options.ExcludingMissingMembers()); });
public async Task WhenAccountsExistsSortedByNameDesc() { const string firstName = nameof(firstName); const string secondName = nameof(secondName); await GivenAnActiveAccount() .ForUser(AuthorizedUserId) .WithName(firstName) .SavedInDb(_holefeederDatabaseDriver); await GivenAnActiveAccount() .ForUser(AuthorizedUserId) .WithName(secondName) .SavedInDb(_holefeederDatabaseDriver); await GivenAnActiveAccount() .SavedInDb(_holefeederDatabaseDriver); GivenUserIsAuthorized(); await WhenUserTriesToQuery(ApiResources.GetAccounts, sorts : "-name"); ThenShouldExpectStatusCode(HttpStatusCode.OK); var result = HttpClientDriver.DeserializeContent <AccountViewModel[]>(); ThenAssertAll(() => { result.Should().NotBeNull().And.HaveCount(2); result ![0].Name.Should().Be(secondName); result[1].Name.Should().Be(firstName); });
public async Task WhenAnonymousUser() { GivenUserIsUnauthorized(); await WhenUserGetEnumeration(); ThenShouldExpectStatusCode(HttpStatusCode.OK); var result = HttpClientDriver.DeserializeContent <DateIntervalType[]>(); ThenAssertAll(() => { result.Should().NotBeNull().And.HaveCount(DateIntervalType.List.Count); }); }
public async Task WhenStoreItemExists() { var storeItem = await GivenAStoreItem() .ForUser(AuthorizedUserId) .SavedInDb(_objectStoreDatabaseDriver); GivenUserIsAuthorized(); await WhenUserGetStoreItem(storeItem.Id); ThenShouldExpectStatusCode(HttpStatusCode.OK); var result = HttpClientDriver.DeserializeContent <StoreItemViewModel>(); ThenAssertAll(() => { result.Should() .NotBeNull() .And .BeEquivalentTo(storeItem, options => options.Excluding(x => x.UserId)); }); }