public async Task UpdateLightScene_BadRequest_SceneNull()
        {
            var        hueLightProvider     = Substitute.For <IHueLightProvider>();
            var        lightSceneRepository = Substitute.For <IAsyncRepository <LightScene> >();
            LightScene lightScene           = null;
            var        controller           = new LightingController(hueLightProvider, lightSceneRepository);

            var result = await controller.UpdateLightScene(5, lightScene);

            Assert.IsType <BadRequestResult>(result.Result);
        }
        public async Task UpdateLightScene_BadRequest_InvalidId()
        {
            var        hueLightProvider     = Substitute.For <IHueLightProvider>();
            var        lightSceneRepository = Substitute.For <IAsyncRepository <LightScene> >();
            LightScene lightScene           = new LightScene()
            {
                Id   = 5,
                Name = "Test",
                Data = "abc"
            };
            var controller = new LightingController(hueLightProvider, lightSceneRepository);

            var result = await controller.UpdateLightScene(7, lightScene);

            Assert.IsType <BadRequestResult>(result.Result);
        }
        public async Task UpdateLightScene_Ok()
        {
            var hueLightProvider     = Substitute.For <IHueLightProvider>();
            var lightSceneRepository = Substitute.For <IAsyncRepository <LightScene> >();
            var lightScene           = new LightScene()
            {
                Id   = 5,
                Name = "Test",
                Data = "abc"
            };
            var controller = new LightingController(hueLightProvider, lightSceneRepository);

            var result = await controller.UpdateLightScene(5, lightScene);

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

            var okResult = Assert.IsType <OkObjectResult>(result.Result);
            var scene    = Assert.IsType <LightScene>(okResult.Value);

            Assert.Equal(5, scene.Id);
            Assert.Equal("Test", scene.Name);
            Assert.Equal("abc", scene.Data);
        }