public async Task SaveEntity_SavesEntity()
        {
            var target = new CheckoutDataRepository(SetupAddressService(), SetupPaymentMethodService(), null);

            await target.SaveShippingAddressAsync(new Address()
            {
                Id = "test", FirstName = "TestFirstName", LastName = "TestLastName", AddressType = AddressType.Shipping
            });

            await target.SaveBillingAddressAsync(new Address()
            {
                Id = "test", FirstName = "TestFirstName", LastName = "TestLastName", AddressType = AddressType.Billing
            });

            await target.SavePaymentMethodAsync(new PaymentMethod()
            {
                Id = "test", CardNumber = "12345", CardVerificationCode = "1234", ExpirationMonth = "10", ExpirationYear = "2010", CardholderName = "TestCardholderName"
            });

            var savedShippingAddress = await target.GetShippingAddressAsync("test");

            var savedBillingAddress = await target.GetBillingAddressAsync("test");

            var savedPaymentMethod = await target.GetPaymentMethodAsync("test");

            Assert.IsNotNull(savedShippingAddress);
            Assert.IsNotNull(savedBillingAddress);
            Assert.IsNotNull(savedPaymentMethod);

            var shippingAddress = await target.GetShippingAddressAsync(savedShippingAddress.Id);

            var billingAddress = await target.GetBillingAddressAsync(savedBillingAddress.Id);

            var paymentMethod = await target.GetPaymentMethodAsync(savedPaymentMethod.Id);

            Assert.AreEqual(savedShippingAddress.Id, shippingAddress.Id);
            Assert.AreEqual(savedBillingAddress.Id, billingAddress.Id);
            Assert.AreEqual(savedPaymentMethod.Id, paymentMethod.Id);
        }
        public async Task GetEntity_Returns_Entity()
        {
            var target = new CheckoutDataRepository(SetupAddressService(), SetupPaymentMethodService(), null);

            var shippingAddress = await target.GetShippingAddressAsync("3");

            var bilingAddress = await target.GetBillingAddressAsync("2");

            var paymentMethod = await target.GetPaymentMethodAsync("1");

            Assert.AreEqual(shippingAddress.FirstName, "Anne");
            Assert.AreEqual(bilingAddress.FirstName, "Jane");
            Assert.AreEqual(paymentMethod.CardholderName, "John Doe");
        }