public AccountBuilder WithSentTransferConnectionInvitation( TransferConnectionInvitation transferConnectionInvitation) { _account.SentTransferConnectionInvitations.Add(transferConnectionInvitation); return(this); }
public void Arrange() { _employerAccountRepository = new Mock <IEmployerAccountRepository>(); _transferConnectionInvitationRepository = new Mock <ITransferConnectionInvitationRepository>(); _userRepository = new Mock <IUserAccountRepository>(); _receiverUser = new User { Id = 123456, Ref = Guid.NewGuid(), FirstName = "John", LastName = "Doe" }; _senderAccount = new Account { Id = 333333, HashedId = "ABC123", Name = "Sender" }; _receiverAccount = new Account { Id = 222222, HashedId = "XYZ987", Name = "Receiver" }; _unitOfWorkContext = new UnitOfWorkContext(); _transferConnectionInvitation = new TransferConnectionInvitationBuilder() .WithId(111111) .WithSenderAccount(_senderAccount) .WithReceiverAccount(_receiverAccount) .WithStatus(TransferConnectionInvitationStatus.Pending) .Build(); _userRepository.Setup(r => r.GetUserByRef(_receiverUser.Ref)).ReturnsAsync(_receiverUser); _employerAccountRepository.Setup(r => r.GetAccountById(_senderAccount.Id)).ReturnsAsync(_senderAccount); _employerAccountRepository.Setup(r => r.GetAccountById(_receiverAccount.Id)).ReturnsAsync(_receiverAccount); _transferConnectionInvitationRepository.Setup(r => r.GetTransferConnectionInvitationById(_transferConnectionInvitation.Id)).ReturnsAsync(_transferConnectionInvitation); _handler = new ApproveTransferConnectionInvitationCommandHandler( _employerAccountRepository.Object, _transferConnectionInvitationRepository.Object, _userRepository.Object ); _command = new ApproveTransferConnectionInvitationCommand { AccountId = _receiverAccount.Id, UserRef = _receiverUser.Ref, TransferConnectionInvitationId = _transferConnectionInvitation.Id }; }
public void Arrange() { _db = new Mock <EmployerAccountsDbContext>(); _senderAccount = new Account { Id = 333333, HashedId = "ABC123", Name = "Sender" }; _receiverAccount = new Account { Id = 222222, HashedId = "XYZ987", Name = "Receiver" }; _receivedTransferConnectionInvitation = new TransferConnectionInvitationBuilder() .WithId(111111) .WithSenderAccount(_senderAccount) .WithReceiverAccount(_receiverAccount) .WithStatus(TransferConnectionInvitationStatus.Pending) .Build(); _rejectedTransferConnectionInvitation = new TransferConnectionInvitationBuilder() .WithId(111111) .WithSenderAccount(_senderAccount) .WithReceiverAccount(_receiverAccount) .WithStatus(TransferConnectionInvitationStatus.Rejected) .Build(); _transferConnectionInvitations = new List <TransferConnectionInvitation> { _receivedTransferConnectionInvitation, _rejectedTransferConnectionInvitation }; _transferConnectionInvitationsDbSet = new FakeDbSet <TransferConnectionInvitation>(_transferConnectionInvitations); _configurationProvider = new MapperConfiguration(c => { c.AddProfile <AccountMappings>(); c.AddProfile <TransferConnectionInvitationMappings>(); c.AddProfile <UserMappings>(); }); _db.Setup(d => d.TransferConnectionInvitations).Returns(_transferConnectionInvitationsDbSet); _handler = new GetReceivedTransferConnectionInvitationQueryHandler(new Lazy <EmployerAccountsDbContext>(() => _db.Object), _configurationProvider); _query = new GetReceivedTransferConnectionInvitationQuery { AccountId = _receiverAccount.Id, TransferConnectionInvitationId = _receivedTransferConnectionInvitation.Id }; }
public void Arrange() { _db = new Mock <EmployerAccountsDbContext>(); _account = new Account { Id = 333333, HashedId = "ABC123", Name = "Account" }; _sentTransferConnectionInvitation = new TransferConnectionInvitationBuilder() .WithId(222222) .WithSenderAccount(_account) .WithReceiverAccount(new Account()) .WithCreatedDate(DateTime.UtcNow) .Build(); _receivedTransferConnectionInvitation = new TransferConnectionInvitationBuilder() .WithId(111111) .WithSenderAccount(new Account()) .WithReceiverAccount(_account) .WithCreatedDate(DateTime.UtcNow.AddDays(-1)) .Build(); _transferConnectionInvitations = new List <TransferConnectionInvitation> { _sentTransferConnectionInvitation, _receivedTransferConnectionInvitation, new TransferConnectionInvitationBuilder() .WithSenderAccount(new Account()) .WithReceiverAccount(new Account()) .WithCreatedDate(DateTime.UtcNow.AddDays(-2)) .Build() }; _transferConnectionInvitationsDbSet = new FakeDbSet <TransferConnectionInvitation>(_transferConnectionInvitations); _configurationProvider = new MapperConfiguration(c => { c.AddProfile <AccountMappings>(); c.AddProfile <TransferConnectionInvitationMappings>(); c.AddProfile <UserMappings>(); }); _db.Setup(d => d.TransferConnectionInvitations).Returns(_transferConnectionInvitationsDbSet); _handler = new GetTransferConnectionInvitationsQueryHandler(new Lazy <EmployerAccountsDbContext>(() => _db.Object), _configurationProvider); _query = new GetTransferConnectionInvitationsQuery { AccountId = _account.Id }; }
public void ThenShouldThrowExceptionIfTransferConnectionInvitationIsNotPending() { _transferConnectionInvitation = new TransferConnectionInvitationBuilder() .WithId(111111) .WithSenderAccount(_senderAccount) .WithReceiverAccount(_receiverAccount) .WithStatus(TransferConnectionInvitationStatus.Approved) .Build(); _transferConnectionInvitationRepository.Setup(r => r.GetTransferConnectionInvitationById(_transferConnectionInvitation.Id)).ReturnsAsync(_transferConnectionInvitation); Assert.ThrowsAsync <Exception>(() => _handler.Handle(_command), "Requires transfer connection invitation is pending."); }
public TransferConnectionInvitation SendTransferConnectionInvitation(Account receiverAccount, User senderUser, decimal senderAccountTransferAllowance) { RequiresTransferConnectionInvitationSenderIsNotTheReceiver(receiverAccount); RequiresMinTransferAllowanceIsAvailable(senderAccountTransferAllowance); RequiresTransferConnectionInvitationSenderIsNotAReceiver(); RequiresTransferConnectionInvitationReceiverIsNotASender(receiverAccount); RequiresTransferConnectionInvitationDoesNotExist(receiverAccount); var transferConnectionInvitation = new TransferConnectionInvitation(this, receiverAccount, senderUser); SentTransferConnectionInvitations.Add(transferConnectionInvitation); return(transferConnectionInvitation); }
public Task Add(TransferConnectionInvitation transferConnectionInvitation) { _db.Value.TransferConnectionInvitations.Add(transferConnectionInvitation); return(_db.Value.SaveChangesAsync()); }
public void Arrange() { _db = new Mock <EmployerAccountsDbContext>(); _senderAccount1 = new Account { Id = 111111, HashedId = "ABC123", PublicHashedId = "321CBA", Name = "Sender 1" }; _senderAccount2 = new Account { Id = 222222, HashedId = "DEF456", PublicHashedId = "654FED", Name = "Sender 2" }; _receiverAccount = new Account { Id = 333333, HashedId = "GHI789", PublicHashedId = "987IHG", Name = "Receiver" }; _sentTransferConnectionInvitation = new TransferConnectionInvitationBuilder() .WithId(111111) .WithSenderAccount(_receiverAccount) .WithReceiverAccount(new Account()) .WithStatus(TransferConnectionInvitationStatus.Approved) .Build(); _receivedTransferConnectionInvitation1 = new TransferConnectionInvitationBuilder() .WithId(222222) .WithSenderAccount(_senderAccount1) .WithReceiverAccount(_receiverAccount) .WithStatus(TransferConnectionInvitationStatus.Rejected) .Build(); _receivedTransferConnectionInvitation2 = new TransferConnectionInvitationBuilder() .WithId(333333) .WithSenderAccount(_senderAccount1) .WithReceiverAccount(_receiverAccount) .WithStatus(TransferConnectionInvitationStatus.Approved) .Build(); _receivedTransferConnectionInvitation3 = new TransferConnectionInvitationBuilder() .WithId(444444) .WithSenderAccount(_senderAccount2) .WithReceiverAccount(_receiverAccount) .WithStatus(TransferConnectionInvitationStatus.Approved) .Build(); _transferConnectionInvitations = new List <TransferConnectionInvitation> { _sentTransferConnectionInvitation, _receivedTransferConnectionInvitation3, _receivedTransferConnectionInvitation2, _receivedTransferConnectionInvitation1, new TransferConnectionInvitationBuilder() .WithSenderAccount(new Account()) .WithReceiverAccount(new Account()) .WithStatus(TransferConnectionInvitationStatus.Approved) .Build() }; _transferConnectionInvitationsDbSet = new DbSetStub <TransferConnectionInvitation>(_transferConnectionInvitations); _configurationProvider = new MapperConfiguration(c => { c.AddProfile <TransferConnectionInvitationMappings>(); }); _db.Setup(d => d.TransferConnectionInvitations).Returns(_transferConnectionInvitationsDbSet); _handler = new GetTransferConnectionsQueryHandler(new Lazy <EmployerAccountsDbContext>(() => _db.Object), _configurationProvider); _query = new GetTransferConnectionsQuery { HashedAccountId = _receiverAccount.HashedId }; }