示例#1
0
        public void Setup()
        {
            _db      = new Mock <IMoneyManagementContext>();
            _handler = new GetAccountQueryHandler(_db.Object);

            var accounts = new List <Account>
            {
                new Account
                {
                    KeyId        = new Guid("714b19c9-7c5b-47f9-9a99-46639db1595d"),
                    UserId       = new Guid("05541516-ccf1-41f4-b6ac-b2aa7d807b8c"),
                    Balance      = 2000,
                    ShortName    = "BNK",
                    Translations = new List <AccountTranslation>
                    {
                        new AccountTranslation
                        {
                            CultureId = new Guid("714b19c9-7c5b-47f9-9a99-46639db1595d"),
                            Name      = "Bank"
                        }
                    }
                }
            };

            _db.Setup(x => x.Accounts).Returns(accounts.ToMockDbSet().Object);
        }
示例#2
0
        public async Task Then_The_Api_Is_Called_With_The_Request_And_The_Account_Is_Returned(
            GetAccountQuery query,
            GetAccountResponse apiResponse,
            [Frozen] Mock <IAccountsApiClient <AccountsConfiguration> > apiClient,
            GetAccountQueryHandler handler
            )
        {
            apiClient.Setup(x => x.Get <GetAccountResponse>(It.Is <GetAccountRequest>(x => x.HashedAccountId == query.HashedAccountId))).ReturnsAsync(apiResponse);

            var actual = await handler.Handle(query, CancellationToken.None);

            actual.Should().BeEquivalentTo(apiResponse);
        }
示例#3
0
        public void And_No_Account_Then_Throws_EntityNotFoundException(
            GetAccountQuery query,
            [Frozen] ValidationResult validationResult,
            [Frozen] Mock <IAccountsService> mockService,
            GetAccountQueryHandler handler)
        {
            validationResult.ValidationDictionary.Clear();
            mockService
            .Setup(service => service.GetAccount(It.IsAny <long>()))
            .ReturnsAsync((Domain.Account.Account)null);

            var act = new Func <Task>(async() => await handler.Handle(query, CancellationToken.None));

            act.Should().Throw <EntityNotFoundException <Domain.Entities.Account> >();
        }
示例#4
0
        public async Task Then_Gets_Account_Details_From_Service(
            GetAccountQuery query,
            Domain.Account.Account account,
            [Frozen] ValidationResult validationResult,
            [Frozen] Mock <IAccountsService> mockService,
            GetAccountQueryHandler handler)
        {
            validationResult.ValidationDictionary.Clear();
            mockService
            .Setup(service => service.GetAccount(query.Id))
            .ReturnsAsync(account);

            var result = await handler.Handle(query, CancellationToken.None);

            result.Account.Should().BeEquivalentTo(account);
        }
        public async Task Then_If_NotFound_Response_Then_Null_Returned(
            GetAccountQuery query,
            [Frozen] Mock <IAccountsApiClient <AccountsConfiguration> > accountApiClient,
            GetAccountQueryHandler handler)
        {
            //Arrange
            accountApiClient.Setup(x =>
                                   x.Get <GetAccountByIdResponse>(
                                       It.IsAny <GetAccountByIdRequest>()))
            .ReturnsAsync((GetAccountByIdResponse)null);

            //Act
            var actual = await handler.Handle(query, CancellationToken.None);

            //Assert
            actual.AccountId.Should().BeNull();
            actual.HashedAccountId.Should().BeNull();
        }
示例#6
0
        public void And_Fails_Validation_Then_Throws_ValidationException(
            GetAccountQuery query,
            string propertyName,
            Domain.Account.Account account,
            [Frozen] Mock <IValidator <GetAccountQuery> > mockValidator,
            [Frozen] ValidationResult validationResult,
            [Frozen] Mock <IAccountsService> mockService,
            GetAccountQueryHandler handler)
        {
            validationResult.AddError(propertyName);
            mockValidator
            .Setup(validator => validator.ValidateAsync(It.IsAny <GetAccountQuery>()))
            .ReturnsAsync(validationResult);

            var act = new Func <Task>(async() => await handler.Handle(query, CancellationToken.None));

            act.Should().Throw <ArgumentException>()
            .WithMessage($"*{propertyName}*");
        }
        public async Task Then_The_Query_Is_Handled_And_Data_Returned(
            GetAccountQuery query,
            GetAccountByIdResponse apiResponse,
            [Frozen] Mock <IAccountsApiClient <AccountsConfiguration> > accountsApiClient,
            GetAccountQueryHandler handler)
        {
            //Arrange
            var expectedGetUrl = new GetAccountByIdRequest(query.AccountId);

            accountsApiClient
            .Setup(x => x.Get <GetAccountByIdResponse>(
                       It.Is <GetAccountByIdRequest>(c => c.GetUrl.Equals(expectedGetUrl.GetUrl))))
            .ReturnsAsync(apiResponse);

            //Act
            var actual = await handler.Handle(query, CancellationToken.None);

            //Assert
            actual.Should().BeEquivalentTo(apiResponse);
        }
 public GetAccountQueryHandlerShould() : base()
 {
     handler = new GetAccountQueryHandler(_Database);
 }