public void CalculateCost_ZeroOrLess_ShouldReturnExpected(int textMessages)
        {
            // Arrange
            const decimal expected = 0;

            A.CallTo(() => _accountDetails.NumberOfTextMessagesSentInMonth(_customerAccount, Month, Year))
            .Returns(textMessages);

            // Act
            var cost = _calculator.CalculateCost(_customerAccount, Month, Year);

            // Assert
            Assert.Equal(expected, cost);
        }
Пример #2
0
        public void GetTotalCostByDifferentBandsTest()
        {
            var customerId = Guid.NewGuid();

            _moqAccountDetails.Setup(x => x.NumberOfTextMessagesSentInMonth(customerId, 1, 1)).Returns(700);
            _moqAccountDetails.Setup(x => x.GetAccountPriceBands(customerId)).Returns(new List <PriceBand>
            {
                new PriceBand {
                    QtyFrom = 1, QtyTo = 200, PricePerTextMessage = 0.10m
                },
                new PriceBand {
                    QtyFrom = 201, QtyTo = 500, PricePerTextMessage = 0.08m
                },
                new PriceBand {
                    QtyFrom = 501, QtyTo = 1000, PricePerTextMessage = 0.06m
                },
                new PriceBand {
                    QtyFrom = 1001, PricePerTextMessage = 0.03m
                }
            });

            var costCalculator = new TotalCostCalculator(_moqAccountDetails.Object);
            var totalCost      = costCalculator.CalculateCost(customerId, 1, 1);

            Assert.Equal(56.00m, totalCost);
        }