public void Then_response_invited_is_true() { var createInvitationRequest = BuildCreateInvitationRequest(); var response = CreateInvitationHandler.Handle(createInvitationRequest, CancellationToken.None).Result; response.Invited.Should().BeTrue(); }
public void Then_CreateInvitationResult_is_returned() { var createInvitationRequest = BuildCreateInvitationRequest(); var result = CreateInvitationHandler.Handle(createInvitationRequest, CancellationToken.None).Result; result.Should().BeOfType <CreateInvitationResponse>(); }
public void Then_Invitation_is_created_in_database() { var createInvitationRequest = BuildCreateInvitationRequest(); CreateInvitationHandler.Handle(createInvitationRequest, CancellationToken.None).Wait(); LoginContext.Invitations.Count().Should().Be(1); }
public void Then_existing_record_is_deleted() { CreateInvitationHandler.Handle(_createInvitationRequest, CancellationToken.None).Wait(); LoginContext.Invitations.Count(i => i.Email == "*****@*****.**" && i.Id == _existingInvitationId).Should().Be(0); LoginContext.Invitations.Count(i => i.Email == "*****@*****.**" && i.Id != _existingInvitationId).Should().Be(1); LoginContext.Invitations.Count(i => i.Email != "*****@*****.**").Should().Be(1); }
public void Then_new_id_and_code_do_not_match_existing() { CreateInvitationHandler.Handle(_createInvitationRequest, CancellationToken.None).Wait(); var newInvitation = LoginContext.Invitations.Single(i => i.Email == "*****@*****.**"); newInvitation.Id.Should().NotBe(_existingInvitationId); }
public void Then_no_invitation_is_created_or_sent() { CreateInvitationHandler.Handle(_createInvitationRequest, CancellationToken.None).Wait(); LoginContext.Invitations.Count().Should().Be(0); EmailService.DidNotReceiveWithAnyArgs() .SendInvitationEmail(Arg.Any <InvitationEmailViewModel>()); }
public void Then_response_states_that_user_already_exists() { var response = CreateInvitationHandler.Handle(_createInvitationRequest, CancellationToken.None).Result; response.Message.Should().Be("User already exists"); response.Invited.Should().Be(false); response.ExistingUserId.Should().Be(_userId); }
public void Then_response_invitationId_is_correct() { var createInvitationRequest = BuildCreateInvitationRequest(); var response = CreateInvitationHandler.Handle(createInvitationRequest, CancellationToken.None).Result; var invitationCreated = LoginContext.Invitations.Single(); response.InvitationId.Should().Be(invitationCreated.Id); }
public void Then_response_states_that_client_does_not_exist() { var createInvitationRequest = BuildCreateInvitationRequest(); createInvitationRequest.ClientId = Guid.NewGuid(); var response = CreateInvitationHandler.Handle(createInvitationRequest, CancellationToken.None).Result; response.Message.Should().Be("Client does not exist"); response.Invited.Should().Be(false); }
public void Then_user_already_exists_email_is_sent() { CreateInvitationHandler.Handle(_createInvitationRequest, CancellationToken.None).Wait(); EmailService.Received().SendUserExistsEmail(Arg.Is <UserExistsEmailViewModel>( vm => vm.ServiceName == "Acme Service" && vm.ServiceTeam == "Acme Service Team" && vm.Contact == _createInvitationRequest.GivenName && vm.LoginLink == "https://serviceurl" && vm.EmailAddress == _createInvitationRequest.Email)); }
public void SetUp() { BuildLoginContext(); EmailService = Substitute.For <IEmailService>(); LoginConfig = Substitute.For <ILoginConfig>(); LoginConfig.BaseUrl.Returns("https://baseurl"); UserService = Substitute.For <IUserService>(); CreateInvitationHandler = BuildCreateInvitationHandler(); }
public void Then_new_Invitation_is_inserted_with_Valid_until_set_one_hour_ahead() { SystemTime.UtcNow = () => new DateTime(2019, 7, 9, 08, 12, 43); var expectedValidUntilTime = SystemTime.UtcNow().AddHours(1); var createInvitationRequest = BuildCreateInvitationRequest(); CreateInvitationHandler.Handle(createInvitationRequest, CancellationToken.None).Wait(); var insertedInvitation = LoginContext.Invitations.Single(); insertedInvitation.ValidUntil.Should().Be(expectedValidUntilTime); }
public void Then_Request_arguments_are_in_Invitation_created_in_database() { var createInvitationRequest = BuildCreateInvitationRequest(); CreateInvitationHandler.Handle(createInvitationRequest, CancellationToken.None).Wait(); var insertedInvitation = LoginContext.Invitations.Single(); insertedInvitation.Email.Should().Be(createInvitationRequest.Email); insertedInvitation.GivenName.Should().Be(createInvitationRequest.GivenName); insertedInvitation.FamilyName.Should().Be(createInvitationRequest.FamilyName); insertedInvitation.SourceId.Should().Be(createInvitationRequest.SourceId); insertedInvitation.CallbackUri.Should().Be(createInvitationRequest.Callback.ToString()); insertedInvitation.UserRedirectUri.Should().Be(createInvitationRequest.UserRedirect.ToString()); insertedInvitation.ClientId.Should().Be(createInvitationRequest.ClientId.ToString()); }
public void Then_Invited_is_false() { var invalidClientId = Guid.NewGuid(); LoginContext.Clients.Add(new Client() { Id = invalidClientId, AllowInvitationSignUp = false }); LoginContext.SaveChanges(); var createInvitationRequest = BuildCreateInvitationRequest(); createInvitationRequest.ClientId = invalidClientId; var result = CreateInvitationHandler.Handle(createInvitationRequest, CancellationToken.None).Result; result.Invited.Should().BeFalse(); result.Message.Should().Be("Client is not authorised for Invitiation Signup"); }
public void Then_an_email_is_sent_out_to_the_invited_user_with_correct_replacement_values() { var createInvitationRequest = BuildCreateInvitationRequest(); LoginConfig.BaseUrl.Returns("https://goodurl/"); CreateInvitationHandler.Handle(createInvitationRequest, CancellationToken.None).Wait(); var insertedInvitation = LoginContext.Invitations.Single(); EmailService.Received().SendInvitationEmail(Arg.Is <InvitationEmailViewModel>(vm => vm.Contact == "InvitedGivenName" && vm.ServiceName == "Acme Service" && vm.ServiceTeam == "Acme Service Team" && vm.LoginLink == "https://goodurl/Invitations/CreatePassword/" + insertedInvitation.Id && vm.EmailAddress == createInvitationRequest.Email && vm.TemplateId == InvitationTemplateId)); }
public async Task Then_LogEntry_created_to_log_invitation() { SystemTime.UtcNow = () => new DateTime(2019, 1, 1, 1, 1, 1); var logId = Guid.NewGuid(); GuidGenerator.NewGuid = () => logId; var createInvitationRequest = BuildCreateInvitationRequest(); await CreateInvitationHandler.Handle(createInvitationRequest, CancellationToken.None); var logEntry = LoginContext.UserLogs.Single(); var expectedLogEntry = new UserLog { Id = logId, DateTime = SystemTime.UtcNow(), Email = "*****@*****.**", Action = "Invite", Result = "Invited" }; logEntry.Should().BeEquivalentTo(expectedLogEntry); }
public void Then_user_service_is_checked_for_existing_user() { CreateInvitationHandler.Handle(_createInvitationRequest, CancellationToken.None).Wait(); UserService.Received().FindByEmail("*****@*****.**"); }
public void Then_new_new_invite_is_created() { var response = CreateInvitationHandler.Handle(_createInvitationRequest, CancellationToken.None).Result; response.Invited.Should().BeTrue(); }
public void And_Request_arguments_missing_Then_throw_ArgumentException() { var createInvitationRequest = BuildEmptyCreateInvitationRequest(); CreateInvitationHandler.Invoking(h => { h.Handle(createInvitationRequest, CancellationToken.None).Wait(); }).Should().Throw <ArgumentException>(); }