public static void CreateUserAsync_UsernameNotAlreadyExists_CreatesUser(bool isAdmin, bool isGuest, bool canJukebox) { var dbConnection = OpenSqliteDatabase(); var dbContextOptionsBuilder = new DbContextOptionsBuilder <MediaInfoContext>() .DisableClientSideEvaluation() .UseSqlite(dbConnection); using (var dbContext = new MediaInfoContext(dbContextOptionsBuilder.Options)) { const string username = "******"; const string password = "******"; int userId = RestApiQueries.CreateUserAsync(dbContext, username, password, isAdmin, isGuest, canJukebox, CancellationToken.None).GetAwaiter().GetResult(); var users = dbContext.Users.Local.Where(u => u.UserId == userId).ToArray(); dbContext.SaveChanges(); var user = Assert.Single(users); Assert.Equal(username, user.Name); Assert.Equal(password, user.Password); Assert.Equal(128_000, user.MaxBitRate); Assert.Equal(isAdmin, user.IsAdmin); Assert.Equal(isGuest, user.IsGuest); Assert.Equal(canJukebox, user.CanJukebox); Assert.Empty(dbContext.LibraryUsers.Where(lu => lu.UserId == user.UserId)); Assert.Empty(dbContext.Playlists.Where(p => p.UserId == user.UserId)); } }
public static void CreateUserAsync_UsernameAlreadyExists_ThrowsGenericError() { 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(); var ex = Assert.Throws <RestApiErrorException>(() => { return(RestApiQueries.CreateUserAsync(dbContext, user.Name, "password", false, false, false, CancellationToken.None).GetAwaiter().GetResult()); }); var expectedException = RestApiErrorException.GenericError("User already exists."); Assert.Equal(expectedException.Message, ex.Message); Assert.Equal(expectedException.Code, ex.Code); } }