public async Task ProcessFormAsync_UsesExistingAddressIfMatchingFound() { var newAddress = new Address { FirstName = "testfirst", StreetAddress = "teststreetaddress" }; var existingAddresses = new List<Address> { new Address { Id = "testId", FirstName = "testfirst", StreetAddress = "teststreetaddress" } }; var checkoutDataRepository = new MockCheckoutDataRepository(); checkoutDataRepository.GetAllBillingAddressesAsyncDelegate = () => Task.FromResult<ICollection<Address>>(new ReadOnlyCollection<Address>(existingAddresses)); var target = new BillingAddressUserControlViewModel(checkoutDataRepository, null, null, null); target.Address = newAddress; await target.ProcessFormAsync(); Assert.AreEqual("testId", target.Address.Id); }
public async Task ProcessFormAsync_SavesAddressIfNoMatchingFound() { var saveAddressCalled = false; var newAddress = new Address { FirstName = "testfirst", StreetAddress = "teststreetaddress" }; var existingAddresses = new List<Address>(); var checkoutDataRepository = new MockCheckoutDataRepository(); checkoutDataRepository.GetAllBillingAddressesAsyncDelegate = () => Task.FromResult<ICollection<Address>>(new Collection<Address>(existingAddresses)); checkoutDataRepository.SaveBillingAddressAsyncDelegate = address => { saveAddressCalled = true; Assert.AreEqual("teststreetaddress", address.StreetAddress); return Task.Delay(0); }; var target = new BillingAddressUserControlViewModel(checkoutDataRepository, null, null, null); target.Address = newAddress; await target.ProcessFormAsync(); Assert.IsTrue(saveAddressCalled); }