示例#1
0
            public static void CreatePlaylistAsync_Always_CreatesPlaylist()
            {
                var dbConnection = OpenSqliteDatabase();

                var dbContextOptionsBuilder = new DbContextOptionsBuilder <MediaInfoContext>()
                                              .DisableClientSideEvaluation()
                                              .UseSqlite(dbConnection);

                using (var dbContext = new MediaInfoContext(dbContextOptionsBuilder.Options))
                {
                    var random = new RandomPopulator(dbContext);
                    var user   = random.AddUser();
                    dbContext.SaveChanges();

                    const string playlistName = "playlistName";

                    int playlistId = RestApiQueries.CreatePlaylistAsync(dbContext, user.UserId, playlistName, CancellationToken.None).GetAwaiter().GetResult();
                    var playlists  = dbContext.Playlists.Local.Where(p => p.PlaylistId == playlistId).ToArray();
                    dbContext.SaveChanges();

                    var playlist = Assert.Single(playlists);
                    Assert.Equal(user.UserId, playlist.UserId);
                    Assert.Equal(playlistName, playlist.Name);
                    Assert.Null(playlist.Description);
                    Assert.False(playlist.IsPublic);
                    Assert.InRange(playlist.Created, DateTime.UtcNow - TimeSpan.FromSeconds(30), DateTime.UtcNow);
                    Assert.InRange(playlist.Modified, playlist.Created, playlist.Created + TimeSpan.FromSeconds(1));
                    Assert.Empty(dbContext.PlaylistTracks.Where(pt => pt.PlaylistId == playlist.PlaylistId));
                }
            }