added more tests and a roles option parameter to getOrCreateUserFromProvider