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); }
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); }