コード例 #1
0
        public async Task CreateReturnsCorrectResponseWhenLinkedAccountExists()
        {
            var crmAccountID      = "456";
            var cssoID            = "44444";
            var token             = "token";
            var rentAccountNumber = "12345";

            var crmResponse = "98765";

            var createLinkedAccountRequest = new CreateLinkedAccountRequest
            {
                CssoId        = cssoID,
                AccountNumber = rentAccountNumber
            };

            _mockCrmTokenGateway.Setup(x => x.GetCRMToken()).ReturnsAsync(token);
            _mockCrmGateway.Setup(x => x.GetCrmAccountId(rentAccountNumber, token)).ReturnsAsync(crmAccountID);
            _mockCrmGateway.Setup(x => x.CreateLinkedAccount(crmAccountID, cssoID)).ReturnsAsync(crmResponse);

            var response = await _classUnderTest.Execute(createLinkedAccountRequest).ConfigureAwait(true);


            response.Should().NotBeNull();
            response.LinkedAccountId.Should().Be(crmResponse);
        }
コード例 #2
0
        public async Task <CreateLinkedAccountResponse> Execute(CreateLinkedAccountRequest createLinkedAccountRequest)
        {
            var token = await _crmTokenGateway.GetCRMToken();

            //GetAccountID from crm
            var crmAccountID = await _crmGateway.GetCrmAccountId(createLinkedAccountRequest.AccountNumber, token);

            //Create linked account
            if (crmAccountID == null)
            {
                return(null);
            }

            //Return linked account ID
            var linkedAccountID = await _crmGateway.CreateLinkedAccount(crmAccountID, createLinkedAccountRequest.CssoId);

            if (linkedAccountID == null)
            {
                return(null);
            }

            return(new CreateLinkedAccountResponse
            {
                LinkedAccountId = linkedAccountID
            });
        }
コード例 #3
0
        public async Task <IActionResult> CreateLinkedAccount(CreateLinkedAccountRequest createLinkedAccountRequest)
        {
            try
            {
                var response = await _createLinkedAccountUseCase.Execute(createLinkedAccountRequest);

                if (response != null)
                {
                    return(Ok(response));
                }
                else
                {
                    return(StatusCode(404, "Linked account could not be created, please check values"));
                }
            }
            catch (MissingLinkedAccountRequestParameterException e)
            {
                LambdaLogger.Log(e.Message);
                return(BadRequest(e.Message));
            }
            catch (Exception ex)
            {
                LambdaLogger.Log(ex.Message);
                return(StatusCode(500, "An error has occured"));
            }
        }
コード例 #4
0
        public async Task CreateLinkedAccountCorrectTypeAnd200()
        {
            var createLinkedAccountResponse = new CreateLinkedAccountResponse
            {
            };

            var createLinkedAccountRequest = new CreateLinkedAccountRequest
            {
            };

            _createLinkedAccountUseCase.Setup(x => x.Execute(createLinkedAccountRequest)).ReturnsAsync(createLinkedAccountResponse);
            var response = (await _classUnderTest.CreateLinkedAccount(createLinkedAccountRequest).ConfigureAwait(true) as IActionResult) as OkObjectResult;

            response.Should().NotBeNull();
            response.Value.Should().BeOfType <CreateLinkedAccountResponse>();
            response.StatusCode.Should().Be(200);
        }
コード例 #5
0
        public async Task CreateLinkedAccountWithInvalidValuesReturns404()
        {
            var createLinkedAccountResponse = new CreateLinkedAccountResponse();

            createLinkedAccountResponse = null;

            var createLinkedAccountRequest = new CreateLinkedAccountRequest();

            {
            };

            _createLinkedAccountUseCase.Setup(x => x.Execute(createLinkedAccountRequest)).ReturnsAsync(createLinkedAccountResponse);
            var response = (await _classUnderTest.CreateLinkedAccount(createLinkedAccountRequest).ConfigureAwait(true) as IActionResult) as ObjectResult;

            response.Should().NotBeNull();
            response.StatusCode.Should().Be(404);
            response.Value.Should().Be("Linked account could not be created, please check values");
        }