public void GetUserInvestmentDetails_ValidateTotalGain() { //arrange var userInvestment = _repository.GetInvestmentDetailsById(1, 1); var correctTotalGain = (userInvestment.Stock.CurrentPrice - userInvestment.CostBasis) * userInvestment.ShareCount; // act var response = _controller.GetUserInvestmentDetails(1, 1).Result as OkObjectResult; var content = response.Value as UserInvestmentsResponse; // assert Assert.AreEqual(content.TotalGain, correctTotalGain); }
public ActionResult <UserInvestmentsResponse> GetUserInvestmentDetails(int userId, int investmentId) { _logger.LogInformation("Getting user investment details."); try { var result = _repository.GetInvestmentDetailsById(userId, investmentId); if (result != null) { return(Ok( new UserInvestmentsResponse() { ShareCount = result.ShareCount, CostBasis = result.CostBasis, CurrentPrice = result.Stock.CurrentPrice, Term = result.PurchaseDate.AddYears(1) > DateTime.Now ? "Short Term" : "Long Term", TotalGain = (result.Stock.CurrentPrice - result.CostBasis) * result.ShareCount } )); } else { return(Ok(new UserInvestmentsResponse())); } } catch (Exception ex) { _logger.LogError(string.Format("An exception occurred while retrieving user investment details. Exception: {0}", ex)); return(StatusCode(StatusCodes.Status500InternalServerError)); } }