public async Task Run_StopIntent_ReturnsStopResult(string requestFile)
        {
            // Arrange
            var root = TestCompositionRoot.Create();

            var requestData = root.WithInputFile($"alexa_bedtime.tests.TestData.Requests.{requestFile}");
            var request     = root.WithPostRequest(requestData);

            var logger = root.Get <ILogger>();

            // Act
            var result = await WhiteNoiseFunction.Run(request, logger);

            // Assert
            Assert.IsType <OkObjectResult>(result);
            var resultData = result.Value <AlexaResponse>();

            Assert.Equal("1.1", resultData.version);
            Assert.True(resultData.response.shouldEndSession);

            Assert.Equal("Simple", resultData.response.card.type);
            Assert.Equal("Bedtime", resultData.response.card.title);
            Assert.Equal("Enjoy your day!", resultData.response.card.content);

            var playDirective = resultData.response.directives[0];

            Assert.Equal("AudioPlayer.Stop", playDirective.type);
        }
        public async Task Run_StartIntent_ReturnsAudioPlayerResult(string requestFile)
        {
            // Arrange
            var root = TestCompositionRoot.Create();

            var requestData = root.WithInputFile($"alexa_bedtime.tests.TestData.Requests.{requestFile}");
            var request     = root.WithPostRequest(requestData);

            var logger = root.Get <ILogger>();

            // Act
            var result = await WhiteNoiseFunction.Run(request, logger);

            // Assert
            Assert.IsType <OkObjectResult>(result);
            var resultData = result.Value <AlexaResponse>();

            Assert.Equal("1.0", resultData.version);
            Assert.True(resultData.response.shouldEndSession);

            Assert.Single(resultData.response.directives);

            var playDirective = resultData.response.directives[0];

            Assert.Equal("AudioPlayer.Play", playDirective.type);
            Assert.Equal("REPLACE_ALL", playDirective.playBehavior);

            Assert.Equal("0", playDirective.audioItem.stream.token);
            Assert.Equal(0, playDirective.audioItem.stream.offsetInMilliseconds);
            Assert.Equal("https://alexabedtime.blob.core.windows.net/sounds/10-hours-rain-96bps.mp3", playDirective.audioItem.stream.url);

            AssertRequestIsLogged(root);
        }