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); }
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); }
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); }
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}"); }
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); }
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); }
public abstract MonthlyStatement GenerateStatement(MonthlyUsage monthlyUsage);