public void SearchOrdersWithQuotesSearchesCorrectlyAndPreventsInjection()
        {
            OrdersManagementDataSet ds = new OrdersManagementDataSet();

            OrdersManagementDataSet.OrdersRow ordersRowA = ds.Orders.NewOrdersRow();
            ordersRowA.OrderId     = 1;
            ordersRowA.OrderName   = "Order A's";
            ordersRowA.Description = "Description A";
            ordersRowA.Approver    = "User";
            ordersRowA.Creator     = "User";
            ordersRowA.OrderStatus = (int)OrderStatusEnum.Draft;
            ds.Orders.AddOrdersRow(ordersRowA);

            OrdersManagementDataSet.OrdersRow ordersRowB = ds.Orders.NewOrdersRow();
            ordersRowB.OrderId     = 2;
            ordersRowB.OrderName   = "Order B";
            ordersRowB.Description = "Description B";
            ordersRowB.Approver    = "User";
            ordersRowB.Creator     = "User";
            ordersRowB.OrderStatus = (int)OrderStatusEnum.Draft;
            ds.Orders.AddOrdersRow(ordersRowB);
            ds.AcceptChanges();

            OrdersService ordersService = new OrdersService(ds, new FakeProductService());

            ICollection <Order> orders = ordersService.SearchOrders("'");

            Assert.AreEqual(1, orders.Count);
            IEnumerator <Order> enumerator = orders.GetEnumerator();

            enumerator.Reset();
            enumerator.MoveNext();
            Assert.AreEqual(1, enumerator.Current.OrderId);
        }
        public void GetSavedDraftOrdersRetrievesOrdersWithDraftStatusAndForCurrentUser()
        {
            OrdersManagementDataSet ds = new OrdersManagementDataSet();

            OrdersManagementDataSet.OrdersRow ordersRow = ds.Orders.NewOrdersRow();
            ordersRow.Approver    = "WhoCares";
            ordersRow.Creator     = "CurrentUser";
            ordersRow.OrderName   = "Test Order";
            ordersRow.OrderStatus = (int)OrderStatusEnum.Draft;
            ds.Orders.AddOrdersRow(ordersRow);
            OrdersManagementDataSet.OrderDetailsRow detailRow = ds.OrderDetails.NewOrderDetailsRow();
            detailRow.OrdersRow = ordersRow;
            detailRow.ProductId = 11;
            detailRow.Quantity  = 3;
            ds.OrderDetails.AddOrderDetailsRow(detailRow);
            ds.AcceptChanges();

            FakeProductService productService = new FakeProductService();

            productService.Products.Add(new Product(11, null, null, 2.99m, null));
            OrdersService ordersService = new OrdersService(ds, productService);

            IList <Order> orders = ordersService.GetSavedDraftOrders("CurrentUser");

            Assert.IsNotNull(orders);
            Assert.AreEqual(1, orders.Count);
            Order order = orders[0];

            Assert.AreEqual("Test Order", order.OrderName);
            Assert.IsNotNull(order);
            Assert.AreEqual(1, order.Details.Count);
            Assert.AreEqual((short)3, order.Details[0].Quantity);
            Assert.AreEqual(2.99m, order.Details[0].UnitPrice);
        }
        public void DeleteRemovesOnlyExpectedOrderFromRepository()
        {
            OrdersManagementDataSet ds = new OrdersManagementDataSet();

            OrdersManagementDataSet.OrdersRow ordersRowA = ds.Orders.NewOrdersRow();
            ordersRowA.OrderId     = 3;
            ordersRowA.OrderName   = "Order A";
            ordersRowA.Description = "Description A";
            ordersRowA.Approver    = "User";
            ordersRowA.Creator     = "User";
            ordersRowA.OrderStatus = (int)OrderStatusEnum.Draft;
            ds.Orders.AddOrdersRow(ordersRowA);

            OrdersManagementDataSet.OrdersRow ordersRowB = ds.Orders.NewOrdersRow();
            ordersRowB.OrderId     = 2;
            ordersRowB.OrderName   = "Order B";
            ordersRowB.Description = "Description B";
            ordersRowB.Approver    = "User";
            ordersRowB.Creator     = "User";
            ordersRowB.OrderStatus = (int)OrderStatusEnum.Submitted;
            ds.Orders.AddOrdersRow(ordersRowB);

            ds.AcceptChanges();

            OrdersService ordersService = new OrdersService(ds, new FakeProductService());

            ordersService.DeleteOrder(3);

            Assert.AreEqual(1, ds.Orders.Count);
            Assert.AreEqual(2, ds.Orders[0].OrderId);
        }
 private void AddCustomer(OrdersManagementDataSet ds, string customerId, string companyName)
 {
     OrdersManagementDataSet.CustomersRow row = ds.Customers.NewCustomersRow();
     row.CustomerId  = customerId;
     row.CompanyName = companyName;
     row.City        = string.Empty;
     row.Region      = string.Empty;
     row.PostalCode  = string.Empty;
     row.Address     = string.Empty;
     ds.Customers.AddCustomersRow(row);
     ds.AcceptChanges();
 }
 private void AddCustomer(OrdersManagementDataSet ds, string customerId, string companyName, string city, string state, string zipCode, string address)
 {
     OrdersManagementDataSet.CustomersRow row = ds.Customers.NewCustomersRow();
     row.CustomerId  = customerId;
     row.CompanyName = companyName;
     row.City        = city;
     row.Region      = state;
     row.PostalCode  = zipCode;
     row.Address     = address;
     ds.Customers.AddCustomersRow(row);
     ds.AcceptChanges();
 }
        public void ShouldGetAllApprovers()
        {
            OrdersManagementDataSet ds = new OrdersManagementDataSet();
            ds.Employees.AddEmployeesRow("jblack", "Black", "Joe");
            ds.Employees.AddEmployeesRow("a-jdoe", "Doe", "John");
            ds.AcceptChanges();
            EmployeeService employeeService = new EmployeeService(ds);

            List<Employee> employees = new List<Employee>(employeeService.AllApprovers);

            Assert.IsNotNull(employees);
            Assert.AreEqual(1, employees.Count);
            Assert.AreEqual("a-jdoe", employees[0].EmployeeId);
            Assert.AreEqual("Doe", employees[0].LastName);
        }
        public void ShouldGetEmployeeById()
        {
            OrdersManagementDataSet ds = new OrdersManagementDataSet();

            ds.Employees.AddEmployeesRow("11", "Black", "Joe");
            ds.Employees.AddEmployeesRow("12", "Doe", "John");
            ds.AcceptChanges();
            EmployeeService employeeService = new EmployeeService(ds);

            Employee employee = employeeService.GetEmployeeById("11");

            Assert.IsNotNull(employee);
            Assert.AreEqual("11", employee.EmployeeId);
            Assert.AreEqual("Black", employee.LastName);
        }
        public void ShouldGetAllApprovers()
        {
            OrdersManagementDataSet ds = new OrdersManagementDataSet();

            ds.Employees.AddEmployeesRow("jblack", "Black", "Joe");
            ds.Employees.AddEmployeesRow("a-jdoe", "Doe", "John");
            ds.AcceptChanges();
            EmployeeService employeeService = new EmployeeService(ds);

            List <Employee> employees = new List <Employee>(employeeService.AllApprovers);

            Assert.IsNotNull(employees);
            Assert.AreEqual(1, employees.Count);
            Assert.AreEqual("a-jdoe", employees[0].EmployeeId);
            Assert.AreEqual("Doe", employees[0].LastName);
        }
        public void GetSavedDraftOrdersDoesNotRetrieveOrderForApproversWhoAreNotTheCurrentLoggedInOne()
        {
            OrdersManagementDataSet ds = new OrdersManagementDataSet();

            OrdersManagementDataSet.OrdersRow ordersRow = ds.Orders.NewOrdersRow();
            ordersRow.Approver    = "DifferentWhoCares";
            ordersRow.Creator     = "DifferentUser";
            ordersRow.OrderStatus = (int)OrderStatusEnum.Draft;
            ds.Orders.AddOrdersRow(ordersRow);
            ds.AcceptChanges();
            OrdersService ordersService = new OrdersService(ds, new FakeProductService());

            IList <Order> orders = ordersService.GetOrdersForApprover("CurrentUser");

            Assert.IsNotNull(orders);
            Assert.AreEqual(0, orders.Count);
        }
        public void DeleteNonDraftOrderThrowsException()
        {
            OrdersManagementDataSet ds = new OrdersManagementDataSet();

            OrdersManagementDataSet.OrdersRow ordersRowA = ds.Orders.NewOrdersRow();
            ordersRowA.OrderId     = 1;
            ordersRowA.OrderName   = "Order A";
            ordersRowA.Description = "Description A";
            ordersRowA.Approver    = "User";
            ordersRowA.Creator     = "User";
            ordersRowA.OrderStatus = (int)OrderStatusEnum.Submitted;
            ds.Orders.AddOrdersRow(ordersRowA);

            ds.AcceptChanges();

            OrdersService ordersService = new OrdersService(ds, new FakeProductService());

            ordersService.DeleteOrder(1);
        }
        public void DeleteRemovesOrderFromRepository()
        {
            OrdersManagementDataSet ds = new OrdersManagementDataSet();

            OrdersManagementDataSet.OrdersRow ordersRowA = ds.Orders.NewOrdersRow();
            ordersRowA.OrderId     = 1;
            ordersRowA.OrderName   = "Order A";
            ordersRowA.Description = "Description A";
            ordersRowA.Approver    = "User";
            ordersRowA.Creator     = "User";
            ordersRowA.OrderStatus = (int)OrderStatusEnum.Draft;
            ds.Orders.AddOrdersRow(ordersRowA);

            ds.AcceptChanges();

            OrdersService ordersService = new OrdersService(ds, new FakeProductService());

            ordersService.DeleteOrder(1);

            Assert.AreEqual(0, ds.Orders.Count);
        }
        public void GetSavedDraftOrdersDoesNotRetrieveOrdersWithoutDraftStatus()
        {
            OrdersManagementDataSet ds = new OrdersManagementDataSet();

            OrdersManagementDataSet.OrdersRow ordersRow = ds.Orders.NewOrdersRow();
            ordersRow.Approver    = "WhoCares";
            ordersRow.Creator     = "CurrentUser";
            ordersRow.OrderStatus = (int)OrderStatusEnum.Submitted;
            ds.Orders.AddOrdersRow(ordersRow);
            ordersRow             = ds.Orders.NewOrdersRow();
            ordersRow.Approver    = "WhoCares";
            ordersRow.Creator     = "CurrentUser";
            ordersRow.OrderStatus = (int)OrderStatusEnum.Approved;
            ds.Orders.AddOrdersRow(ordersRow);
            ds.AcceptChanges();
            OrdersService ordersService = new OrdersService(ds, new FakeProductService());

            IList <Order> orders = ordersService.GetSavedDraftOrders("CurrentUser");

            Assert.IsNotNull(orders);
            Assert.AreEqual(0, orders.Count);
        }
        public void GetOrderWithDetailsGetsBothOrderAndDetails()
        {
            OrdersManagementDataSet ds = new OrdersManagementDataSet();

            OrdersManagementDataSet.OrdersRow ordersRow = ds.Orders.NewOrdersRow();
            ordersRow.CustomerId     = "11";
            ordersRow.Description    = "MyDescription";
            ordersRow.Approver       = "MyEmployeeId";
            ordersRow.Creator        = "MyEmployeeId";
            ordersRow.OrderName      = "MyOrderName";
            ordersRow.OrderStatus    = (int)OrderStatusEnum.Draft;
            ordersRow.ShipAddress    = "MyShipAddress";
            ordersRow.ShipCity       = "MyShipCity";
            ordersRow.ShipPostalCode = "MyZip";
            ordersRow.ShipRegion     = "MyShipRegion";
            ds.Orders.AddOrdersRow(ordersRow);
            OrdersManagementDataSet.OrderDetailsRow detailRow = ds.OrderDetails.NewOrderDetailsRow();
            detailRow.OrdersRow = ordersRow;
            detailRow.ProductId = 11;
            detailRow.Quantity  = 3;
            ds.OrderDetails.AddOrderDetailsRow(detailRow);
            ds.AcceptChanges();

            FakeProductService productService = new FakeProductService();

            productService.Products.Add(new Product(11, null, null, 2.99m, null));

            OrdersService ordersService = new OrdersService(ds, productService);

            Order order = ordersService.GetOrderWithDetails(ordersRow.OrderId);

            Assert.IsNotNull(order);
            Assert.AreEqual(ordersRow.OrderId, order.OrderId);
            Assert.AreEqual("MyDescription", order.Description);
            Assert.IsNotNull(order.Details);
            Assert.AreEqual(1, order.Details.Count);
            Assert.AreEqual((short)3, order.Details[0].Quantity);
            Assert.AreEqual(2.99m, order.Details[0].UnitPrice);
        }
        public void SearchOrdersRetrievesOrdersByName()
        {
            OrdersManagementDataSet ds = new OrdersManagementDataSet();

            OrdersManagementDataSet.OrdersRow ordersRowA = ds.Orders.NewOrdersRow();
            ordersRowA.OrderId     = 1;
            ordersRowA.OrderName   = "OrderA";
            ordersRowA.Description = string.Empty;
            ordersRowA.Approver    = "User";
            ordersRowA.Creator     = "User";
            ordersRowA.OrderStatus = (int)OrderStatusEnum.Submitted;

            ds.Orders.AddOrdersRow(ordersRowA);

            OrdersManagementDataSet.OrdersRow ordersRowB = ds.Orders.NewOrdersRow();
            ordersRowB.OrderId     = 2;
            ordersRowB.OrderName   = "OrderB";
            ordersRowB.Description = string.Empty;
            ordersRowB.Approver    = "User";
            ordersRowB.Creator     = "User";
            ordersRowB.OrderStatus = (int)OrderStatusEnum.Submitted;

            ds.Orders.AddOrdersRow(ordersRowB);
            ds.AcceptChanges();


            OrdersService ordersService = new OrdersService(ds, new FakeProductService());

            ICollection <Order> foundOrders = ordersService.SearchOrders("OrderA");

            Assert.AreEqual(1, foundOrders.Count);
            IEnumerator <Order> enumerator = foundOrders.GetEnumerator();

            enumerator.Reset();
            enumerator.MoveNext();
            Assert.AreEqual(1, enumerator.Current.OrderId);
        }
        private static OrdersManagementDataSet InitOrdersManagementDataSet()
        {
            OrdersManagementDataSet ds = new OrdersManagementDataSet();

            OrdersManagementDataSet.OrdersRow ordersRowA = ds.Orders.NewOrdersRow();
            ordersRowA.OrderId     = 1;
            ordersRowA.OrderName   = "Order A";
            ordersRowA.Description = "Description A";
            ordersRowA.Approver    = "User";
            ordersRowA.Creator     = "User";
            ordersRowA.OrderStatus = (int)OrderStatusEnum.Submitted;

            ds.Orders.AddOrdersRow(ordersRowA);

            OrdersManagementDataSet.OrdersRow ordersRowB = ds.Orders.NewOrdersRow();
            ordersRowB.OrderId     = 2;
            ordersRowB.OrderName   = "Order B";
            ordersRowB.Description = "Description B";
            ordersRowB.Approver    = "User";
            ordersRowB.Creator     = "User";
            ordersRowB.OrderStatus = (int)OrderStatusEnum.Submitted;

            ds.Orders.AddOrdersRow(ordersRowB);

            OrdersManagementDataSet.OrdersRow ordersRowC = ds.Orders.NewOrdersRow();
            ordersRowC.OrderId     = 3;
            ordersRowC.OrderName   = "Order C";
            ordersRowC.Description = "C";
            ordersRowC.Approver    = "User";
            ordersRowC.Creator     = "User";
            ordersRowC.OrderStatus = (int)OrderStatusEnum.Submitted;

            ds.Orders.AddOrdersRow(ordersRowC);
            ds.AcceptChanges();
            return(ds);
        }
        public void DeleteRemovesOrderDetailsFromRepository()
        {
            OrdersManagementDataSet ds = new OrdersManagementDataSet();

            OrdersManagementDataSet.OrdersRow ordersRow = ds.Orders.NewOrdersRow();
            ordersRow.OrderId     = 2;
            ordersRow.Approver    = "CurrentUser";
            ordersRow.Creator     = "CurrentUser";
            ordersRow.OrderName   = "Test Order";
            ordersRow.OrderStatus = (int)OrderStatusEnum.Draft;
            ds.Orders.AddOrdersRow(ordersRow);
            OrdersManagementDataSet.OrderDetailsRow detailRow = ds.OrderDetails.NewOrderDetailsRow();
            detailRow.OrdersRow = ordersRow;
            detailRow.ProductId = 11;
            detailRow.Quantity  = 3;
            ds.OrderDetails.AddOrderDetailsRow(detailRow);
            ds.AcceptChanges();
            OrdersService ordersService = new OrdersService(ds, new FakeProductService());

            ordersService.DeleteOrder(2);

            Assert.AreEqual(0, ds.Orders.Count);
            Assert.AreEqual(0, ds.OrderDetails.Count);
        }
        public void DeleteRemovesOrderFromRepository()
        {
            OrdersManagementDataSet ds = new OrdersManagementDataSet();
            OrdersManagementDataSet.OrdersRow ordersRowA = ds.Orders.NewOrdersRow();
            ordersRowA.OrderId = 1;
            ordersRowA.OrderName = "Order A";
            ordersRowA.Description = "Description A";
            ordersRowA.Approver = "User";
            ordersRowA.Creator = "User";
            ordersRowA.OrderStatus = (int)OrderStatusEnum.Draft;
            ds.Orders.AddOrdersRow(ordersRowA);

            ds.AcceptChanges();

            OrdersService ordersService = new OrdersService(ds, new FakeProductService());

            ordersService.DeleteOrder(1);

            Assert.AreEqual(0, ds.Orders.Count);
        }
        private static OrdersManagementDataSet InitOrdersManagementDataSet()
        {
            OrdersManagementDataSet ds = new OrdersManagementDataSet();
            OrdersManagementDataSet.OrdersRow ordersRowA = ds.Orders.NewOrdersRow();
            ordersRowA.OrderId = 1;
            ordersRowA.OrderName = "Order A";
            ordersRowA.Description = "Description A";
            ordersRowA.Approver = "User";
            ordersRowA.Creator = "User";
            ordersRowA.OrderStatus = (int)OrderStatusEnum.Submitted;

            ds.Orders.AddOrdersRow(ordersRowA);

            OrdersManagementDataSet.OrdersRow ordersRowB = ds.Orders.NewOrdersRow();
            ordersRowB.OrderId = 2;
            ordersRowB.OrderName = "Order B";
            ordersRowB.Description = "Description B";
            ordersRowB.Approver = "User";
            ordersRowB.Creator = "User";
            ordersRowB.OrderStatus = (int)OrderStatusEnum.Submitted;

            ds.Orders.AddOrdersRow(ordersRowB);

            OrdersManagementDataSet.OrdersRow ordersRowC = ds.Orders.NewOrdersRow();
            ordersRowC.OrderId = 3;
            ordersRowC.OrderName = "Order C";
            ordersRowC.Description = "C";
            ordersRowC.Approver = "User";
            ordersRowC.Creator = "User";
            ordersRowC.OrderStatus = (int)OrderStatusEnum.Submitted;

            ds.Orders.AddOrdersRow(ordersRowC);
            ds.AcceptChanges();
            return ds;
        }
        public void SearchOrdersWithQuotesSearchesCorrectlyAndPreventsInjection()
        {
            OrdersManagementDataSet ds = new OrdersManagementDataSet();
            OrdersManagementDataSet.OrdersRow ordersRowA = ds.Orders.NewOrdersRow();
            ordersRowA.OrderId = 1;
            ordersRowA.OrderName = "Order A's";
            ordersRowA.Description = "Description A";
            ordersRowA.Approver = "User";
            ordersRowA.Creator = "User";
            ordersRowA.OrderStatus = (int)OrderStatusEnum.Draft;
            ds.Orders.AddOrdersRow(ordersRowA);

            OrdersManagementDataSet.OrdersRow ordersRowB = ds.Orders.NewOrdersRow();
            ordersRowB.OrderId = 2;
            ordersRowB.OrderName = "Order B";
            ordersRowB.Description = "Description B";
            ordersRowB.Approver = "User";
            ordersRowB.Creator = "User";
            ordersRowB.OrderStatus = (int)OrderStatusEnum.Draft;
            ds.Orders.AddOrdersRow(ordersRowB);
            ds.AcceptChanges();

            OrdersService ordersService = new OrdersService(ds, new FakeProductService());

            ICollection<Order> orders = ordersService.SearchOrders("'");

            Assert.AreEqual(1, orders.Count);
            IEnumerator<Order> enumerator = orders.GetEnumerator();
            enumerator.Reset();
            enumerator.MoveNext();
            Assert.AreEqual(1, enumerator.Current.OrderId);
        }
        public void SearchOrdersRetrievesOrdersByName()
        {
            OrdersManagementDataSet ds = new OrdersManagementDataSet();
            OrdersManagementDataSet.OrdersRow ordersRowA = ds.Orders.NewOrdersRow();
            ordersRowA.OrderId = 1;
            ordersRowA.OrderName = "OrderA";
            ordersRowA.Description = string.Empty;
            ordersRowA.Approver = "User";
            ordersRowA.Creator = "User";
            ordersRowA.OrderStatus = (int)OrderStatusEnum.Submitted;

            ds.Orders.AddOrdersRow(ordersRowA);

            OrdersManagementDataSet.OrdersRow ordersRowB = ds.Orders.NewOrdersRow();
            ordersRowB.OrderId = 2;
            ordersRowB.OrderName = "OrderB";
            ordersRowB.Description = string.Empty;
            ordersRowB.Approver = "User";
            ordersRowB.Creator = "User";
            ordersRowB.OrderStatus = (int)OrderStatusEnum.Submitted;

            ds.Orders.AddOrdersRow(ordersRowB);
            ds.AcceptChanges();

            OrdersService ordersService = new OrdersService(ds, new FakeProductService());

            ICollection<Order> foundOrders = ordersService.SearchOrders("OrderA");

            Assert.AreEqual(1, foundOrders.Count);
            IEnumerator<Order> enumerator = foundOrders.GetEnumerator();
            enumerator.Reset();
            enumerator.MoveNext();
            Assert.AreEqual(1, enumerator.Current.OrderId);
        }
        public void GetSavedDraftOrdersRetrievesOrdersWithDraftStatusAndForCurrentUser()
        {
            OrdersManagementDataSet ds = new OrdersManagementDataSet();
            OrdersManagementDataSet.OrdersRow ordersRow = ds.Orders.NewOrdersRow();
            ordersRow.Approver = "WhoCares";
            ordersRow.Creator = "CurrentUser";
            ordersRow.OrderName = "Test Order";
            ordersRow.OrderStatus = (int)OrderStatusEnum.Draft;
            ds.Orders.AddOrdersRow(ordersRow);
            OrdersManagementDataSet.OrderDetailsRow detailRow = ds.OrderDetails.NewOrderDetailsRow();
            detailRow.OrdersRow = ordersRow;
            detailRow.ProductId = 11;
            detailRow.Quantity = 3;
            ds.OrderDetails.AddOrderDetailsRow(detailRow);
            ds.AcceptChanges();

            FakeProductService productService = new FakeProductService();
            productService.Products.Add(new Product(11, null, null, 2.99m, null));
            OrdersService ordersService = new OrdersService(ds, productService);

            IList<Order> orders = ordersService.GetSavedDraftOrders("CurrentUser");

            Assert.IsNotNull(orders);
            Assert.AreEqual(1, orders.Count);
            Order order = orders[0];
            Assert.AreEqual("Test Order", order.OrderName);
            Assert.IsNotNull(order);
            Assert.AreEqual(1, order.Details.Count);
            Assert.AreEqual((short)3, order.Details[0].Quantity);
            Assert.AreEqual(2.99m, order.Details[0].UnitPrice);
        }
        public void GetSavedDraftOrdersDoesNotRetrieveOrdersWithoutDraftStatus()
        {
            OrdersManagementDataSet ds = new OrdersManagementDataSet();
            OrdersManagementDataSet.OrdersRow ordersRow = ds.Orders.NewOrdersRow();
            ordersRow.Approver = "WhoCares";
            ordersRow.Creator = "CurrentUser";
            ordersRow.OrderStatus = (int)OrderStatusEnum.Submitted;
            ds.Orders.AddOrdersRow(ordersRow);
            ordersRow = ds.Orders.NewOrdersRow();
            ordersRow.Approver = "WhoCares";
            ordersRow.Creator = "CurrentUser";
            ordersRow.OrderStatus = (int)OrderStatusEnum.Approved;
            ds.Orders.AddOrdersRow(ordersRow);
            ds.AcceptChanges();
            OrdersService ordersService = new OrdersService(ds, new FakeProductService());

            IList<Order> orders = ordersService.GetSavedDraftOrders("CurrentUser");

            Assert.IsNotNull(orders);
            Assert.AreEqual(0, orders.Count);
        }
        public void GetSavedDraftOrdersDoesNotRetrieveOrderForApproversWhoAreNotTheCurrentLoggedInOne()
        {
            OrdersManagementDataSet ds = new OrdersManagementDataSet();
            OrdersManagementDataSet.OrdersRow ordersRow = ds.Orders.NewOrdersRow();
            ordersRow.Approver = "DifferentWhoCares";
            ordersRow.Creator = "DifferentUser";
            ordersRow.OrderStatus = (int)OrderStatusEnum.Draft;
            ds.Orders.AddOrdersRow(ordersRow);
            ds.AcceptChanges();
            OrdersService ordersService = new OrdersService(ds, new FakeProductService());

            IList<Order> orders = ordersService.GetOrdersForApprover("CurrentUser");

            Assert.IsNotNull(orders);
            Assert.AreEqual(0, orders.Count);
        }
        public void DeleteNonDraftOrderThrowsException()
        {
            OrdersManagementDataSet ds = new OrdersManagementDataSet();
            OrdersManagementDataSet.OrdersRow ordersRowA = ds.Orders.NewOrdersRow();
            ordersRowA.OrderId = 1;
            ordersRowA.OrderName = "Order A";
            ordersRowA.Description = "Description A";
            ordersRowA.Approver = "User";
            ordersRowA.Creator = "User";
            ordersRowA.OrderStatus = (int)OrderStatusEnum.Submitted;
            ds.Orders.AddOrdersRow(ordersRowA);

            ds.AcceptChanges();

            OrdersService ordersService = new OrdersService(ds, new FakeProductService());

            ordersService.DeleteOrder(1);
        }
        public void ShouldGetEmployeeById()
        {
            OrdersManagementDataSet ds = new OrdersManagementDataSet();
            ds.Employees.AddEmployeesRow("11", "Black", "Joe");
            ds.Employees.AddEmployeesRow("12", "Doe", "John");
            ds.AcceptChanges();
            EmployeeService employeeService = new EmployeeService(ds);

            Employee employee= employeeService.GetEmployeeById("11");

            Assert.IsNotNull(employee);
            Assert.AreEqual("11", employee.EmployeeId);
            Assert.AreEqual("Black", employee.LastName);
        }
 private void AddCustomer(OrdersManagementDataSet ds, string customerId, string companyName)
 {
     OrdersManagementDataSet.CustomersRow row = ds.Customers.NewCustomersRow();
     row.CustomerId = customerId;
     row.CompanyName = companyName;
     row.City = string.Empty;
     row.Region = string.Empty;
     row.PostalCode = string.Empty;
     row.Address = string.Empty;
     ds.Customers.AddCustomersRow(row);
     ds.AcceptChanges();
 }
        public void DeleteRemovesOnlyExpectedOrderFromRepository()
        {
            OrdersManagementDataSet ds = new OrdersManagementDataSet();
            OrdersManagementDataSet.OrdersRow ordersRowA = ds.Orders.NewOrdersRow();
            ordersRowA.OrderId = 3;
            ordersRowA.OrderName = "Order A";
            ordersRowA.Description = "Description A";
            ordersRowA.Approver = "User";
            ordersRowA.Creator = "User";
            ordersRowA.OrderStatus = (int)OrderStatusEnum.Draft;
            ds.Orders.AddOrdersRow(ordersRowA);

            OrdersManagementDataSet.OrdersRow ordersRowB = ds.Orders.NewOrdersRow();
            ordersRowB.OrderId = 2;
            ordersRowB.OrderName = "Order B";
            ordersRowB.Description = "Description B";
            ordersRowB.Approver = "User";
            ordersRowB.Creator = "User";
            ordersRowB.OrderStatus = (int)OrderStatusEnum.Submitted;
            ds.Orders.AddOrdersRow(ordersRowB);

            ds.AcceptChanges();

            OrdersService ordersService = new OrdersService(ds, new FakeProductService());

            ordersService.DeleteOrder(3);

            Assert.AreEqual(1, ds.Orders.Count);
            Assert.AreEqual(2, ds.Orders[0].OrderId);
        }
        public void GetOrderWithDetailsGetsBothOrderAndDetails()
        {
            OrdersManagementDataSet ds = new OrdersManagementDataSet();
            OrdersManagementDataSet.OrdersRow ordersRow = ds.Orders.NewOrdersRow();
            ordersRow.CustomerId = "11";
            ordersRow.Description = "MyDescription";
            ordersRow.Approver = "MyEmployeeId";
            ordersRow.Creator = "MyEmployeeId";
            ordersRow.OrderName = "MyOrderName";
            ordersRow.OrderStatus = (int)OrderStatusEnum.Draft;
            ordersRow.ShipAddress = "MyShipAddress";
            ordersRow.ShipCity = "MyShipCity";
            ordersRow.ShipPostalCode = "MyZip";
            ordersRow.ShipRegion = "MyShipRegion";
            ds.Orders.AddOrdersRow(ordersRow);
            OrdersManagementDataSet.OrderDetailsRow detailRow = ds.OrderDetails.NewOrderDetailsRow();
            detailRow.OrdersRow = ordersRow;
            detailRow.ProductId = 11;
            detailRow.Quantity = 3;
            ds.OrderDetails.AddOrderDetailsRow(detailRow);
            ds.AcceptChanges();

            FakeProductService productService = new FakeProductService();
            productService.Products.Add(new Product(11, null, null, 2.99m, null));

            OrdersService ordersService = new OrdersService(ds, productService);

            Order order = ordersService.GetOrderWithDetails(ordersRow.OrderId);

            Assert.IsNotNull(order);
            Assert.AreEqual(ordersRow.OrderId, order.OrderId);
            Assert.AreEqual("MyDescription", order.Description);
            Assert.IsNotNull(order.Details);
            Assert.AreEqual(1, order.Details.Count);
            Assert.AreEqual((short)3, order.Details[0].Quantity);
            Assert.AreEqual(2.99m, order.Details[0].UnitPrice);
        }
 private void AddCustomer(OrdersManagementDataSet ds, string customerId, string companyName, string city, string state, string zipCode, string address)
 {
     OrdersManagementDataSet.CustomersRow row = ds.Customers.NewCustomersRow();
     row.CustomerId = customerId;
     row.CompanyName = companyName;
     row.City = city;
     row.Region = state;
     row.PostalCode = zipCode;
     row.Address = address;
     ds.Customers.AddCustomersRow(row);
     ds.AcceptChanges();
 }
        public void DeleteRemovesOrderDetailsFromRepository()
        {
            OrdersManagementDataSet ds = new OrdersManagementDataSet();
            OrdersManagementDataSet.OrdersRow ordersRow = ds.Orders.NewOrdersRow();
            ordersRow.OrderId = 2;
            ordersRow.Approver = "CurrentUser";
            ordersRow.Creator = "CurrentUser";
            ordersRow.OrderName = "Test Order";
            ordersRow.OrderStatus = (int)OrderStatusEnum.Draft;
            ds.Orders.AddOrdersRow(ordersRow);
            OrdersManagementDataSet.OrderDetailsRow detailRow = ds.OrderDetails.NewOrderDetailsRow();
            detailRow.OrdersRow = ordersRow;
            detailRow.ProductId = 11;
            detailRow.Quantity = 3;
            ds.OrderDetails.AddOrderDetailsRow(detailRow);
            ds.AcceptChanges();
            OrdersService ordersService = new OrdersService(ds, new FakeProductService());

            ordersService.DeleteOrder(2);

            Assert.AreEqual(0, ds.Orders.Count);
            Assert.AreEqual(0, ds.OrderDetails.Count);
        }