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); }
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 }); }
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")); } }
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); }
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"); }