/// <summary> /// Constructor. /// </summary> public UserService( DatabaseContext dbContext, IIdentityProvider identityProvider, IGitHubUserClient gitHubUserClient, IGitHubOrganizationClient gitHubOrgClient, IGitHubTeamClient gitHubTeamClient, IEmailProvider emailProvider, ActivationToken activationToken) { _dbContext = dbContext; _identityProvider = identityProvider; _gitHubUserClient = gitHubUserClient; _gitHubOrgClient = gitHubOrgClient; _gitHubTeamClient = gitHubTeamClient; _emailProvider = emailProvider; _activationToken = activationToken; }
public async Task RegisterFirstSuperUserAsync_ValidRegistration_Successful() { var database = new TestDatabaseBuilder().Build(); var modelErrors = new MockErrorCollection(); var activationToken = new ActivationToken("ActivationToken"); var gitHubUserClient = GetMockGitHubUserClient(userExists: true); var identityProvider = GetMockIdentityProvider(GetIdentity("User1")); var userService = GetUserService ( database.Context, identityProvider.Object, gitHubUserClient.Object, activationToken: activationToken ); var result = await userService.RegisterFirstSuperUserAsync ( new SuperUserRegistration() { LastName = "LastName", FirstName = "FirstName", ActivationToken = "ActivationToken", GitHubLogin = "******", EmailAddress = "EmailAddress" }, modelErrors ); database.Reload(); var user = database.Context.Users.Single(); Assert.Equal(RegisterNewUserResult.Success, result); Assert.False(modelErrors.HasErrors); Assert.Equal(1, database.Context.Users.Count()); Assert.Equal("LastName", user.LastName); Assert.Equal("FirstName", user.FirstName); Assert.Equal("User1Id", user.UniqueId); Assert.Equal("User1", user.UserName); Assert.Equal("GitHubUser", user.GitHubLogin); Assert.Equal("EmailAddress", user.EmailAddress); Assert.True(user.EmailAddressConfirmed); Assert.True(user.SuperUser); }
public async Task RegisterFirstSuperUserAsync_WrongActivationToken_DoesNotRegister() { var database = new TestDatabaseBuilder().Build(); var modelErrors = new MockErrorCollection(); var activationToken = new ActivationToken("ActivationToken"); var userService = GetUserService ( database.Context, activationToken: activationToken ); var result = await userService.RegisterFirstSuperUserAsync ( new SuperUserRegistration() { ActivationToken = "Wrong" }, modelErrors ); Assert.Equal(RegisterNewUserResult.Failed, result); Assert.True(modelErrors.VerifyErrors("ActivationToken")); Assert.Equal(0, database.Context.Users.Count()); }
public async Task RegisterFirstSuperUserAsync_NonExistentGitHubUser_DoesNotRegister() { var database = new TestDatabaseBuilder().Build(); var modelErrors = new MockErrorCollection(); var activationToken = new ActivationToken("ActivationToken"); var gitHubUserClient = GetMockGitHubUserClient(userExists: false); var userService = GetUserService ( database.Context, activationToken: activationToken, gitHubUserClient: gitHubUserClient.Object ); var result = await userService.RegisterFirstSuperUserAsync ( new SuperUserRegistration() { ActivationToken = "ActivationToken", GitHubLogin = "******" }, modelErrors ); Assert.Equal(RegisterNewUserResult.Failed, result); Assert.True(modelErrors.VerifyErrors("GitHubLogin")); Assert.Equal(0, database.Context.Users.Count()); }
/// <summary> /// Returns a user service. /// </summary> private IUserService GetUserService( DatabaseContext dbContext = null, IIdentityProvider identityProvider = null, IGitHubUserClient gitHubUserClient = null, IGitHubOrganizationClient gitHubOrgClient = null, IGitHubTeamClient gitHubTeamClient = null, IEmailProvider emailProvider = null, ActivationToken activationToken = null) { return new UserService ( dbContext, identityProvider, gitHubUserClient, gitHubOrgClient, gitHubTeamClient, emailProvider, activationToken ); }