public async Task ShouldReturnFavoriteAudioSuccessfully()
        {
            // Assign
            var target = await RunAsDefaultUserAsync();

            target.TryGetUserId(out var targetId);

            var audioFaker = new AudioFaker(targetId);
            var audios     = audioFaker
                             .Generate(3);

            InsertIntoDatabase(audios.ToArray());

            var observer = await RunAsUserAsync();

            observer.TryGetUserId(out var observerId);
            observer.TryGetUserName(out var observerUsername);

            var favoriteAudios = new List <FavoriteAudio>();

            foreach (var audio in audios)
            {
                var favoriteAudio = new FavoriteAudio
                {
                    AudioId = audio.Id,
                    UserId  = observerId,
                };

                favoriteAudios.Add(favoriteAudio);
            }
            InsertIntoDatabase(favoriteAudios.ToArray());

            // Act
            var response = await SendAsync(new GetUserFavoriteAudiosQuery
            {
                Username = observerUsername
            });

            // Assert
            response.Should().NotBeNull();
            response.Items.Count.Should().Be(3);
        }
Example #2
0
        public async Task SearchForAudiosSuccessfully()
        {
            var faker = new Faker();

            // create tags
            var tags = Enumerable.Range(1, 5)
                       .Select <int, string>(_ => faker.Random.String2(5, 10))
                       .ToList();


            // create posts
            var user = await RunAsDefaultUserAsync();

            user.TryGetUserId(out var userId);

            var audioFaker = new AudioFaker(userId)
                             .FinishWith((f, a) =>
            {
                a.Tags = new List <string> {
                    tags[0], tags[1]
                };
            });

            var audio = audioFaker.Generate();

            InsertIntoDatabase(audio);

            // Act
            var request = new SearchAudiosQuery
            {
                Q    = audio.Title,
                Tags = $"{tags[0]},{tags[1]}"
            };

            var results = await SendAsync(request);

            //Assert
            results.Should().NotBeNull();
            results.Items.Count.Should().BeGreaterThan(0);
            results.Items.Should().Contain(x => x.Id == audio.Id);
        }