コード例 #1
0
        public async Task AcceptOrdersAsync_WithFailedSend_ReturnsOrdersWithFailedOrderStatus(int numOfOrders)
        {
            var fleetManagerClient = Mock.Of <IFleetManagerClient>();
            var dispatcherClient   = Mock.Of <IDispatcherClient>();
            var dbClient           = Mock.Of <ICosmosDbClient <Order> >();

            var orderManager = new OrderManager(fleetManagerClient, dispatcherClient, dbClient);

            var orders = generateOrders(numOfOrders);
            var robots = generateAvailableRobots(numOfOrders);

            Mock.Get(fleetManagerClient).Setup(f => f.GetAvailableRobotsAsync()).ReturnsAsync(robots);
            Mock.Get(dispatcherClient).Setup((d) => d.SendJobAsync(It.IsAny <Job>())).ReturnsAsync(false);

            var processedOrders = await orderManager.AcceptOrdersAsync(orders);

            var failedOrders = processedOrders.Where(o => o.Status == OrderStatus.Failed).Count();

            Assert.Equal(numOfOrders, failedOrders);
        }
コード例 #2
0
        public async Task AcceptOrdersAsync_WithOrdersAndAvailableRobots_AssignsCorrectNumberOfOrders(int numOfOrders, int numOfAvailableRobots)
        {
            var fleetManagerClient = Mock.Of <IFleetManagerClient>();
            var dispatcherClient   = Mock.Of <IDispatcherClient>();
            var dbClient           = Mock.Of <ICosmosDbClient <Order> >();
            var orderManager       = new OrderManager(fleetManagerClient, dispatcherClient, dbClient);

            var orders = generateOrders(numOfOrders);
            var robots = generateAvailableRobots(numOfAvailableRobots);

            Mock.Get(fleetManagerClient).Setup(f => f.GetAvailableRobotsAsync()).ReturnsAsync(robots);
            Mock.Get(dispatcherClient).Setup(d => d.SendJobAsync(It.IsAny <Job>())).ReturnsAsync(true);

            var expectedAssignments           = numOfOrders;
            var expectedSuccessfulAssignments = Math.Min(numOfOrders, numOfAvailableRobots);

            var processedOrders = await orderManager.AcceptOrdersAsync(orders);

            var successfulOrders = processedOrders.Where(o => o.Status == OrderStatus.InProgress).Count();

            Assert.Equal(expectedAssignments, processedOrders.Count());
            Assert.Equal(expectedSuccessfulAssignments, successfulOrders);
        }