Esempio n. 1
0
        public void ShouldBuildIndexViewWithCustomersOrderByName()
        {
            ICustomerAdapter adapter = Substitute.For <ICustomerAdapter>();

            CustomerData[] customers = new CustomerData[]
            {
                new CustomerData()
                {
                    Name = "Gary"
                },
                new CustomerData()
                {
                    Name = "Louis"
                },
                new CustomerData()
                {
                    Name = "Bob"
                }
            };
            adapter.GetCustomers().Returns(customers);

            using (ClassicController controller = new ClassicController(adapter))
            {
                ActionResult result = controller.Index();

                adapter.Received().GetCustomers();

                CustomerData[] model    = ActionResultHelper.AssertViewWithModel <CustomerData[]>(result, controller.Views.Index);
                string[]       names    = model.Select(customer => customer.Name).ToArray();
                string[]       expected = new string[] { "Bob", "Gary", "Louis" };
                CollectionAssert.AreEqual(expected, names, "The customers were not ordered by name.");
            }
        }
Esempio n. 2
0
 public CreateOrderService(ICustomerAdapter customerAdapter, IBasketAdapter basketAdapter,
                           ICreateOrderNotifier notifier)
 {
     _customerAdapter = customerAdapter;
     _basketAdapter   = basketAdapter;
     _notifier        = notifier;
 }
 //private IMemoryCache _cache;
 public RequestListingController(CLToolContext context, IConfiguration config, ICustomerAdapter indusAdapter)
 {
     _context = context;
     _config  = config;
     _indus   = indusAdapter;
     //_cache = memoryCache;
 }
 public KnockoutController(ICustomerAdapter adapter)
 {
     if (adapter == null)
     {
         throw new ArgumentNullException("adapter");
     }
     this.adapter = adapter;
 }
        public static Customer AddCustomer(ICustomerAdapter adapter, CustomerBase customer)
        {
            var newCustomer = (Customer)customer;

            newCustomer.Id = Guid.NewGuid();

            return(adapter.AddCustomer(newCustomer));
        }
 public KnockoutController(ICustomerAdapter adapter)
 {
     if (adapter == null)
     {
         throw new ArgumentNullException("adapter");
     }
     this.adapter = adapter;
 }
Esempio n. 7
0
 public static Action <CreateOrderCommand> CreateOrdeHandler(ICustomerAdapter customerAdapter, IBasketAdapter basketAdapter, ICreateOrderNotifier notifier)
 {
     return(c =>
     {
         var customer = customerAdapter.GetCustomer(c.CustomerId);
         customer.CreateOrder(c.BasketId, c.Cost, basketAdapter, notifier);
     });
 }
        public static IEnumerable <Customer> GetCustomerForRentedBook(ICustomerAdapter customerAdapter, Guid rentedBookId)
        {
            var searchFilter = new SearchFilters
            {
                RentedBookId = rentedBookId
            };

            return(customerAdapter.Search(searchFilter, null).PageData);
        }
Esempio n. 9
0
        public void ShouldDisplayIndex()
        {
            ICustomerAdapter adapter = Substitute.For <ICustomerAdapter>();

            using (KnockoutController controller = new KnockoutController(adapter))
            {
                ActionResult result = controller.Index();

                ActionResultHelper.AssertView(result, controller.Views.Index);
            }
        }
Esempio n. 10
0
        public void ShouldBuildCreateViewWithNoModel()
        {
            ICustomerAdapter adapter = Substitute.For <ICustomerAdapter>();

            using (ClassicController controller = new ClassicController(adapter))
            {
                ActionResult result = controller.Create();

                ActionResultHelper.AssertView(result, controller.Views.Create);
            }
        }
Esempio n. 11
0
        public void ShouldUpdateCustomer()
        {
            ICustomerAdapter adapter = Substitute.For <ICustomerAdapter>();

            using (KnockoutController controller = new KnockoutController(adapter))
            {
                CustomerData data   = new CustomerData();
                ActionResult result = controller.Edit(data);

                ActionResultHelper.AssertHttpStatusCode(result, HttpStatusCode.OK);

                adapter.Received().UpdateCustomer(data);
            }
        }
Esempio n. 12
0
        public void ShouldDeleteCustomer()
        {
            ICustomerAdapter adapter = Substitute.For <ICustomerAdapter>();

            using (KnockoutController controller = new KnockoutController(adapter))
            {
                string       customerId = Guid.NewGuid().ToString("N");
                ActionResult result     = controller.Delete(customerId);

                ActionResultHelper.AssertHttpStatusCode(result, HttpStatusCode.OK);

                adapter.Received().RemoveCustomer(customerId);
            }
        }
Esempio n. 13
0
        public void ShouldCreateCustomerAndReturnToIndex()
        {
            ICustomerAdapter adapter = Substitute.For <ICustomerAdapter>();

            using (ClassicController controller = new ClassicController(adapter))
            {
                CustomerData data   = new CustomerData();
                ActionResult result = controller.Create(data);

                adapter.Received().AddCustomer(data);

                ActionResultHelper.AssertRedirected(result, controller.Name, controller.ActionNames.Index);
            }
        }
Esempio n. 14
0
        public void ShouldRedisplayViewIfCreateValidationFails()
        {
            ICustomerAdapter adapter = Substitute.For <ICustomerAdapter>();

            using (ClassicController controller = new ClassicController(adapter))
            {
                controller.ModelState.AddModelError("txtName", "You must provide a customer name.");

                CustomerData data   = new CustomerData();
                ActionResult result = controller.Create(data);

                CustomerData model = ActionResultHelper.AssertViewWithModel <CustomerData>(result, controller.Views.Create);
                Assert.AreSame(data, model, "The customer data was not set as the model.");
            }
        }
Esempio n. 15
0
        public void ShouldRedisplayViewWhenEditValidationFails()
        {
            ICustomerAdapter adapter = Substitute.For <ICustomerAdapter>();

            using (ClassicController controller = new ClassicController(adapter))
            {
                controller.ModelState.AddModelError("txtName", "You must provide a name for the customer.");

                CustomerData data   = new CustomerData();
                ActionResult result = controller.Edit(data);

                CustomerData model = ActionResultHelper.AssertViewWithModel <CustomerData>(result, controller.Views.Edit);
                Assert.AreSame(data, model, "The model was not passed to the view.");
            }
        }
Esempio n. 16
0
        /// <summary>
        /// Initializes a new instance of the <see cref="CustomerController"/> class
        /// </summary>
        /// <param name="customerAdapter">The Customer Adapter</param>
        /// <param name="emailValidator">The EMail Validator</param>
        public CustomerController(ICustomerAdapter customerAdapter, IEMailValidator emailValidator)
        {
            if (customerAdapter == null)
            {
                throw new ArgumentNullException(nameof(customerAdapter));
            }

            if (emailValidator == null)
            {
                throw new ArgumentNullException(nameof(emailValidator));
            }

            this.customerAdapter = customerAdapter;
            this.emailValidator  = emailValidator;
        }
Esempio n. 17
0
        public void ShouldDeleteCustomerAndRedirectToIndex()
        {
            ICustomerAdapter adapter = Substitute.For <ICustomerAdapter>();

            using (ClassicController controller = new ClassicController(adapter))
            {
                CustomerData data = new CustomerData()
                {
                    CustomerId = Guid.NewGuid().ToString("N")
                };
                ActionResult result = controller.Delete(data);

                adapter.Received().RemoveCustomer(data.CustomerId);

                ActionResultHelper.AssertRedirected(result, controller.Name, controller.ActionNames.Index);
            }
        }
Esempio n. 18
0
        public void ShouldCreateAndReturnCustomer()
        {
            ICustomerAdapter adapter = Substitute.For <ICustomerAdapter>();
            CustomerData     added   = new CustomerData();

            adapter.AddCustomer(Arg.Any <CustomerData>()).Returns(added);
            using (KnockoutController controller = new KnockoutController(adapter))
            {
                CustomerData data   = new CustomerData();
                ActionResult result = controller.Create(data);

                CustomerData model = ActionResultHelper.AssertJsonWithHttpStatusCode <CustomerData>(result, HttpStatusCode.Created);
                Assert.AreSame(added, model, "The added customer was not returned.");

                adapter.Received().AddCustomer(data);
            }
        }
Esempio n. 19
0
        public void ShouldRetrieveCustomerForDelete()
        {
            ICustomerAdapter adapter = Substitute.For <ICustomerAdapter>();
            CustomerData     data    = new CustomerData();

            adapter.GetCustomer(Arg.Any <string>()).Returns(data);

            using (ClassicController controller = new ClassicController(adapter))
            {
                string       customerId = Guid.NewGuid().ToString("N");
                ActionResult result     = controller.Delete(customerId);

                CustomerData model = ActionResultHelper.AssertViewWithModel <CustomerData>(result, controller.Views.Delete);

                adapter.Received().GetCustomer(customerId);

                Assert.AreSame(data, model, "The customer data was not passed to the view.");
            }
        }
Esempio n. 20
0
        public void ShouldLoadCustomers()
        {
            ICustomerAdapter           adapter = Substitute.For <ICustomerAdapter>();
            IEnumerable <CustomerData> data    = new List <CustomerData>()
            {
                new CustomerData()
            };

            adapter.GetCustomers().Returns(data);
            using (KnockoutController controller = new KnockoutController(adapter))
            {
                ActionResult result = controller.Load();

                CustomerData[] model = ActionResultHelper.AssertJson <CustomerData[]>(result);
                Assert.AreEqual(1, model.Length, "There should have been one customer.");
                Assert.AreSame(data.First(), model[0], "The wrong customer was returned.");

                adapter.Received().GetCustomers();
            }
        }
        public void ShouldUpdateCustomer()
        {
            ICustomerAdapter adapter = Substitute.For <ICustomerAdapter>();

            adapter.UpdateCustomer(Arg.Any <CustomerData>());
            using (CustomersController controller = new CustomersController(adapter))
                using (HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Put, "~/api/customers"))
                {
                    request.Properties.Add(HttpPropertyKeys.HttpConfigurationKey, new HttpConfiguration());
                    CustomerData        data    = new CustomerData();
                    HttpResponseMessage message = controller.Put(request, data);

                    Assert.AreEqual(HttpStatusCode.OK, message.StatusCode, "The wrong status code was returned.");
                    Assert.IsInstanceOfType(message.Content, typeof(ObjectContent), "The content was not the serialized result.");
                    ObjectContent content = (ObjectContent)message.Content;
                    Assert.AreSame("The customer was updated.", content.Value, "The wrong object was returned.");

                    adapter.Received().UpdateCustomer(data);
                }
        }
        public void ShouldDeleteCustomer()
        {
            ICustomerAdapter adapter = Substitute.For <ICustomerAdapter>();

            adapter.RemoveCustomer(Arg.Any <string>());
            using (CustomersController controller = new CustomersController(adapter))
                using (HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Delete, "~/api/customers"))
                {
                    request.Properties.Add(HttpPropertyKeys.HttpConfigurationKey, new HttpConfiguration());
                    string customerId           = Guid.NewGuid().ToString("N");
                    HttpResponseMessage message = controller.Delete(request, customerId);

                    Assert.AreEqual(HttpStatusCode.OK, message.StatusCode, "The wrong status code was returned.");
                    Assert.IsInstanceOfType(message.Content, typeof(ObjectContent), "The content was not the serialized result.");
                    ObjectContent content = (ObjectContent)message.Content;
                    Assert.AreSame("The customer was deleted.", content.Value, "The wrong object was returned.");

                    adapter.Received().RemoveCustomer(customerId);
                }
        }
        public void ShouldGetCustomerById()
        {
            ICustomerAdapter adapter = Substitute.For <ICustomerAdapter>();
            CustomerData     data    = new CustomerData();

            adapter.GetCustomer(Arg.Any <string>()).Returns(data);
            using (CustomersController controller = new CustomersController(adapter))
            {
                string customerId = Guid.NewGuid().ToString("N");
                using (HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, "~/api/customers/" + customerId))
                {
                    request.Properties.Add(HttpPropertyKeys.HttpConfigurationKey, new HttpConfiguration());
                    HttpResponseMessage response = controller.Get(request, customerId);
                    Assert.IsInstanceOfType(response.Content, typeof(ObjectContent <CustomerData>), "Customer data was not returned.");
                    ObjectContent <CustomerData> content = (ObjectContent <CustomerData>)response.Content;
                    CustomerData result = (CustomerData)content.Value;

                    Assert.AreSame(data, result, "The wrong customer was returned.");

                    adapter.Received().GetCustomer(customerId);
                }
            }
        }
        public void ShouldGetAllCustomers()
        {
            ICustomerAdapter           adapter = Substitute.For <ICustomerAdapter>();
            IEnumerable <CustomerData> data    = new List <CustomerData>()
            {
                new CustomerData()
            };

            adapter.GetCustomers().Returns(data);
            using (CustomersController controller = new CustomersController(adapter))
                using (HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, "~/api/customers"))
                {
                    request.Properties.Add(HttpPropertyKeys.HttpConfigurationKey, new HttpConfiguration());
                    HttpResponseMessage response = controller.GetAll(request);
                    Assert.IsInstanceOfType(response.Content, typeof(ObjectContent <CustomerData[]>), "An array of customer data wasn't returned.");

                    ObjectContent <CustomerData[]> content = (ObjectContent <CustomerData[]>)response.Content;
                    CustomerData[] results = (CustomerData[])content.Value;
                    Assert.AreEqual(1, results.Length, "There should have been one customer.");
                    Assert.AreSame(data.First(), results[0], "The wrong customer was returned.");

                    adapter.Received().GetCustomers();
                }
        }
        public void ShouldThrowExceptionIfAdapterNull()
        {
            ICustomerAdapter adapter = null;

            using (new CustomersController(adapter)) { }
        }
Esempio n. 26
0
 public CustomerOrchestrator(ICustomerAdapter customerAdapter)
 {
     CustomerAdapter = customerAdapter;
 }
Esempio n. 27
0
 // DI Will Inject Requires Empty Constructor
 public CustomerOrchestrator()
 {
     CustomerAdapter = DependencyFactory.Resolve <ICustomerAdapter>();
 }
Esempio n. 28
0
 public LibraryCardOrchestrator(ICustomerAdapter customerAdapter,
                                ILibraryCardAdapter libraryCardAdapter)
 {
     CustomerAdapter    = customerAdapter;
     LibraryCardAdapter = libraryCardAdapter;
 }