Exemplo n.º 1
0
        public void InvestmentOptionsCannotBeEmpty()
        {
            // Arrange
            var calculationReq = new RoiCalculationRequest();

            // Act
            ValidationContext context = new ValidationContext(calculationReq);
            var result = calculationReq.Validate(context);

            // Assert
            Assert.IsTrue(result.Any(
                              e => e.MemberNames.Contains(nameof(RoiCalculationRequest.InvestmentOptions)) &&
                              e.ErrorMessage.Equals(ValidationMessages.INVESTMENT_OPTIONS_CANNOT_BE_EMPTY)));
        }
Exemplo n.º 2
0
        public void InvestmentAmountCannotBeNegative()
        {
            // Arrange
            var calculationReq = new RoiCalculationRequest()
            {
                InvestmentAmount = -1,
            };

            // Act
            ValidationContext context = new ValidationContext(calculationReq);
            var result = calculationReq.Validate(context);

            // Assert
            Assert.IsTrue(result.Any(
                              e => e.MemberNames.Contains(nameof(RoiCalculationRequest.InvestmentAmount)) &&
                              e.ErrorMessage.Equals(ValidationMessages.INVALID_INVESTMENT_AMOUNT)));
        }
Exemplo n.º 3
0
        public void InvestedAmountShouldBeOneHundredPercent()
        {
            // Arrange
            var calculationReq = new RoiCalculationRequest()
            {
                InvestmentAmount  = 100000,
                InvestmentOptions = new List <InvestmentOptionBase>()
                {
                    new InvestmentOptionBase()
                    {
                        AllocatedProportion = .5
                    }
                }
            };

            // Act
            ValidationContext context = new ValidationContext(calculationReq);
            var result = calculationReq.Validate(context);

            // Assert
            Assert.IsTrue(result.Any(
                              e => e.MemberNames.Contains(nameof(RoiCalculationRequest.InvestmentOptions)) &&
                              e.ErrorMessage.Equals(ValidationMessages.TOTAL_INVESTMENT_ALLOCATION_MUST_BE_100_PERCENT)));
        }