コード例 #1
0
        public void CanRemoveOrder(int year, int month, int day, int orderNumber, string customerName, string state, decimal taxRate, string productType, decimal area, decimal costPerSquareFoot, decimal laborCostPerSquareFoot, bool expectedResult)
        {
            FileOrderRepository repo = new FileOrderRepository(filePath);

            Order order = new Order();

            DateTime date = new DateTime(year, month, day);

            order.Date                   = date;
            order.OrderNumber            = orderNumber;
            order.CustomerName           = customerName;
            order.State                  = state;
            order.TaxRate                = taxRate;
            order.ProductType            = productType;
            order.Area                   = area;
            order.CostPerSquareFoot      = costPerSquareFoot;
            order.LaborCostPerSquareFoot = laborCostPerSquareFoot;

            repo.Remove(order);

            List <Order> orders = repo.ListOrdersForDate(date);

            Order check = orders[0];

            Assert.AreEqual("Ryan", check.CustomerName);
            Assert.AreEqual("OH", check.State);
            Assert.AreEqual(1, orders.Count());
        }
コード例 #2
0
        public void FileAdd()
        {
            CalculateTotals     calculator = new CalculateTotals();
            DateTime            orderDate  = DateTime.Parse("06/01/2013");
            FileOrderRepository data       = new FileOrderRepository(_path);

            Order testOrder = new Order()
            {
                OrderDate              = new DateTime(2013, 06, 01),
                CustomerName           = "Scrooge McDuck",
                State                  = "MN",
                TaxRate                = 2,
                ProductType            = "Tile",
                Area                   = 500,
                CostPerSquareFoot      = 1,
                LaborCostPerSquareFoot = 1
            };

            data.AddOrder(testOrder, orderDate);

            Assert.AreEqual("Scrooge McDuck", testOrder.CustomerName);
            Assert.AreEqual(2, testOrder.OrderNumber);
            Assert.AreEqual(500, calculator.MaterialCost(testOrder));
            Assert.AreEqual(500, calculator.LaborCost(testOrder));
            Assert.AreEqual(20, calculator.Tax(testOrder));
            Assert.AreEqual(1020, calculator.Total(testOrder));
        }
コード例 #3
0
        public static OrderManager Create()
        {
            string mode = ConfigurationManager.AppSettings["Mode"].ToString();

            IOrderRepository   orderRepository;
            ITaxRepository     taxRepository;
            IProductRepository productRepository;

            switch (mode)
            {
            case "Test":
                orderRepository   = new TestOrderRepository();
                taxRepository     = new TestTaxRepository();
                productRepository = new TestProductRepository();
                return(new OrderManager(orderRepository, taxRepository, productRepository));

            case "Production":
                orderRepository   = new FileOrderRepository();
                taxRepository     = new TaxRepository();
                productRepository = new ProductRepository();
                return(new OrderManager(orderRepository, taxRepository, productRepository));

            default:
                throw new Exception("Mode value in app config is not valid");
            }
        }
コード例 #4
0
        public void CanAddOrderToFile()
        {
            DateTime            orderDate = DateTime.Parse("10/16/2016");
            FileOrderRepository repo      = new FileOrderRepository();
            List <Order>        orders    = repo.List(orderDate);

            Order newOrder = new Order();

            newOrder.OrderNumber  = 5;
            newOrder.Name         = "Rickstar Fredders";
            newOrder.State        = "MN";
            newOrder.OrderDate    = orderDate;
            newOrder.Area         = 222;
            newOrder.Type         = ProductType.Tile;
            newOrder.CostMaterial = 777.00M;
            newOrder.CostLabor    = 921.30M;
            repo.Add(newOrder);

            orders = repo.List(orderDate);

            Assert.AreEqual(5, orders.Count());

            Order check = orders[4];

            Assert.AreEqual(5, check.OrderNumber);
            Assert.AreEqual("Rickstar Fredders", check.Name);
            Assert.AreEqual("MN", check.State);
            Assert.AreEqual(new DateTime(2016, 10, 16), check.OrderDate);
            Assert.AreEqual(222, check.Area);
            Assert.AreEqual(ProductType.Tile, check.Type);
            Assert.AreEqual(777.00, check.CostMaterial);
            Assert.AreEqual(921.30, check.CostLabor);
        }
コード例 #5
0
        public void CanEditOrder()
        {
            DateTime            orderDate = DateTime.Parse("10/16/2016");
            FileOrderRepository repo      = new FileOrderRepository();
            List <Order>        orders    = repo.List(orderDate);

            Order editedOrder = orders[0];

            editedOrder.Area = 7000;

            repo.Edit(editedOrder, 1);

            orders = repo.List(orderDate);

            Assert.AreEqual(4, orders.Count);

            Order check = orders[0];

            Assert.AreEqual(1, check.OrderNumber);
            Assert.AreEqual("James Camerson", check.Name);
            Assert.AreEqual("MN", check.State);
            Assert.AreEqual(new DateTime(2016, 10, 16), check.OrderDate);
            Assert.AreEqual(7000, check.Area);
            Assert.AreEqual(ProductType.Carpet, check.Type);
            Assert.AreEqual(112.50, check.CostMaterial);
            Assert.AreEqual(105.00, check.CostLabor);
            Assert.AreEqual(15.23, check.Tax);
            Assert.AreEqual(232.73, check.TotalCost);
        }
コード例 #6
0
        public void NoDateTest()
        {
            DateTime            orderDate = DateTime.Parse("05/05/2005");
            FileOrderRepository data      = new FileOrderRepository(_path);
            List <Order>        orders    = data.ShowOrders(orderDate);

            Assert.IsNull(orders);
        }
コード例 #7
0
        public void LoadIndivOrder()
        {
            DateTime            orderDate   = DateTime.Parse("06/01/2013");
            int                 orderNumber = 1;
            FileOrderRepository data        = new FileOrderRepository(_path);

            Order order = data.FindIndivOrder(orderNumber, orderDate);

            Assert.AreEqual("Wise", order.CustomerName);
            Assert.AreEqual("Wood", order.ProductType);
        }
コード例 #8
0
        public void LoadOrders()
        {
            DateTime            orderDate = DateTime.Parse("06/01/2013");
            FileOrderRepository data      = new FileOrderRepository(@"C:\Data\");

            List <Order> orders = data.ShowOrders(orderDate);

            Assert.AreEqual("Wise", orders[0].CustomerName);
            Assert.AreEqual(1, orders[0].OrderNumber);
            Assert.AreEqual(6.25, orders[0].TaxRate);
        }
コード例 #9
0
        public void FileDelete()
        {
            DateTime            orderDate   = DateTime.Parse("06/01/2013");
            int                 orderNumber = 1;
            FileOrderRepository data        = new FileOrderRepository(_path);

            data.DeleteOrder(orderDate, orderNumber);

            List <Order> orders = data.ShowOrders(orderDate);

            Assert.AreEqual(0, orders.Count);
        }
コード例 #10
0
        public void CanGetOrderListForDate(int year, int month, int day, bool expetctedValue)
        {
            DateTime date = new DateTime(year, month, day);

            List <Order> orders = new List <Order>();

            FileOrderRepository repo = new FileOrderRepository(filePath);

            var orderList = repo.ListOrdersForDate(date);

            foreach (Order ord in orderList)
            {
                orders.Add(ord);
            }

            Assert.AreEqual(2, orders.Count());
            Assert.IsTrue(expetctedValue);
        }
コード例 #11
0
        public void FileEdit()
        {
            DateTime            orderDate   = DateTime.Parse("06/01/2013");
            int                 orderNumber = 1;
            FileOrderRepository data        = new FileOrderRepository(_path);

            Order order = data.FindIndivOrder(orderNumber, orderDate);

            order.CustomerName = "BeastieBoi";
            order.ProductType  = "Tile";

            data.EditOrder(orderDate, order);

            Order editedOrder = data.FindIndivOrder(orderNumber, orderDate);

            Assert.AreEqual("BeastieBoi", editedOrder.CustomerName);
            Assert.AreEqual("Tile", editedOrder.ProductType);
        }
コード例 #12
0
        public void CanAddOrder(int year, int month, int day, int orderNumber, string customerName, string state, decimal taxRate, string productType, decimal area, decimal costPerSquareFoot, decimal laborCostPerSquareFoot, bool expectedResult)
        {
            DateTime date = new DateTime(year, month, day);

            Order order = new Order();

            order.Date                   = date;
            order.OrderNumber            = orderNumber;
            order.CustomerName           = customerName;
            order.State                  = state;
            order.TaxRate                = taxRate;
            order.ProductType            = productType;
            order.Area                   = area;
            order.CostPerSquareFoot      = costPerSquareFoot;
            order.LaborCostPerSquareFoot = laborCostPerSquareFoot;

            FileOrderRepository repo = new FileOrderRepository(filePath);

            bool actual = repo.Add(order);

            Assert.AreEqual(expectedResult, actual);
        }
コード例 #13
0
        public void CanReadDataFromFile()
        {
            DateTime orderDate = DateTime.Parse("10/16/2016");

            FileOrderRepository repo = new FileOrderRepository();

            List <Order> orders = repo.List(orderDate);

            Assert.AreEqual(4, orders.Count());

            Order check = orders[2];

            Assert.AreEqual(3, check.OrderNumber);
            Assert.AreEqual("Nate Ruess", check.Name);
            Assert.AreEqual("MN", check.State);
            Assert.AreEqual(new DateTime(2016, 10, 16), check.OrderDate);
            Assert.AreEqual(500, check.Area);
            Assert.AreEqual(1750.00, check.CostMaterial);
            Assert.AreEqual(2075.00, check.CostLabor);
            Assert.AreEqual(267.75, check.Tax);
            Assert.AreEqual(4092.75, check.TotalCost);
        }
コード例 #14
0
        public void CanDeleteOrder()
        {
            DateTime            orderDate = DateTime.Parse("10/16/2016");
            FileOrderRepository repo      = new FileOrderRepository();
            List <Order>        orders    = repo.List(orderDate);

            repo.Delete(orderDate, orders[0].OrderNumber);
            orders = repo.List(orderDate);

            Assert.AreEqual(3, orders.Count);
            Order check = orders[0];

            Assert.AreEqual(2, check.OrderNumber);
            Assert.AreEqual("Steve Irwin", check.Name);
            Assert.AreEqual("MN", check.State);
            Assert.AreEqual(new DateTime(2016, 10, 16), check.OrderDate);
            Assert.AreEqual(216, check.Area);
            Assert.AreEqual(ProductType.Laminate, check.Type);
            Assert.AreEqual(378.00, check.CostMaterial);
            Assert.AreEqual(453.00, check.CostLabor);
            Assert.AreEqual(58.21, check.Tax);
            Assert.AreEqual(889.81, check.TotalCost);
        }
コード例 #15
0
        public void CanEditOrder(int year, int month, int day, string name, string productType, string stateAbrr, decimal area, bool expectedValue)
        {
            FileOrderRepository repo = new FileOrderRepository(filePath);
            DateTime            date = new DateTime(year, month, day);

            List <Order> orders = repo.ListOrdersForDate(date);

            Order editedOrder = orders[0];

            editedOrder.CustomerName = name;
            editedOrder.ProductType  = productType;
            editedOrder.State        = stateAbrr;
            editedOrder.Area         = area;

            repo.Edit(editedOrder);

            repo.ListOrdersForDate(date);
            Order check = orders[0];

            Assert.AreEqual("Nikki", check.CustomerName);
            Assert.AreEqual("Carpet", check.ProductType);
            Assert.AreEqual("MI", check.State);
            Assert.AreEqual(120.00, check.Area);
        }