public void CreateFillOrder_Create_New_Fill_Order_2()
        {
            //Because it is in memory as it is and I do not have a mocked DB, I wanted to also show the tests would catch if it generated a fill order
            var fillOrderRepo    = new FillOrderRepo();
            var fillOrderService = new FillOrderService(fillOrderRepo);
            var newOrder         = fillOrderService.CreateFillOrder();

            Assert.IsType <DateTime>(newOrder.OrderCreated);
            Assert.False(newOrder.OrderClosed);
            Assert.NotNull(newOrder.Id);
        }
        public void ProcessFillOrder_On_Already_Closed_Order()
        {
            var fillOrderRepo = new FillOrderRepo();

            fillOrderRepo.CreateFillOrder();
            FillOrderService fillOrderService = new FillOrderService(fillOrderRepo);
            var orders      = fillOrderService.ViewOpenOrders();
            var singleOrder = orders.First();
            var closedOrder = fillOrderService.ProcessFillOrder(singleOrder.Id);

            Assert.Throws <Exception>(() => fillOrderService.ProcessFillOrder(closedOrder.Id));
        }
        public void ViewOpenOrders_Shows_All_Open_Orders()
        {
            //Because the database is already in memory, it just calls this directly. Normally would use an in memory database to mock out the real one.
            var fillOrderRepo    = new FillOrderRepo();
            var fillOrderService = new FillOrderService(fillOrderRepo);

            fillOrderService.CreateFillOrder();
            fillOrderService.CreateFillOrder();
            fillOrderService.CreateFillOrder();
            fillOrderService.CreateFillOrder();
            Assert.True(fillOrderService.ViewOpenOrders().Count == 4);
        }
        public void ProcessFillOrder_On_Open_Order()
        {
            //Because the database is already in memory, it just calls this directly. Normally would use an in memory database to mock out the real one.
            var fillOrderRepo = new FillOrderRepo();

            fillOrderRepo.CreateFillOrder();
            FillOrderService fillOrderService = new FillOrderService(fillOrderRepo);
            var orders      = fillOrderService.ViewOpenOrders();
            var singleOrder = orders.First();
            var closedOrder = fillOrderService.ProcessFillOrder(singleOrder.Id);

            Assert.True(closedOrder.OrderClosed);
        }