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);
        }
Пример #4
0
        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);
        }