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>(); artistRepo.Setup(x => x.Add(It.IsAny <Artist>())); context.Setup(x => x.SaveChanges()); var artistName = "Name"; var sut = new CreationService( songRepo.Object, artistRepo.Object, albumRepo.Object, genreRepo.Object, context.Object); // Act sut.CreateArtist(artistName); // Assert context.Verify(x => x.SaveChanges(), Times.Once); }
/// <summary> /// Basic constructor /// </summary> /// <param name="creationService"></param> /// <param name="creationRepository"></param> /// <param name="gameLevelService"></param> public GameService(CreationService creationService, CreationRepository creationRepository, GameLevelService gameLevelService) { this.creationService = creationService; this.creationRepository = creationRepository; this.gameLevelService = gameLevelService; }
public EventManagementController( ISearchService searchService, DeletionService deletionService, CreationService creationService, EditService editService, IHostingEnvironment hostingEnvironment) { _searchService = searchService; _deletionService = deletionService; _creationService = creationService; _editService = editService; _hostingEnvironment = hostingEnvironment; }
public void CallArtistRepoPropertyAllOnce_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 albumName = "Album Name"; int?duration = 5; var lyrics = "Lyrics"; var videoUrl = "VideUrl"; var selectedGenres = new List <string>() { "Genre Name" }; var artistCollection = new List <Artist>() { new Artist() { Name = artistName } }; artistRepo.Setup(x => x.All).Returns(() => artistCollection.AsQueryable()); var sut = new CreationService( songRepo.Object, artistRepo.Object, albumRepo.Object, genreRepo.Object, context.Object); // Act sut.CreateSong(title, artistName, albumName, duration, selectedGenres, lyrics, videoUrl); // Assert artistRepo.Verify(x => x.All, Times.Once); }
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); }
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); }
static void Main(string[] args) { var connectionString = ConnectionService.CreateConnectionString("127.0.0.1", "root", "pass"); using (ConnectionService connectionService = new ConnectionService(connectionString)) { var dbCreationService = new CreationService(connectionService.Connection, "meetup"); var dbSeedService = new SeedService(connectionService.Connection); } // ########## scenario 1: website ########## // list all groups: SELECT g.id, g.name FROM `group` AS g // list a certain group: SELECT * FROM `group` AS g WHERE g.id = 973292; // list all events: SELECT g.id, g.name FROM `group` AS g LIMIT 1000; // list a certain event: SELECT * FROM event AS e WHERE e.id = 8627496; // ########## scenario 2: visualization ########## // rsvps of a single group (0.047s) /* * SELECT g.name, YEAR(e.created), MONTH(e.created), SUM(e.yes_rsvp_count) * FROM event AS e * JOIN `group` AS g ON g.id = e.group_id * WHERE e.group_id = 6510 * GROUP BY YEAR(e.created), MONTH(e.created); */ // rsvps of all groups (347s) /* * SELECT g.name, YEAR(e.created), MONTH(e.created), SUM(e.yes_rsvp_count) * FROM event AS e * JOIN `group` AS g ON g.id = e.group_id * GROUP BY g.id, YEAR(e.created), MONTH(e.created); */ // rsvps of a single category (20s) // moving around the join order does not improve query time ... obviously the database is optimizing the query for us /* * SELECT c.shortname, YEAR(e.created), MONTH(e.created), SUM(e.yes_rsvp_count) * FROM event AS e * JOIN `group` AS g ON g.id = e.group_id * JOIN `category` AS c ON c.id = g.category_id * WHERE c.id = 9 * GROUP BY c.id, YEAR(e.created), MONTH(e.created); */ // rsvps of a all categories (260s) /* * SELECT c.shortname, YEAR(e.created), MONTH(e.created), SUM(e.yes_rsvp_count) * FROM event AS e * JOIN `group` AS g ON g.id = e.group_id * JOIN `category` AS c ON c.id = g.category_id * GROUP BY c.Id, YEAR(e.created), MONTH(e.created) * */ Console.ReadLine(); // prevents application from closing }