示例#1
0
        /// <summary>
        /// Inserts a customer record in the merchCustomer table and returns an <see cref="ICustomer"/> object representation
        /// </summary>
        /// <returns></returns>
        public ICustomer MakeExistingCustomer()
        {
            var customer = MockCustomerDataMaker.CustomerForInserting();

            ((CustomerService)CustomerService).Save(customer);
            return(customer);
        }
        /// <summary>
        /// Inserts a customer record in the merchCustomer table and returns an <see cref="ICustomer"/> object representation
        /// </summary>
        /// <returns></returns>
        public ICustomer MakeExistingCustomer(string loginName = "")
        {
            var customer = MockCustomerDataMaker.CustomerForInserting(loginName);

            ((CustomerService)CustomerService).Save(customer);
            return(customer);
        }
        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));
        }
        public void Save_Is_Committed()
        {
            var customer = MockCustomerDataMaker.CustomerForInserting();

            _customerService.Save(customer);

            Assert.IsTrue(CommitCalled);
        }
        /// <summary>
        /// Inserts a collection customer records in the merchCustomer table and returns a collection <see cref="ICustomer"/> object representation
        /// </summary>
        /// <param name="count">The number of customers to create in the collection</param>
        /// <returns></returns>
        public IEnumerable <ICustomer> CollectionExistingCustomers(int count)
        {
            var customers = new List <ICustomer>();

            for (var i = 0; i < count; i++)
            {
                customers.Add(MockCustomerDataMaker.CustomerForInserting());
            }
            ((CustomerService)CustomerService).Save(customers);
            return(customers);
        }
        public void Delete_Is_Committed()
        {
            //// Arrange
            var customer = MockCustomerDataMaker.CustomerForInserting().MockSavedWithKey(Guid.NewGuid());

            //// Act
            _customerService.Delete(customer);

            //// Assert
            Assert.IsTrue(CommitCalled);
        }
        public void Save_Triggers_Events_And_Customer_Is_Passed()
        {
            var customer = MockCustomerDataMaker.CustomerForInserting();

            _customerService.Save(customer);

            Assert.IsTrue(BeforeTriggered);
            Assert.AreEqual(customer.FirstName, Before.FirstName);

            Assert.IsTrue(AfterTriggered);
            Assert.AreEqual(customer.LastName, After.LastName);
        }
        public void Delete_Triggers_Events_And_Customer_Is_Passed()
        {
            //// Arrange
            var customer = MockCustomerDataMaker
                           .CustomerForInserting()
                           .MockSavedWithKey(Guid.NewGuid());

            //// Act
            _customerService.Delete(customer);


            Assert.IsTrue(BeforeTriggered);
            Assert.AreEqual(customer, Before);

            Assert.IsTrue(AfterTriggered);
            Assert.AreEqual(customer, After);
        }
        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));
        }
示例#10
0
        protected override void Initialize()
        {
            _invoiceService = new InvoiceService(new MockUnitOfWorkProvider(), new RepositoryFactory());

            _invoice = _invoiceService.CreateInvoice(_customer, _invoiceStatus, "test111", "name", "address1",
                                                     "address2", "city", "state", "98225", "US", "*****@*****.**", string.Empty, string.Empty);

            Before         = null;
            After          = null;
            _beforeInvoice = null;
            _afterInvoice  = null;
            _statusBefore  = false;
            _statusAfter   = false;

            _customer = MockCustomerDataMaker.CustomerForInserting().MockSavedWithKey(111);

            _invoiceStatus = MockInvoiceStatusDataMaker.InvoiceStatusUnpaidMock();

            _anonymous = MockAnonymousCustomerDataMaker.AnonymousCustomerForInserting().MockSavedWithKey(Guid.NewGuid());

            InvoiceService.Saving += delegate(IInvoiceService sender, SaveEventArgs <IInvoice> args)
            {
                BeforeTriggered = true;
                Before          = args.SavedEntities.FirstOrDefault();
            };

            InvoiceService.Saved += delegate(IInvoiceService sender, SaveEventArgs <IInvoice> args)
            {
                AfterTriggered = true;
                After          = args.SavedEntities.FirstOrDefault();
            };


            InvoiceService.Created += delegate(IInvoiceService sender, Core.Events.NewEventArgs <IInvoice> args)
            {
                AfterTriggered = true;
                After          = args.Entity;
            };

            InvoiceService.Deleting += delegate(IInvoiceService sender, DeleteEventArgs <IInvoice> args)
            {
                BeforeTriggered = true;
                Before          = args.DeletedEntities.FirstOrDefault();
            };

            InvoiceService.Deleted += delegate(IInvoiceService sender, DeleteEventArgs <IInvoice> args)
            {
                AfterTriggered = true;
                After          = args.DeletedEntities.FirstOrDefault();
            };

            InvoiceService.StatusChanging += delegate(IInvoiceService sender, StatusChangeEventArgs <IInvoice> args) {
                _statusBefore  = true;
                _beforeInvoice = args.StatusChangedEntities;
            };

            InvoiceService.StatusChanged += delegate(IInvoiceService sender, StatusChangeEventArgs <IInvoice> args)
            {
                _statusAfter  = true;
                _afterInvoice = args.StatusChangedEntities;
            };

            // General tests
            MockDatabaseUnitOfWork.Committed += delegate {
                CommitCalled = true;
            };
        }