public override MonthlyStatement GenerateStatement(MonthlyUsage monthlyUsage)
        {
            var statement = new MonthlyStatement();

            statement.TotalCost = 54.90f;
            return(statement);
        }
        public override MonthlyStatement GenerateStatement(MonthlyUsage monthlyUsage)
        {
            var statement = new MonthlyStatement();

            statement.CallCost  = 0.12f * monthlyUsage.CallMinutes;
            statement.SmsCost   = 0.12f * monthlyUsage.SmsCount;
            statement.TotalCost = statement.CallCost + statement.SmsCost;
            return(statement);
        }
Beispiel #3
0
        public override MonthlyStatement GenerateStatement(MonthlyUsage monthlyUsage)
        {
            var monthlyStatement = new MonthlyStatement
            {
                TotalCost = 54.90f
            };

            return(monthlyStatement);
        }
        public void PayAsYouGoCustomer_IsChargedBasedOnTheSumOfCostOfCallAndSms()
        {
            var customer = new PayAsYouGoCustomer();
            var usage    = new MonthlyUsage {
                CallMinutes = 100, SmsCount = 100, Customer = customer
            };
            var statement = usage.Customer.GenerateStatement(usage);

            Assert.AreEqual(12.0f, statement.CallCost);
            Assert.AreEqual(12.0f, statement.SmsCost);
            Assert.AreEqual(24.0f, statement.TotalCost);
        }
        public void UnlimitedCustomer_IsChargedAFlatRatePerMonth()
        {
            var customer = new UltimatedCustomer();
            var usage    = new MonthlyUsage {
                CallMinutes = 100, SmsCount = 100, Customer = customer
            };
            var statement = usage.Customer.GenerateStatement(usage);

            Assert.AreEqual(0, statement.CallCost);
            Assert.AreEqual(0, statement.SmsCost);
            Assert.AreEqual(54.90f, statement.TotalCost);
        }
Beispiel #6
0
        public override MonthlyStatement GenerateStatement(MonthlyUsage monthlyUsage)
        {
            var monthlyStatement = new MonthlyStatement
            {
                CallCost = 0.12f * monthlyUsage.CallMinutes,
                SmsCost  = 0.12f * monthlyUsage.SmsCount
            };

            monthlyStatement.TotalCost = monthlyStatement.CallCost + monthlyStatement.SmsCost;

            return(monthlyStatement);
        }
Beispiel #7
0
        static void ShorUnlimitedCustomer()
        {
            var unlimitedCustomer = new UnlimitedCustomer();
            var usage             = new MonthlyUsage {
                CallMinutes = 100, SmsCount = 100
            };
            var statement = unlimitedCustomer.GenerateStatement(usage);

            var mcc = statement.CallCost;
            var msc = statement.SMSCost;
            var mtc = statement.TotalCost;

            Console.WriteLine($"CustomerType=PayAsYouGo: mvc={mcc}, msc={msc}, mtc={mtc}");
        }
Beispiel #8
0
        public void UnlimitedCustomer_IsChargedAFlatRatePerMonth()
        {
            var customer = new Customer {
                Type = CustomerType.Unlimited
            };
            var usage = new MonthlyUsage {
                CallMinutes = 100, SmsCount = 100, Customer = customer
            };
            var statement = new MonthlyStatement();

            statement.Generate(usage);

            Assert.AreEqual(0, statement.CallCost);
            Assert.AreEqual(0, statement.SmsCost);
            Assert.AreEqual(54.90f, statement.TotalCost);
        }
Beispiel #9
0
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");

            var monthlyUsage = new MonthlyUsage();

            monthlyUsage.Customer      = new Customer();
            monthlyUsage.CallMinutes   = 100;
            monthlyUsage.SmsCount      = 500;
            monthlyUsage.Customer.Type = CustomerType.Unlimited;
            var monthlyStatement = new MonthlyStatement();

            monthlyStatement.CallCost = 1;
            monthlyStatement.Generate(monthlyUsage);

            Console.WriteLine(monthlyStatement.TotalCost);
        }
Beispiel #10
0
 public abstract MonthlyStatement GenerateStatement(MonthlyUsage monthlyUsage);