Exemple #1
0
        public async Task ReturnTheCorrectSongsWhenThePassedQueryContainsNonEmptySearchTerm()
        {
            var expectedSongs = new[]
            {
                new Song()
                {
                    IsApproved = true, Title = "Aenean tempus"
                },
                new Song()
                {
                    IsApproved = true, Title = "Aenean elementum"
                }
            };

            var songs = new List <Song>()
            {
                new Song()
                {
                    IsApproved = true, Title = "Odio lacus"
                },
                new Song()
                {
                    IsApproved = false, Title = "Fusce eu libero"
                }
            };

            songs.AddRange(expectedSongs);

            var songsStub = songs.AsQueryable()
                            .BuildMock();

            var songRepositoryStub = new Mock <IEfRepository <Song> >();

            songRepositoryStub
            .Setup(x => x.All(It.IsAny <bool>()))
            .Returns(songsStub.Object);

            GetSongs query = new GetSongs()
            {
                PageInfo   = new PageInfo(1, 5),
                SearchInfo = new SearchInfo("aenean")
            };

            // Arrange
            GetSongsQueryService sut =
                new GetSongsQueryService(songRepositoryStub.Object);

            // Act
            IEnumerable <Song> actualSongs = await sut.ExecuteAsync(query);

            // Assert
            Assert.AreEqual(2, actualSongs.Count());
            CollectionAssert.AreEqual(expectedSongs, actualSongs);
        }
Exemple #2
0
        public async Task ReturnTheSongsOrderedByPublishDateDescendingWhenInvoked()
        {
            var expectedSongs = new[]
            {
                new Song()
                {
                    IsApproved  = true,
                    Title       = string.Empty,
                    PublishedOn = new DateTime(2000, 1, 3)
                },

                new Song()
                {
                    IsApproved  = true,
                    Title       = string.Empty,
                    PublishedOn = new DateTime(2000, 1, 2)
                },

                new Song()
                {
                    IsApproved  = true,
                    Title       = string.Empty,
                    PublishedOn = new DateTime(2000, 1, 1)
                }
            };

            var songs = expectedSongs.OrderBy(s => s.PublishedOn)
                        .AsQueryable()
                        .BuildMock();

            var songRepositoryStub = new Mock <IEfRepository <Song> >();

            songRepositoryStub
            .Setup(x => x.All(It.IsAny <bool>()))
            .Returns(songs.Object);

            GetSongs query = new GetSongs()
            {
                PageInfo   = new PageInfo(1, 5),
                SearchInfo = new SearchInfo(null)
            };

            // Arrange
            GetSongsQueryService sut =
                new GetSongsQueryService(songRepositoryStub.Object);

            // Act
            IEnumerable <Song> actualSongs = await sut.ExecuteAsync(query);

            // Assert
            CollectionAssert.AreEqual(expectedSongs, actualSongs);
        }
Exemple #3
0
        public void SavePassedSongRepositoryWhenIsNotNull()
        {
            var songRepositoryStub = new Mock <IEfRepository <Song> >();

            // Arrange && Act
            GetSongsQueryService sut =
                new GetSongsQueryService(
                    songRepository: songRepositoryStub.Object);

            // Assert
            var actualSongRepository = sut.GetType()
                                       .GetFields(BindingFlags.Instance | BindingFlags.NonPublic)
                                       .First(fi => fi.FieldType == typeof(IEfRepository <Song>))
                                       .GetValue(sut);

            Assert.AreSame(songRepositoryStub.Object, actualSongRepository);
        }
Exemple #4
0
        public async Task ReturnApprovedSongsOnlyWhenInvoked()
        {
            var songs = new[]
            {
                new Song()
                {
                    IsApproved = false, Title = string.Empty
                },
                new Song()
                {
                    IsApproved = true, Title = string.Empty
                },
                new Song()
                {
                    IsApproved = true, Title = string.Empty
                },
                new Song()
                {
                    IsApproved = true, Title = string.Empty
                },
            }
            .AsQueryable()
            .BuildMock();

            var songRepositoryStub = new Mock <IEfRepository <Song> >();

            songRepositoryStub
            .Setup(x => x.All(It.IsAny <bool>()))
            .Returns(songs.Object);

            GetSongs query = new GetSongs()
            {
                PageInfo   = new PageInfo(1, 5),
                SearchInfo = new SearchInfo(null)
            };

            // Arrange
            GetSongsQueryService sut =
                new GetSongsQueryService(songRepositoryStub.Object);

            // Act
            IEnumerable <Song> actualSongs = await sut.ExecuteAsync(query);

            // Assert
            Assert.That(actualSongs.All(s => s.IsApproved = true));
        }