public async Task ApplyLightScene_SceneNotFound()
        {
            var        hueLightProvider     = Substitute.For <IHueLightProvider>();
            var        lightSceneRepository = Substitute.For <IAsyncRepository <LightScene> >();
            LightScene lightScene           = null;

            lightSceneRepository.GetAsync(Arg.Is <int>(5)).Returns(lightScene);
            var controller = new LightingController(hueLightProvider, lightSceneRepository);

            var result = await controller.ApplyLightScene(5);

            Assert.IsType <NotFoundResult>(result);
        }
        public async Task ApplyLightScene_NotSuccessful()
        {
            var hueLightProvider = Substitute.For <IHueLightProvider>();

            hueLightProvider.ApplyLightSceneAsync(Arg.Any <LightScene>()).Returns(false);
            var        lightSceneRepository = Substitute.For <IAsyncRepository <LightScene> >();
            LightScene lightScene           = new LightScene()
            {
                Id   = 5,
                Name = "Test",
                Data = "abc"
            };

            lightSceneRepository.GetAsync(Arg.Is <int>(5)).Returns(lightScene);
            var controller = new LightingController(hueLightProvider, lightSceneRepository);

            var result = await controller.ApplyLightScene(5);

            await hueLightProvider.Received(1).ApplyLightSceneAsync(Arg.Is <LightScene>(x => x.Id.Equals(5) && x.Name.Equals("Test") && x.Data.Equals("abc")));

            Assert.IsType <NotFoundResult>(result);
        }