コード例 #1
0
        /// <summary>
        /// Inserts a collection of address records into the database and returns a collection of <see cref="ICustomerAddress"/> objects representation
        /// </summary>
        public IEnumerable <ICustomerAddress> MakeExistingAddressCollection(ICustomer customer, string label, int count)
        {
            var addresses = MockCustomerAddressDataMaker.AddressCollectionForInserting(customer, label, count);

            //AddressService.Save(addresses);
            return(addresses);
        }
コード例 #2
0
        /// <summary>
        /// Inserts an address record in the merchAddress table and returns an <see cref="ICustomerAddress"/> object representation
        /// </summary>
        public ICustomerAddress MakeExistingAddress(ICustomer customer, string label)
        {
            var address = MockCustomerAddressDataMaker.RandomAddress(customer, label);

            //AddressService.Save(address);
            return(address);
        }
コード例 #3
0
        public void Can_Create_A_Customer_With_Addresses()
        {
            //// Arrange
            var customer = MockCustomerDataMaker.CustomerForInserting();

            _customerService.Save(customer);

            //// Act
            var customerAddresses = MockCustomerAddressDataMaker.AddressCollectionForInserting(customer, "addresses", 4).ToArray();

            customerAddresses[0].AddressType = AddressType.Billing;
            customerAddresses[1].AddressType = AddressType.Billing;
            foreach (var address in customerAddresses)
            {
                address.IsDefault = true;
            }
            ((Core.Models.Customer)customer).Addresses = customerAddresses;
            _customerService.Save(customer);

            //// Assert
            Assert.AreEqual(4, customer.Addresses.Count());
            var defaultBilling  = customer.DefaultCustomerAddress(MerchelloContext.Current, AddressType.Billing);
            var defaultShipping = customer.DefaultCustomerAddress(MerchelloContext.Current, AddressType.Shipping);

            Assert.NotNull(defaultBilling);
            Assert.NotNull(defaultShipping);
            Assert.AreEqual(2, customer.Addresses.Count(x => x.AddressType == AddressType.Billing));
            Assert.AreEqual(2, customer.Addresses.Count(x => x.AddressType == AddressType.Shipping));
            Assert.AreEqual(1, customer.Addresses.Count(x => x.AddressType == AddressType.Billing && x.IsDefault));
            Assert.AreEqual(1, customer.Addresses.Count(x => x.AddressType == AddressType.Shipping && x.IsDefault));
        }
コード例 #4
0
        public void Can_Add_New_Address_To_Customer_Add_Save_It_As_Default()
        {
            //// Arrange
            var customer = MockCustomerDataMaker.CustomerForInserting();

            _customerService.Save(customer);

            var customerAddresses = MockCustomerAddressDataMaker.AddressCollectionForInserting(customer, "addresses", 4).ToArray();

            customerAddresses[0].AddressType = AddressType.Billing;
            customerAddresses[1].AddressType = AddressType.Billing;
            foreach (var address in customerAddresses)
            {
                address.IsDefault = true;
            }
            ((Core.Models.Customer)customer).Addresses = customerAddresses;
            _customerService.Save(customer);
            var oldDefaultKey = customer.DefaultCustomerAddress(MerchelloContext.Current, AddressType.Billing).Key;

            //// Act
            var addresses  = customer.Addresses.ToList();
            var newAddress = MockCustomerAddressDataMaker.CustomerAddressForInserting(customer.Key);

            newAddress.AddressType = AddressType.Billing;
            newAddress.IsDefault   = true;
            addresses.Add(newAddress);
            ((Core.Models.Customer)customer).Addresses = addresses;
            _customerService.Save(customer);

            //// Assert
            Assert.AreEqual(5, customer.Addresses.Count());
            var newDefaultKey = customer.DefaultCustomerAddress(MerchelloContext.Current, AddressType.Billing).Key;

            Assert.AreNotEqual(oldDefaultKey, newDefaultKey);
            Assert.AreEqual(3, customer.Addresses.Count(x => x.AddressType == AddressType.Billing));
            Assert.AreEqual(2, customer.Addresses.Count(x => x.AddressType == AddressType.Shipping));
            Assert.AreEqual(1, customer.Addresses.Count(x => x.AddressType == AddressType.Billing && x.IsDefault));
            Assert.AreEqual(1, customer.Addresses.Count(x => x.AddressType == AddressType.Shipping && x.IsDefault));
        }