public void ShouldReturnPlaylists() { SqlLiteDatabaseTest(options => { var playListService = _server.Host.Services.GetService(typeof(IPlaylistService)) as IPlaylistService; using (var context = new PlayCatDbContext(options)) { playListService.SetDbContext(context); Guid userId = GetUserId(context); //create general DataModel.Playlist playlist = context.CreatePlaylist(true, userId, null, 0); DataModel.Playlist playlist1 = context.CreatePlaylist(false, userId, "playlist1", 0); DataModel.Playlist playlist2 = context.CreatePlaylist(false, userId, "playlist2", 0); DataModel.Playlist playlist3 = context.CreatePlaylist(false, userId, "playlist3", 0); context.SaveChanges(); UserPlaylistsResult result = playListService.GetUserPlaylists(userId, null, 0, 10); CheckIfSuccess(result); Assert.Equal(4, result.Playlists.Count()); Assert.True(result.Playlists.All(x => !x.Audios.Any())); } }); }
public void ShouldDeletePlaylist() { SqlLiteDatabaseTest(options => { var playListService = _server.Host.Services.GetService(typeof(IPlaylistService)) as IPlaylistService; using (var context = new PlayCatDbContext(options)) { playListService.SetDbContext(context); Guid userId = GetUserId(context); //create general DataModel.Playlist generalPlaylist = context.CreatePlaylist(true, userId, null, 0); DataModel.Playlist playlist = context.CreatePlaylist(false, userId, "My playlist", 0); CreateAndAddAudio(context, playlist.Id, 10); context.SaveChanges(); Assert.Equal(context.AudioPlaylists.Count(), 10); var result = playListService.DeletePlaylist(userId, playlist.Id); CheckIfSuccess(result); Assert.Equal(context.AudioPlaylists.Count(), 0); } }); }
public void ShouldAddToPlaylist() { SqlLiteDatabaseTest(options => { var audioService = _server.Host.Services.GetService(typeof(IAudioService)) as IAudioService; using (var context = new PlayCatDbContext(options)) { audioService.SetDbContext(context); Guid userId = GetUserId(context); DataModel.Playlist generalPlaylist = context.CreatePlaylist(true, userId, null, 0); CreateAndAddAudio(context, generalPlaylist.Id, 10); DataModel.Playlist playlist = context.CreatePlaylist(false, userId, "Rock", 0); context.SaveChanges(); var audio = context.Audios.FirstOrDefault(); var result = audioService.AddToPlaylist(userId, new AddRemovePlaylistRequest() { AudioId = audio.Id, PlaylistId = playlist.Id, }); var audioPlaylists = context.AudioPlaylists.ToList(); var addedAP = audioPlaylists.FirstOrDefault(x => x.PlaylistId == playlist.Id); CheckIfSuccess(result); Assert.Equal(audioPlaylists.Count, 11); Assert.NotNull(addedAP); Assert.Equal(addedAP.AudioId, audio.Id); } }); }
public void ShouldUpdatePlaylist() { SqlLiteDatabaseTest(options => { var playListService = _server.Host.Services.GetService(typeof(IPlaylistService)) as IPlaylistService; using (var context = new PlayCatDbContext(options)) { playListService.SetDbContext(context); Guid userId = GetUserId(context); //create general DataModel.Playlist playlist = context.CreatePlaylist(true, userId, null, 0); var updatePlaylist = context.CreatePlaylist(false, userId, "Top", 0); context.SaveChanges(); string newTitle = "New title"; var result = playListService.UpdatePlaylist(userId, new UpdatePlaylistRequest() { Title = newTitle, PlaylistId = updatePlaylist.Id, }); CheckIfSuccess(result); var playlists = context.Playlists.ToList(); Assert.True(playlists.Any(x => x.Title == newTitle && !x.IsGeneral)); } }); }
public void ShouldFailAddToPlaylistNotOwner() { SqlLiteDatabaseTest(options => { var audioService = _server.Host.Services.GetService(typeof(IAudioService)) as IAudioService; using (var context = new PlayCatDbContext(options)) { audioService.SetDbContext(context); Guid userId = GetUserId(context); DataModel.Playlist generalPlaylist = context.CreatePlaylist(true, userId, null, 0); DataModel.Playlist playlist = context.CreatePlaylist(false, userId, "Rock", 0); CreateAndAddAudio(context, playlist.Id, 1); context.SaveChanges(); var audio = context.Audios.FirstOrDefault(); var result = audioService.AddToPlaylist(Guid.Empty, new AddRemovePlaylistRequest() { AudioId = audio.Id, PlaylistId = playlist.Id, }); CheckIfFail(result); Assert.True(result.Info.Any()); } }); }
public void ShouldFailUpdateOnWrongPlaylistId() { SqlLiteDatabaseTest(options => { var playListService = _server.Host.Services.GetService(typeof(IPlaylistService)) as IPlaylistService; using (var context = new PlayCatDbContext(options)) { playListService.SetDbContext(context); Guid userId = GetUserId(context); //create general DataModel.Playlist playlist = context.CreatePlaylist(true, userId, null, 0); string newTitle = "New title"; var updatePlaylist = context.CreatePlaylist(false, userId, "Top", 0); context.SaveChanges(); var result = playListService.UpdatePlaylist(userId, new UpdatePlaylistRequest() { PlaylistId = Guid.Empty, Title = newTitle, }); CheckIfFail(result); Assert.Equal("Playlist not found", result.Info); } }); }
public void ShouldRemoveFromPlaylist() { SqlLiteDatabaseTest(options => { var audioService = _server.Host.Services.GetService(typeof(IAudioService)) as IAudioService; using (var context = new PlayCatDbContext(options)) { audioService.SetDbContext(context); Guid userId = GetUserId(context); Playlist generalPlaylist = context.CreatePlaylist(true, userId, null, 0); Playlist playlist = context.CreatePlaylist(false, userId, "Rock", 0); CreateAndAddAudio(context, playlist.Id, 1); context.SaveChanges(); var audio = context.Audios.FirstOrDefault(); var result = audioService.RemoveFromPlaylist(userId, new AddRemovePlaylistRequest { AudioId = audio.Id, PlaylistId = playlist.Id }); CheckIfSuccess(result); Assert.Equal(context.AudioPlaylists.Count(), 0); } }); }
public void ShouldRemoveIfAudioNotExists() { SqlLiteDatabaseTest(options => { var audioService = _server.Host.Services.GetService(typeof(IAudioService)) as IAudioService; using (var context = new PlayCatDbContext(options)) { audioService.SetDbContext(context); Guid userId = GetUserId(context); DataModel.Playlist generalPlaylist = context.CreatePlaylist(true, userId, null, 0); DataModel.Playlist playlist = context.CreatePlaylist(false, userId, "Rock", 0); context.SaveChanges(); var result = audioService.RemoveFromPlaylist(userId, new AddRemovePlaylistRequest() { AudioId = Guid.Empty, PlaylistId = playlist.Id, }); CheckIfSuccess(result); } }); }
public void ShouldReturnGeneralPlaylist() { SqlLiteDatabaseTest(options => { var playListService = _server.Host.Services.GetService(typeof(IPlaylistService)) as IPlaylistService; using (var context = new PlayCatDbContext(options)) { playListService.SetDbContext(context); Guid userId = GetUserId(context); DataModel.Playlist playlist = context.CreatePlaylist(true, userId, null, 0); DataModel.Playlist playlist2 = context.CreatePlaylist(false, userId, "Rock", 0); DataModel.Playlist playlist3 = context.CreatePlaylist(false, userId, "RnB", 0); CreateAndAddAudio(context, playlist3.Id, 10); context.SaveChanges(); UserPlaylistsResult result = playListService.GetUserPlaylists(userId, playlist3.Id, 0, 10); CheckIfSuccess(result); Assert.True(result.Playlists.Where(x => x.Id != playlist3.Id).All(x => !x.Audios.Any())); Assert.Equal(10, result.Playlists.FirstOrDefault(x => x.Id == playlist3.Id).Audios.Count()); } }); }
public void IsGetAllAudios(int count, int skip, int take, int actualCount) { SqlLiteDatabaseTest(options => { var playListService = _server.Host.Services.GetService(typeof(IPlaylistService)) as IPlaylistService; using (var context = new PlayCatDbContext(options)) { playListService.SetDbContext(context); Guid userId = GetUserId(context); DataModel.Playlist playlist = context.CreatePlaylist(true, userId, null, 0); CreateAndAddAudio(context, playlist.Id, count); context.SaveChanges(); UserPlaylistsResult result = playListService.GetUserPlaylists(userId, playlist.Id, skip, take); CheckIfSuccess(result); Assert.Equal(playlist.Id, result.Playlists.FirstOrDefault().Id); Assert.Equal(playlist.Title, result.Playlists.FirstOrDefault().Title); Assert.Equal(actualCount, result.Playlists.FirstOrDefault().Audios.Count()); } }); }
public void ShouldReturnNotGeneralPlaylist() { SqlLiteDatabaseTest(options => { var playListService = _server.Host.Services.GetService(typeof(IPlaylistService)) as IPlaylistService; using (var context = new PlayCatDbContext(options)) { playListService.SetDbContext(context); Guid userId = GetUserId(context); DataModel.Playlist playlist = context.CreatePlaylist(false, userId, "My playlist", 0); CreateAndAddAudio(context, playlist.Id, 10); context.SaveChanges(); UserPlaylistsResult result = playListService.GetUserPlaylists(userId, playlist.Id, 0, 10); CheckIfSuccess(result); Assert.Equal(playlist.Id, result.Playlists.FirstOrDefault().Id); Assert.Equal(playlist.Title, result.Playlists.FirstOrDefault().Title); Assert.Equal(10, result.Playlists.FirstOrDefault().Audios.Count()); } }); }
public void IsDescendingOrder() { SqlLiteDatabaseTest(options => { var playListService = _server.Host.Services.GetService(typeof(IPlaylistService)) as IPlaylistService; using (var context = new PlayCatDbContext(options)) { playListService.SetDbContext(context); Guid userId = GetUserId(context); DataModel.Playlist playlist = context.CreatePlaylist(true, userId, null, 0); CreateAndAddAudio(context, playlist.Id, 5); context.SaveChanges(); UserPlaylistsResult result = playListService.GetUserPlaylists(userId, playlist.Id, 0, 5); CheckIfSuccess(result); Assert.Equal(playlist.Id, result.Playlists.FirstOrDefault().Id); Assert.Equal(playlist.Title, result.Playlists.FirstOrDefault().Title); Assert.Equal(1, result.Playlists.Count()); Assert.Equal(5, result.Playlists.FirstOrDefault().Audios.Count()); for (int i = 0; i < 4; i++) { Assert.True(result.Playlists.FirstOrDefault().Audios.ElementAt(i).DateAdded > result.Playlists.FirstOrDefault().Audios.ElementAt(i + 1).DateAdded); } } }); }
public void ShouldFailCreatePlaylist() { SqlLiteDatabaseTest(options => { var playListService = _server.Host.Services.GetService(typeof(IPlaylistService)) as IPlaylistService; using (var context = new PlayCatDbContext(options)) { playListService.SetDbContext(context); Guid userId = GetUserId(context); //create general DataModel.Playlist playlist = context.CreatePlaylist(true, userId, null, 0); context.SaveChanges(); var result = playListService.CreatePlaylist(userId, new CreatePlaylistRequest() { Title = "13", }); CheckIfFail(result); } }); }
private new Guid GetUserId(PlayCatDbContext context) { string password = "******"; string email = "*****@*****.**"; User user = context.CreateUser(email, "test", "test", "m", password); Playlist playlist = context.CreatePlaylist(true, user.Id, "General", 0); AuthToken authToken = context.CreateToken(DateTime.Now.AddDays(-1), false, user.Id); context.SaveChanges(); return(user.Id); }
public void ShouldFailOnAlreadyUpload() { SqlLiteDatabaseTest(options => { var uploadService = _server.Host.Services.GetService(typeof(IUploadService)) as IUploadService; var fileResolver = _server.Host.Services.GetService(typeof(IFileResolver)) as IFileResolver; using (var context = new PlayCatDbContext(options)) { uploadService.SetDbContext(context); string youtubeUrl = "https://www.youtube.com/watch?v=yPYZpwSpKmA"; var request = new UrlRequest() { Url = youtubeUrl, }; GetInfoResult result = uploadService.GetInfo(request); CheckIfSuccess(result); Guid userId = GetUserId(context); context.CreatePlaylist(true, userId, null, 0); context.SaveChanges(); Assert.NotNull(result.UrlInfo); Assert.Equal("Rick Astley", result.UrlInfo.Artist); Assert.Equal("Together Forever", result.UrlInfo.Song); var uploadResult = uploadService.UploadAudioAsync(userId, new UploadAudioRequest() { Artist = "Rick Astley", Song = "Together Forever", Url = youtubeUrl, }).Result; CheckIfSuccess(uploadResult); string audioFilePath = fileResolver.GetAudioFolderPath(StorageType.FileSystem); File.Delete(Path.Combine(audioFilePath, "yPYZpwSpKmA.mp3")); GetInfoResult checkAgainResult = uploadService.GetInfo(request); CheckIfFail(checkAgainResult); Assert.Equal("Video already uploaded", checkAgainResult.Info); } }); }
public void ShouldDeleteFailOnRemoveNotOwnedPlaylist() { SqlLiteDatabaseTest(options => { var playListService = _server.Host.Services.GetService(typeof(IPlaylistService)) as IPlaylistService; using (var context = new PlayCatDbContext(options)) { playListService.SetDbContext(context); Guid userId = GetUserId(context); //create general DataModel.Playlist generalPlaylist = context.CreatePlaylist(true, userId, null, 0); DataModel.Playlist playlist = context.CreatePlaylist(false, userId, "My playlsit", 0); context.SaveChanges(); var result = playListService.DeletePlaylist(Guid.Empty, playlist.Id); CheckIfFail(result); Assert.True(result.Info.Any()); } }); }
private new Guid GetUserId(PlayCatDbContext context) { var inviteService = _server.Host.Services.GetService(typeof(IInviteService)) as IInviteService; string password = "******"; string email = "*****@*****.**"; DataModel.User user = context.CreateUser(email, "test", "test", "m", password, inviteService.GenerateInvite()); DataModel.Playlist playlist = context.CreatePlaylist(true, user.Id, "General", 0); DataModel.AuthToken authToken = context.CreateToken(DateTime.Now.AddDays(-1), false, user.Id); context.SaveChanges(); return(user.Id); }
public void ShouldFailDeleteOnWrongPlaylistId() { SqlLiteDatabaseTest(options => { var playListService = _server.Host.Services.GetService(typeof(IPlaylistService)) as IPlaylistService; using (var context = new PlayCatDbContext(options)) { playListService.SetDbContext(context); Guid userId = GetUserId(context); //create general DataModels.Playlist playlist = context.CreatePlaylist(true, userId, null, 0); context.SaveChanges(); var result = playListService.DeletePlaylist(userId, Guid.Empty); CheckIfFail(result); Assert.Equal("Playlist not found", result.Info); } }); }
public void ShouldEmptyOnWrongId() { SqlLiteDatabaseTest(options => { var audioService = _server.Host.Services.GetService(typeof(IAudioService)) as IAudioService; using (var context = new PlayCatDbContext(options)) { audioService.SetDbContext(context); Guid userId = GetUserId(context); DataModel.Playlist playlist = context.CreatePlaylist(true, userId, null, 0); CreateAndAddAudio(context, playlist.Id, 10); context.SaveChanges(); AudioResult result = audioService.GetAudios(Guid.Empty, 0, 10); CheckIfSuccess(result); Assert.Equal(0, result.Audios.Count()); } }); }
public void ShouldReturnAudios(int count, int skip, int take, int actual) { SqlLiteDatabaseTest(options => { var audioService = _server.Host.Services.GetService(typeof(IAudioService)) as IAudioService; using (var context = new PlayCatDbContext(options)) { audioService.SetDbContext(context); Guid userId = GetUserId(context); DataModel.Playlist playlist = context.CreatePlaylist(true, userId, null, 0); CreateAndAddAudio(context, playlist.Id, count); context.SaveChanges(); AudioResult result = audioService.GetAudios(playlist.Id, skip, take); CheckIfSuccess(result); Assert.Equal(actual, result.Audios.Count()); } }); }