public async Task GetTrainingStatusAsync_WithFaceClientServiceFault_ThrowsException()
        {
            var mockLogger            = Mock.Of <ILogger <MaintenanceController> >();
            var mockFaceClientService = new Mock <IFaceClientService>();

            mockFaceClientService
            .Setup(service => service.GetTrainingStatusAsync())
            .Throws <NotImplementedException>();

            var controller = new MaintenanceController(mockFaceClientService.Object, mockLogger);
            await Assert.ThrowsAsync <NotImplementedException>(async() =>
            {
                await controller.GetTrainingStatusAsync();
            });
        }
        public async Task GetTrainingStatusAsync_WithCorrectInput_ReturnsOk()
        {
            var mockLogger            = Mock.Of <ILogger <MaintenanceController> >();
            var mockFaceClientService = new Mock <IFaceClientService>();

            mockFaceClientService
            .Setup(service => service.GetTrainingStatusAsync())
            .Returns(() => Task.FromResult(new TrainingStatus {
                Status = TrainingStatusType.Succeeded
            }));

            var controller   = new MaintenanceController(mockFaceClientService.Object, mockLogger);
            var actionResult = await controller.GetTrainingStatusAsync();

            Assert.NotNull(actionResult);

            var okObjectResult = Assert.IsAssignableFrom <OkObjectResult>(actionResult);

            Assert.IsAssignableFrom <TrainingStatus>(okObjectResult.Value);
        }