Пример #1
0
        public void AddCharge_TwoCharges_AddOneCharge_ShouldReturn_3()
        {
            Member instance = new Member();

            instance.AddCharge(1.0m);
            instance.AddCharge(1.0m);

            instance.AddCharge(4.0m);

            Assert.AreEqual(3, instance.Charges.Count);
        }
Пример #2
0
        public void TotalAmount_ShouldReturn_Sum()
        {
            Member instance = new Member();

            instance.AddCharge(1.0m);
            instance.AddCharge(2.0m);
            instance.AddCharge(3.0m);

            decimal totalAmount = instance.TotalAmount;

            Assert.AreEqual(6.0m, totalAmount);
        }
Пример #3
0
        public void CaculateAmountDue_ShouldReturn_DifferencesBetweenTotalAndAverage()
        {
            Member instance = new Member();

            instance.AddCharge(1.0m);
            instance.AddCharge(2.0m);
            instance.AddCharge(3.0m);

            decimal averageAmount = 8.0m;

            instance.CaculateAmountDue(averageAmount);

            Assert.AreEqual(2.0m, instance.AmountDue);
        }
Пример #4
0
        public static void Main(string[] args)
        {
            if (args == null || args.Length == 0)
            {
                Console.WriteLine("Please specify a filename.");
                return;
            }
            string inputFile  = args[0];
            string outputFile = inputFile + ".out";

            try
            {
                StreamReader sr = new StreamReader(inputFile);
                // Get the first line as the number of members
                int memberCount = GetIntegerLine(sr);
                // Initilize TripGroup class
                TripGroup tripGroup = new TripGroup();
                do
                {
                    Trip trip = new Trip();
                    tripGroup.AddTrip(trip);
                    // Loop to add members
                    for (int index = 0; index < memberCount; index++)
                    {
                        Member member = new Member();
                        trip.AddMember(member);
                        // Get the number of expenses for current member
                        int expenseCount = GetIntegerLine(sr);
                        // Loop to add expenses
                        for (int expenseIndex = 0; expenseIndex < expenseCount; expenseIndex++)
                        {
                            decimal amount = GetDecimalLine(sr);
                            member.AddCharge(amount);
                        }
                    }
                    // Get the number of members for next trip
                    memberCount = GetIntegerLine(sr);
                }while (memberCount != 0);
                //Close the read file
                sr.Close();
                // Start to output billing data
                StreamWriter streamWriter = new StreamWriter(outputFile);
                // Triger calculation
                tripGroup.Calculate();
                // Call Output method to output data
                tripGroup.Output(streamWriter);
                streamWriter.Close();
            }
            catch (Exception e)
            {
                Console.WriteLine("Exception: " + e.Message);
            }
        }
Пример #5
0
        public void AddCharge_MinusValue_ShouldThrowArgumentException()
        {
            Member instance = new Member();

            instance.AddCharge(-1.0m);
        }