Example #1
0
        //UC5
        //Given mutiple premium rides return the Invoice Summary class object
        public void GivenMultiplePremiumRides_GivesInvoiceSummaryObject()
        {
            Ride[]           rides            = { new Ride(2, 5), new Ride(2, 5) };
            InvoiceGenerator invoiceGenerator = new InvoiceGenerator(RideType.PREMIUM);

            InvoiceSummary actual = invoiceGenerator.calculateFare(rides);

            InvoiceSummary expected = new InvoiceSummary(2, 80);

            Assert.AreEqual(expected, actual);
        }
Example #2
0
        public void GivenDistanceAndTime_ShouldReturnTotalFare()
        {
            double           expected         = 25;
            InvoiceGenerator invoiceGenerator = new InvoiceGenerator(RideType.NORMAL);

            double distance = 2.0;
            int    time     = 5;
            double actual   = invoiceGenerator.calculateFare(distance, time);

            Assert.AreEqual(expected, actual);
        }
Example #3
0
        public void GivenUserId_returnTheInvoice()
        {
            Ride[]           rides            = { new Ride(2, 5), new Ride(2, 5) };
            InvoiceGenerator invoiceGenerator = new InvoiceGenerator(RideType.NORMAL);

            invoiceGenerator.AddRides("100", rides);
            InvoiceSummary actual = invoiceGenerator.calculateFare(rides);

            InvoiceSummary expected = invoiceGenerator.GetInvoiceSummary("100");

            Assert.AreEqual(expected, actual);
        }
Example #4
0
        public void GivenMutipleRides_GetEnhancedInvoice()
        {
            Ride[]           rides            = { new Ride(2, 5), new Ride(2, 5) };
            InvoiceGenerator invoiceGenerator = new InvoiceGenerator(RideType.NORMAL);
            InvoiceSummary   invoiceSummary   = invoiceGenerator.calculateFare(rides);
            int    expectedNoOfRides          = 2;
            double expectedTotalFare          = 50;
            double expectedAvgFare            = 25;

            Assert.AreEqual(expectedNoOfRides, invoiceSummary.numberOfRides);
            Assert.AreEqual(expectedTotalFare, invoiceSummary.totalFare);
            Assert.AreEqual(expectedAvgFare, invoiceSummary.avgFare);
        }
Example #5
0
 public void GivenInvalidDistance_ShouldThrowException()
 {
     CabInvoiceException.ExceptionType expected = CabInvoiceException.ExceptionType.INVALID_DISTANCE;
     try
     {
         InvoiceGenerator invoiceGenerator = new InvoiceGenerator(RideType.NORMAL);
         double           distance         = -2.0;
         int time = 5;
         invoiceGenerator.calculateFare(distance, time);
     }
     catch (CabInvoiceException cie)
     {
         CabInvoiceException.ExceptionType actual = cie.type;
         Assert.AreEqual(expected, actual);
     }
 }
Example #6
0
        public void GivenInvalidRideType_ShouldThrowException()
        {
            string expected = "Invalid ride type";
            string actual   = null;

            try
            {
                InvoiceGenerator invoiceGenerator = new InvoiceGenerator();
                double           distance         = 2.0;
                int time = 5;
                invoiceGenerator.calculateFare(distance, time);
            }
            catch (CabInvoiceException cie)
            {
                actual = cie.Message;
            }
            Assert.AreEqual(expected, actual);
        }