public async void Play_song_request__find_requested_song__found_multiple() { // Arrange IEnumerable <SongModel.Song> foundDynamodbSongs = new List <SongModel.Song> { SongFixtures.Song1, SongFixtures.Song2, SongFixtures.Song3 }; Mock <ICommonDependencyProvider> provider = new Mock <ICommonDependencyProvider>(MockBehavior.Strict); Mock <IAmazonSQS> sqsClient = new Mock <IAmazonSQS>(MockBehavior.Strict); Mock <IDynamodbDependencyProvider> dynamodbProvider = new Mock <IDynamodbDependencyProvider>(MockBehavior.Strict); dynamodbProvider.Setup(x => x.DynamoDbFindSongsByNumberAsync("328")).Returns(Task.FromResult(foundDynamodbSongs)); var playSongRequest = new PlaySongNumberRequest(provider.Object, sqsClient.Object, "http://foo-bar", dynamodbProvider.Object); playSongRequest.SongRequested = SongFixtures.Song1; // Act await playSongRequest.FindRequestedSong(); // Assert Assert.Equal("I Will Wait", playSongRequest.FoundSongs.ToList().FirstOrDefault().Title); Assert.Equal("Mumford & Sons", playSongRequest.FoundSongs.ToList().FirstOrDefault().Artist); Assert.Equal("328", playSongRequest.FoundSongs.ToList().FirstOrDefault().SongNumber); }
public async Task Play_song_request__handle_request() { // Arrange var customSkillRequest = new CustomSkillRequest { Intent = new Intent { Name = "PlaySongNumberRequest", Slots = new Dictionary <string, Slot> { { "SongNumber", new Slot { Name = "SongNumber", Value = "328" } } } }, DialogState = "STARTED", Type = "PlaySongTitleArtistRequest" }; // mock dependency provider common Mock <ICommonDependencyProvider> provider = new Mock <ICommonDependencyProvider>(MockBehavior.Strict); // mock dependency provider sqs var request = new JukeboxSqsRequest { Key = "328", MessageBody = "foo-bar", RequestType = "PlaySongNumberRequest" }; var sendMessageRequest = new SendMessageRequest { QueueUrl = "http://foo-bar", MessageGroupId = "bat-baz", MessageDeduplicationId = "foo-date", MessageBody = JsonConvert.SerializeObject(request) }; Mock <IAmazonSQS> sqsClient = new Mock <IAmazonSQS>(MockBehavior.Strict); sqsClient.Setup(x => x.SendMessageAsync(sendMessageRequest, new CancellationToken())); // mock dependency provider dynamodb IEnumerable <SongModel.Song> foundDynamodbSongs = new List <SongModel.Song> { SongFixtures.Song1 }; Mock <IDynamodbDependencyProvider> dynamodbProvider = new Mock <IDynamodbDependencyProvider>(MockBehavior.Strict); dynamodbProvider.Setup(x => x.DynamoDbFindSongsByNumberAsync("328")).Returns(Task.FromResult(foundDynamodbSongs)); var playSongRequest = new PlaySongNumberRequest(provider.Object, sqsClient.Object, "http://foo-bar", dynamodbProvider.Object); // Act var response = await playSongRequest.HandleRequest(customSkillRequest); // Assert Assert.Contains("Sending song number 328", response.Message); }
public void Play_song_request__generate_message__found_no_song() { // Arrange Mock <ICommonDependencyProvider> provider = new Mock <ICommonDependencyProvider>(MockBehavior.Strict); Mock <IDynamodbDependencyProvider> dynamodbProvider = new Mock <IDynamodbDependencyProvider>(MockBehavior.Strict); Mock <IAmazonSQS> sqsClient = new Mock <IAmazonSQS>(MockBehavior.Strict); var playSongRequest = new PlaySongNumberRequest(provider.Object, sqsClient.Object, "http://foo-bar", dynamodbProvider.Object); playSongRequest.SongRequested = SongFixtures.Song1; playSongRequest.FoundSongs = new List <SongModel.Song>(); // Act var response = playSongRequest.GenerateMessage(); // Assert Assert.Contains("No song found for 328", response); }
public static void Play_song_request__is_valid_request__invalid() { // Arrange var tempSongFixtures = new SongFixtures(); Mock <ICommonDependencyProvider> provider = new Mock <ICommonDependencyProvider>(MockBehavior.Strict); Mock <IDynamodbDependencyProvider> dynamodbProvider = new Mock <IDynamodbDependencyProvider>(MockBehavior.Strict); Mock <IAmazonSQS> sqsClient = new Mock <IAmazonSQS>(MockBehavior.Strict); var playSongRequest = new PlaySongNumberRequest(provider.Object, sqsClient.Object, "http://foo-bar", dynamodbProvider.Object); playSongRequest.SongRequested = tempSongFixtures.Song1; playSongRequest.SongRequested.Artist = ""; playSongRequest.SongRequested.SongNumber = ""; // Act var response = playSongRequest.IsValidRequest(); // Assert Assert.False(response); }
public static void Play_song_request__get_song_info_requested__found_no_slots() { // Arrange Mock <ICommonDependencyProvider> provider = new Mock <ICommonDependencyProvider>(MockBehavior.Strict); Mock <IDynamodbDependencyProvider> dynamodbProvider = new Mock <IDynamodbDependencyProvider>(MockBehavior.Strict); Mock <IAmazonSQS> sqsClient = new Mock <IAmazonSQS>(MockBehavior.Strict); var playSongRequest = new PlaySongNumberRequest(provider.Object, sqsClient.Object, "http://foo-bar", dynamodbProvider.Object); var intentSlots = new Dictionary <string, Slot> { { "Title", new Slot { Name = "Title", Value = "I Will Wait" } } }; // Act playSongRequest.GetSongInfoRequested(intentSlots); // Assert Assert.Null(playSongRequest.SongRequested.Title); Assert.Null(playSongRequest.SongRequested.Artist); Assert.Null(playSongRequest.SongRequested.SongNumber); }