public void AddCustomer()
        {
            //Arrange
            var repository = CreateRepository();
            var customer = new Customer() { FirstName = "Larry", LastName = "Hughes" };

            //Act
            repository.AddCustomer(customer);

            //Assert
            mockCustomerSet.Verify(c => c.Add(It.IsAny<Customer>()));
            dbContext.Verify(c => c.SaveChanges());
        }
 /// <summary>
 /// Add a customer to the repository.
 /// </summary>
 /// <param name="customer">Customer object to add to the repository.</param>
 /// <returns></returns>
 public void AddCustomer(Customer customer)
 {
     DBContext.Customers.Add(customer);
     DBContext.SaveChanges();
 }
 /// <summary>
 /// Update a Customer in the repository that has the matching Id with modified property values.
 /// </summary>
 /// <param name="customer">Customer object that contains the modified property values to update with.</param>
 /// <returns></returns>
 public void UpdateCustomer(Customer customer)
 {
     DBContext.Customers.AddOrUpdate(customer);
     DBContext.SaveChanges();
 }
        public void SetupDbContext()
        {
            dbContext = new Mock<IDbContext>();

            mason = new Customer { Id = 2, FirstName = "Mason", LastName = "McGlothlin", Address = "1 Washington Way", CompanyName = "Acme Inc", EmailAddress = "*****@*****.**", PhoneNumber = "555-555-5555" };

            var sampleCustomerData = new List<Customer>
            {
                new Customer { Id = 1, FirstName = "Road", LastName = "Runner", Address = "2 Test Ave", CompanyName = "Stuff Inc", EmailAddress = "*****@*****.**", PhoneNumber = "817-555-5555" },
                mason,
                new Customer { Id = 3, FirstName = "Bobby", LastName = "Tables", Address = "XKCD Street", CompanyName = "Funny Stuff LLC", EmailAddress = "*****@*****.**", PhoneNumber = "214-555-5555" },
            }.AsQueryable();

            mockCustomerSet = new Mock<DbSet<Customer>>();
            mockCustomerSet.As<IQueryable<Customer>>().Setup(m => m.Provider).Returns(sampleCustomerData.Provider);
            mockCustomerSet.As<IQueryable<Customer>>().Setup(m => m.Expression).Returns(sampleCustomerData.Expression);
            mockCustomerSet.As<IQueryable<Customer>>().Setup(m => m.ElementType).Returns(sampleCustomerData.ElementType);
            mockCustomerSet.As<IQueryable<Customer>>().Setup(m => m.GetEnumerator()).Returns(sampleCustomerData.GetEnumerator());
            mockCustomerSet.Setup(c => c.Add(It.IsAny<Customer>())).Returns(new Customer()).Verifiable();
            dbContext.Setup(c => c.Customers).Returns(mockCustomerSet.Object);
            dbContext.Setup(c => c.SaveChanges()).Verifiable();
        }
 /// <summary>
 /// Action method where new customers are posted against.
 /// </summary>
 /// <param name="customer">Model representing new customer to be added to the repository.</param>
 /// <returns>A redirect to the Index action.</returns>
 public ActionResult Create(Customer customer)
 {
     Repository.AddCustomer(customer);
     return RedirectToAction(nameof(CustomersController.Index));
 }
 public void AddCustomer(Customer customer)
 {
     customer.Id = randomNumberGenerator.Next();
     Customers.Add(customer.Id, customer);
 }
 public void UpdateCustomer(Customer customer)
 {
     Customers[customer.Id] = customer;
 }