public async Task PostExistingCustomerAndAgreement_ShouldReturnOk() { var customer = await CreateUser(); var agreement = await CreateAgreement(customer); var agreementInterest = new AgreementInterestRequest() { CustomerId = agreement.CustomerId, AgreementId = agreement.Id, NewBaseRateCode = "VILIBOR6m" }; StringContent agreementInterestData = new StringContent(JsonConvert.SerializeObject(agreementInterest), Encoding.UTF8, "application/json"); var result = await(await _client.PostAsync("/agreement/interest", agreementInterestData)).Content.ReadAsAsync <AgreementInterestResponse>(); Assert.AreEqual(customer.Id, result.Customer.Id); Assert.AreEqual(agreement.Id, result.Agreement.Id); Assert.NotNull(result.CurrentInterestRate); Assert.NotNull(result.NewInterestRate); Assert.NotNull(result.InterestDifference); await _client.DeleteAsync($"/customer/{customer.Id}"); await _client.DeleteAsync($"/agreement/{agreement.Id}"); }
public async Task <IActionResult> SubmitAgreement([FromBody] AgreementInterestRequest agreementInterestRequest) { if (!BaseRateCodeExists(agreementInterestRequest.NewBaseRateCode)) { return(new BadRequestResult()); } return(new OkObjectResult(await _agreementService.AgreementInterestChange(agreementInterestRequest))); }
public async Task PostNonExistingCustomer_ShouldReturnNotFound() { var testGuid = Guid.NewGuid(); var agreementInterest = new AgreementInterestRequest() { CustomerId = testGuid, AgreementId = testGuid, NewBaseRateCode = "VILIBOR6m" }; StringContent agreementInterestData = new StringContent(JsonConvert.SerializeObject(agreementInterest), Encoding.UTF8, "application/json"); var result = await _client.PostAsync("/agreement/interest", agreementInterestData); Assert.AreEqual(HttpStatusCode.NotFound, result.StatusCode); }
public async Task <AgreementInterestResponse> AgreementInterestChange(AgreementInterestRequest model) { var customer = await _customerRepository.GetById(model.CustomerId); var agreement = await GetById(model.AgreementId); var currentInterestRate = await _vilibidClient.GetBaseRateValue(agreement.BaseRateCode) + agreement.Margin; var newInterestRate = await _vilibidClient.GetBaseRateValue(model.NewBaseRateCode) + agreement.Margin; return(new AgreementInterestResponse() { Customer = customer, Agreement = agreement, CurrentInterestRate = currentInterestRate, NewInterestRate = newInterestRate, InterestDifference = currentInterestRate - newInterestRate }); }
public async Task PostNonExistingBaseRateCode_ShouldReturnBadRequest() { var customer = await CreateUser(); var agreement = await CreateAgreement(customer); var agreementInterest = new AgreementInterestRequest() { CustomerId = customer.Id, AgreementId = agreement.Id, NewBaseRateCode = "test" }; StringContent agreementInterestData = new StringContent(JsonConvert.SerializeObject(agreementInterest), Encoding.UTF8, "application/json"); var result = await _client.PostAsync("/agreement/interest", agreementInterestData); Assert.AreEqual(HttpStatusCode.BadRequest, result.StatusCode); await _client.DeleteAsync($"/customer/{customer.Id}"); await _client.DeleteAsync($"/agreement/{agreement.Id}"); }