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

            var result = await controller.AddLightScene(newLightScene);

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

            var result = await controller.AddLightScene(newLightScene);

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

            var createdResult = Assert.IsType <CreatedAtActionResult>(result.Result);
            var scene         = Assert.IsType <LightScene>(createdResult.Value);

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