Exemple #1
0
        public async Task AcceptOrderAsync_WithoutSpecificRobot_AssignsOrderToAnyAvailableRobot()
        {
            var fleetManagerClient = Mock.Of <IFleetManagerClient>();
            var dispatcherClient   = Mock.Of <IDispatcherClient>();
            var dbClient           = Mock.Of <ICosmosDbClient <Order> >();
            var orderManager       = new OrderManager(fleetManagerClient, dispatcherClient, dbClient);

            var robots = generateAvailableRobots(1);

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

            var order = new Order();

            var processedOrder = await orderManager.AcceptOrderAsync(order);

            Assert.Equal(OrderStatus.InProgress, processedOrder.Status);

            var job = processedOrder.Jobs[0];

            Mock.Get(dispatcherClient).Verify((d) => d.SendJobAsync(job), Times.Once());
        }