Esempio n. 1
0
        public void CallContextSaveChangesOnce_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 title      = "Title";
            var artistName = "Artist Name";
            var coverUrl   = "CoverUrl";

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

            artistRepo.Setup(x => x.All).Returns(() => artistCollection.AsQueryable());
            artistRepo.Setup(x => x.Add(It.IsAny <Artist>()));
            albumRepo.Setup(x => x.Add(It.IsAny <Album>()));
            context.Setup(x => x.SaveChanges());

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

            // Act
            sut.CreateAlbum(title, artistName, coverUrl);

            // Assert
            context.Verify(x => x.SaveChanges(), Times.Once);
        }
Esempio n. 2
0
        public void CallCreateArtist_IfArtistRepoDoesNotFindArtistWithGivenName()
        {
            // 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 title      = "Title";
            var artistName = "Artist Name";
            var coverUrl   = "CoverUrl";

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

            artistRepo.Setup(x => x.All).Returns(() => artistCollection.AsQueryable());
            artistRepo.Setup(x => x.Add(It.IsAny <Artist>()));

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

            // Act
            sut.CreateAlbum(title, artistName, coverUrl);

            // Assert
            artistRepo.Verify(x => x.Add(It.IsAny <Artist>()), Times.Once);
        }