public async Task Update_address() { // arrange var customer = NewCustomer(); // act await DataAccessClient.CreateCustomerAsync(customer); var address = new AddressRecord { Label = "Work", Street = "101 W. Broadway", City = "San Diego", State = "CA" }; await DataAccessClient.AddOrUpdateAddressAsync(customer.Username, address); var result = await Table.GetItemAsync(customer.GetPrimaryKey(), consistentRead : true); // assert result.Username.Should().Be(customer.Username); result.Name.Should().Be(customer.Name); result.EmailAddress.Should().Be(customer.EmailAddress); result.Addresses.Should().NotBeEmpty(); result.Addresses.Should().ContainKey("Work"); result.Addresses["Work"].Should().BeEquivalentTo(address); }
public async Task Create_customer_record() { // arrange var customer = NewCustomer(); // act await DataAccessClient.CreateCustomerAsync(customer); var result = await Table.GetItemAsync(customer.GetPrimaryKey(), consistentRead : true); // assert result.Should().BeEquivalentTo(customer); }
public async Task DeleteItem_with_condition_failed() { // arrange var customer = NewCustomer(); await DataAccessClient.CreateCustomerAsync(customer); // act var result = await Table.DeleteItem(customer.GetPrimaryKey()) .WithCondition(record => record.Name == "Bob") .ExecuteAsync(); // assert result.Should().BeFalse(); }
public async Task PutItem_with_condition_failed() { // arrange var customer = NewCustomer(); await DataAccessClient.CreateCustomerAsync(customer); // act var result = await Table.PutItem(customer.GetPrimaryKey(), customer) .WithCondition(record => DynamoCondition.DoesNotExist(record)) .ExecuteAsync(); // assert result.Should().BeFalse(); }
public async Task UpdateItem_with_condition_failed() { // arrange var customer = NewCustomer(); var(order, items) = NewOrder(customer.Username); await DataAccessClient.CreateCustomerAsync(customer); await DataAccessClient.SaveOrderAsync(order, items); // act var result = await Table.UpdateItem(order.GetPrimaryKey()) .WithCondition(record => record.Status == OrderStatus.Shipped) .Set(record => record.Status, OrderStatus.Delivered) .ExecuteAsync(); // assert result.Should().BeFalse(); }
public async Task BatchGetItemsMixedPartial() { // arrange var customer = NewCustomer(); await DataAccessClient.CreateCustomerAsync(customer); var(order, items) = NewOrder(customer.Username); await DataAccessClient.SaveOrderAsync(order, items); // act var result = await Table.BatchGetItems() .BeginGetItem(customer.GetPrimaryKey()) .Get(record => record.Username) .End() .BeginGetItem(order.GetPrimaryKey()) .Get(record => record.OrderId) .End() .ExecuteAsync(); // assert result.Should().HaveCount(2); // verify fetched customer record var customerRecords = result.OfType <CustomerRecord>().ToList(); customerRecords.Should().HaveCount(1); var fetchedCustomer = customerRecords.First(); fetchedCustomer.Should().NotBeNull(); fetchedCustomer.Username.Should().Be(customer.Username); fetchedCustomer.Name.Should().BeNull(); // verify fetched customer record var orderRecords = result.OfType <OrderRecord>().ToList(); orderRecords.Should().HaveCount(1); var fetchedOrder = orderRecords.First(); fetchedOrder.Should().NotBeNull(); fetchedOrder.OrderId.Should().Be(order.OrderId); fetchedOrder.CustomerUsername.Should().BeNull(); }
public async Task BatchGetItemsMixed() { // arrange var customer = NewCustomer(); await DataAccessClient.CreateCustomerAsync(customer); var(order, items) = NewOrder(customer.Username); await DataAccessClient.SaveOrderAsync(order, items); // act var result = await Table.BatchGetItems() .GetItem(customer.GetPrimaryKey()) .GetItem(order.GetPrimaryKey()) .ExecuteAsync(); // assert result.Should().HaveCount(2); result.Should().ContainEquivalentOf(customer); result.Should().ContainEquivalentOf(order); }
public async Task BatchGetItems() { // arrange var customer1 = NewCustomer(); await DataAccessClient.CreateCustomerAsync(customer1); var customer2 = NewCustomer(); await DataAccessClient.CreateCustomerAsync(customer2); // act var result = await Table.BatchGetItems(new[] { customer1.GetPrimaryKey(), customer2.GetPrimaryKey() }).ExecuteAsync(); // assert result.Should().HaveCount(2); result.Should().ContainEquivalentOf(customer1); result.Should().ContainEquivalentOf(customer2); }
public async Task Add_order() { // arrange var customer = NewCustomer(); var(order, items) = NewOrder(customer.Username); // act await DataAccessClient.CreateCustomerAsync(customer); await DataAccessClient.SaveOrderAsync(order, items); var result = await DataAccessClient.GetCustomerWithMostRecentOrdersAsync(customer.Username, limit : 10); // assert result.Customer.Username.Should().Be(customer.Username); result.Customer.Name.Should().Be(customer.Name); result.Customer.EmailAddress.Should().Be(customer.EmailAddress); result.Orders.Count().Should().Be(1); result.Orders.First().Should().BeEquivalentTo(order); }