コード例 #1
0
        public void CallSongRepoAllPropertyOnce_WhenInvoked()
        {
            // Arrange
            var songRepo   = new Mock <IEfContextWrapper <Song> >();
            var artistRepo = new Mock <IEfContextWrapper <Artist> >();
            var albumRepo  = new Mock <IEfContextWrapper <Album> >();
            var genreRepo  = new Mock <IEfContextWrapper <Genre> >();
            var context    = new Mock <ISaveContext>();

            var id             = Guid.NewGuid();
            var songTitle      = "Song Title";
            var songCollection = new List <Song>()
            {
                new Song()
                {
                    Title = songTitle,
                    Id    = id
                }
            };

            songRepo.Setup(x => x.All).Returns(() => songCollection.AsQueryable());

            var sut = new SongModifyService(
                songRepo.Object,
                artistRepo.Object,
                albumRepo.Object,
                genreRepo.Object,
                context.Object);

            // Act
            sut.DeleteSong(id);

            // Assert
            songRepo.Verify(x => x.All, Times.Once);
        }
コード例 #2
0
        public void CallArtistRepoPropertyAll_WhenInvoked()
        {
            // Arrange
            var songRepo   = new Mock <IEfContextWrapper <Song> >();
            var artistRepo = new Mock <IEfContextWrapper <Artist> >();
            var albumRepo  = new Mock <IEfContextWrapper <Album> >();
            var genreRepo  = new Mock <IEfContextWrapper <Genre> >();
            var context    = new Mock <ISaveContext>();

            var id       = Guid.NewGuid();
            int?duration = 5;
            var lyrics   = "Lyrics";
            var videoUrl = "VideoUrl";
            var coverUrl = "CoverUrl";
            var genres   = new List <string>()
            {
                "Genre Name"
            };

            var songTitle      = "Song Title";
            var songCollection = new List <Song>()
            {
                new Song()
                {
                    Title = songTitle,
                    Id    = id
                }
            };

            var artistName       = "Artist Name";
            var artistCollection = new List <Artist>()
            {
                new Artist()
                {
                    Name = artistName
                }
            };

            var albumTitle      = "Album Title";
            var albumCollection = new List <Album>()
            {
                new Album()
                {
                    Title = albumTitle
                }
            };

            var genreName       = "Genre Name";
            var genreCollection = new List <Genre>()
            {
                new Genre()
                {
                    Name = genreName
                }
            };

            genreRepo.Setup(x => x.All).Returns(() => genreCollection.AsQueryable());
            albumRepo.Setup(x => x.All).Returns(() => albumCollection.AsQueryable());
            artistRepo.Setup(x => x.All).Returns(() => artistCollection.AsQueryable());
            songRepo.Setup(x => x.All).Returns(() => songCollection.AsQueryable());

            var sut = new SongModifyService(
                songRepo.Object,
                artistRepo.Object,
                albumRepo.Object,
                genreRepo.Object,
                context.Object);

            // Act
            sut.UpdateSong(id, songTitle, artistName, albumTitle, duration, genres, lyrics, videoUrl, coverUrl);

            // Assert
            artistRepo.Verify(x => x.All, Times.Once);
        }
コード例 #3
0
        public void AssingSongPropertiesCorrectly_WhenInvoked()
        {
            // Arrange
            var songRepo   = new Mock <IEfContextWrapper <Song> >();
            var artistRepo = new Mock <IEfContextWrapper <Artist> >();
            var albumRepo  = new Mock <IEfContextWrapper <Album> >();
            var genreRepo  = new Mock <IEfContextWrapper <Genre> >();
            var context    = new Mock <ISaveContext>();

            var id       = Guid.NewGuid();
            int?duration = 5;
            var lyrics   = "Lyrics";
            var videoUrl = "VideoUrl";
            var coverUrl = "CoverUrl";
            var genres   = new List <string>()
            {
                "Genre Name"
            };

            var songTitle      = "Song Title";
            var songCollection = new List <Song>()
            {
                new Song()
                {
                    Title = songTitle,
                    Id    = id
                }
            };

            var artistName       = "Artist Name";
            var artistCollection = new List <Artist>()
            {
                new Artist()
                {
                    Name = artistName
                }
            };

            var albumTitle      = "Album Title";
            var albumCollection = new List <Album>()
            {
                new Album()
                {
                    Title = albumTitle
                }
            };

            var genreName       = "Genre Name";
            var genreCollection = new HashSet <Genre>()
            {
                new Genre()
                {
                    Name = genreName
                }
            };

            genreRepo.Setup(x => x.All).Returns(() => genreCollection.AsQueryable());
            albumRepo.Setup(x => x.All).Returns(() => albumCollection.AsQueryable());
            artistRepo.Setup(x => x.All).Returns(() => artistCollection.AsQueryable());
            songRepo.Setup(x => x.All).Returns(() => songCollection.AsQueryable());

            var sut = new SongModifyService(
                songRepo.Object,
                artistRepo.Object,
                albumRepo.Object,
                genreRepo.Object,
                context.Object);

            // Act
            sut.UpdateSong(id, songTitle, artistName, albumTitle, duration, genres, lyrics, videoUrl, coverUrl);

            // Assert
            var song = songRepo.Object.All.FirstOrDefault();

            Assert.AreEqual(id, song.Id);
            Assert.AreEqual(songTitle, song.Title);
            Assert.AreEqual(artistName, song.Artist.Name);
            Assert.AreEqual(albumTitle, song.Album.Title);
            Assert.AreEqual(duration, song.Duration);
            // TODO: Fix unknown problem with genre assign
            //Assert.AreEqual(genres[0], song.Genres.FirstOrDefault().Name);
            Assert.AreEqual(lyrics, song.Lyrics);
            Assert.AreEqual(videoUrl, song.VideoUrl);
            Assert.AreEqual(coverUrl, song.Album.CoverUrl);
        }