コード例 #1
0
        public void GivenMultipleRides_ShouldReturnInvoiceSummary()
        {
            // Arrange
            Ride[]         rides           = { new Ride(3, 5), new Ride(5, 4), new Ride(2, 5) };
            InvoiceSummary expectedSummary = new InvoiceSummary(3, 114, 38);

            invoiceGenerator = new InvoiceGenerator(RideType.NORMAL);
            // Act
            InvoiceSummary actualSummary = invoiceGenerator.CalculateFare(rides);

            //Assert
            Assert.AreEqual(expectedSummary, actualSummary);
        }
コード例 #2
0
        public void GivenUserIdAndRides_WhenUserIDIsValid_ShouldReturnTotalFare()
        {
            string userID   = "*****@*****.**";
            double distance = 2.0;
            int    time     = 5;

            Ride[] ride = { new Ride(Category.RideType.NORMAL, distance, time), new Ride(Category.RideType.NORMAL, distance, time) };
            this.cabInvoiceGenerator.AddRide(userID, ride);
            InvoiceSummary summary = this.cabInvoiceGenerator.GetInvoiceSummary(Category.RideType.NORMAL, userID);
            InvoiceSummary expectedInvoiceSummary = new InvoiceSummary(2, 50.0);

            Assert.AreEqual(expectedInvoiceSummary, summary);
        }
コード例 #3
0
        public void GivenMultipleRides_WhenAnalyze_ShouldReturnInvoiceSummary()
        {
            //Create instance of invoice generator for normal ride
            invoiceGenerator = new InvoiceGenerator(RideType.NORMAL);
            Ride[] rides = { new Ride(2.0, 5), new Ride(0.1, 1) };

            //Generating Summary for Rides
            InvoiceSummary summary         = invoiceGenerator.CalculateFare(rides);
            InvoiceSummary expectedSummary = new InvoiceSummary(2, 30.0);

            //Asserting Values
            Assert.AreEqual(expectedSummary, summary);
        }
コード例 #4
0
 public void GivenDistanceAndTimeForMultipleRides_WhenProper_ShouldReturnInvoiceSummary()
 {
     try {
         InvoiceSummary invoiceSummary    = new InvoiceSummary(2, 605);
         Rides[]        rides             = { new Rides(30, 30), new Rides(25, 25) };
         InvoiceSummary invoiceSummaryOne = this.cabInvoiceGenerator.CalculateFare(rides);
         Assert.AreEqual(invoiceSummary, invoiceSummaryOne); // check value
     }
     catch (Exception ex)
     {
         Console.WriteLine(ex.Message);
     }
 }
コード例 #5
0
        public void InvoiceReturns_NoOfTrips()
        {
            //// Generating object of class
            InvoiceGenerator invoice = new InvoiceGenerator();

            //// Calculating average fare
            Ride[]         rides    = { new Ride(10, 60), new Ride(20, 70) };
            InvoiceSummary actual   = invoice.EnhancedInvoice(rides);
            InvoiceSummary expected = new InvoiceSummary(2, 440);

            ////Checking if the test case passes
            Assert.AreEqual(expected.mNoOfRides, actual.mNoOfRides);
        }
コード例 #6
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);
        }
コード例 #7
0
        public void GivenMultipleRides_WhenCalculated_ThenShouldReturnInvoiceSummery()
        {
            double firstRideDistance  = 25.12;
            double secondRideDistance = 12.39;
            double firstRideTime      = 40;
            double secondRideTime     = 25;

            Rides[]        rides          = { new Rides(Rides.RideType.NORMAL_RIDE, firstRideDistance, firstRideTime), new Rides(Rides.RideType.NORMAL_RIDE, secondRideDistance, secondRideTime) };
            InvoiceSummary invoiceSummary = this.cabInvoiceGenerator.GetInvoiceSummary(rides);
            InvoiceSummary summary        = new InvoiceSummary(2, 440.1);

            Assert.AreEqual(summary, invoiceSummary);
        }
コード例 #8
0
        public void Get_Total_Fare()
        {
            List <Ride> ls = new List <Ride> {
                new Ride {
                    distance_in_km = 190, time_in_min = 0
                }, new Ride {
                    distance_in_km = 0, time_in_min = 55
                }
            };
            InvoiceSummary objj = new InvoiceSummary();

            Assert.AreEqual(1955.0, objj.Total_fare("Normal", ls));
        }
コード例 #9
0
        public void GivenDistanceAndTimeOfMultiRidesToInvoiceGenerator_WhenCalculate_ShouldReturnTotalFare()
        {
            /// Multiple ride array
            Ride[] rides =
            {
                new Ride(CabRide.NORMAL, 2.0, 1.0),
                new Ride(CabRide.NORMAL, 2.5, 1.5)
            };
            var            exceptedSummery = 47.5;
            InvoiceSummary returnSummery   = invoiceGenerator.CalculateCabFare(rides);

            Assert.AreEqual(exceptedSummery, returnSummery.totalFare);
        }
コード例 #10
0
        public void GivenInvoiceGenerator_WhenUsingInvoiceSummary_ShouldReturnInvoiceSummaryWithAvgRides()
        {
            //Creating Instance of InviceGenerator For Normal Ride.
            invoiceGenerator = new InvoiceGenerator(RideType.NORMAL);
            Ride[] rides = { new Ride(2.0, 5), new Ride(0.1, 1) };

            //Generating Summary For Rides
            InvoiceSummary summary         = invoiceGenerator.CalculateFare(rides);
            InvoiceSummary expectedSummary = new InvoiceSummary(2, 30.0, 3);

            //Asserting Values
            Assert.AreEqual(expectedSummary, summary);
        }
コード例 #11
0
        public void GivenMultipleRides_ShouldReturnInvoiceSummary()
        {
            // Arrange
            Ride[]         rides           = { new Ride(4, 8), new Ride(6, 10), new Ride(10, 12), new Ride(1, 4) };
            InvoiceSummary expectedSummary = new InvoiceSummary(4, 244, 61);

            invoiceGenerator = new InvoiceGenerator(RideType.NORMAL);
            // Act
            InvoiceSummary actualSummary = invoiceGenerator.CalculateFare(rides);

            //Assert
            Assert.AreEqual(expectedSummary, actualSummary);
        }
コード例 #12
0
 public void GivenNullRideData_ShouldThrowCustomException()
 {
     /// Arrange
     Ride[] rides = null;
     invoiceGenerator = new InvoiceGenerator(RideType.NORMAL);
     try
     {
         InvoiceSummary actualSummary = invoiceGenerator.CalculateFare(rides);
     }
     catch (Exception e)
     {
         Assert.AreEqual("Rides are null", e.Message);
     }
 }
コード例 #13
0
 public void GivenMultipleRides_WhenPassingWrongArgument_ShouldReturnInvoiceSummary()
 {
     try
     {
         cabInVoiceGenerator invoiceGenerator = new cabInVoiceGenerator();
         Ride[]         rides = { new Ride(0, 0),
                                  new Ride(0, 0) };
         InvoiceSummary summary = invoiceGenerator.CalculateMultipleFareUsingSummery(rides);
     }
     catch (CabInvoiceAnalyserException e)
     {
         Assert.AreEqual(CabInvoiceAnalyserException.ExceptionType.INVALID_ARGUMENT_EXCEPTION, e.type);
     }
 }
コード例 #14
0
        public void GivenUserIDAndMultipleRides_WhenProper_ShouldReturnInvoiceSummary()
        {
            String userId = "pranav805";

            Ride[] rides = { new Ride(3.0, 5, RideType.NORMAL),
                             new Ride(0.1, 1, RideType.PREMIUM),
                             new Ride(3.0, 5, RideType.PREMIUM) };
            invoiceService.AddRides(userId, rides);
            InvoiceSummary summary = invoiceService.GetInvoiceSummary(userId);
            InvoiceSummary expectedInvoiceSummary = new InvoiceSummary(3, 110.0);
            bool           result = summary.Equals(expectedInvoiceSummary);

            Assert.AreEqual(true, result);
        }
コード例 #15
0
        public void GivenPremiumRide_WhenToCalculateFare_ShouldReturnPremiumFare()
        {
            string userid = "2";

            Ride[] rides =
            {
                new Ride(3, 3)
            };
            invoiceGenerator.AddUserRides(userid, rides);
            InvoiceSummary invoiceSummary  = invoiceGenerator.GetInvoiceByuserId(userid, RIDETYPE.PREMUIM_RIDE);
            InvoiceSummary invoiceSummary1 = new InvoiceSummary(1, 51);

            Assert.AreEqual(invoiceSummary, invoiceSummary1);
        }
コード例 #16
0
 public void GivenUserId_AndNullRides_RideRepository_ShouldThrow_CabInvoiceException()
 {
     try
     {
         Ride[]         rides           = null;
         RideRepository rideRepoTestObj = new RideRepository();
         rideRepoTestObj.AddRide("user1", rides);
         InvoiceSummary result = rideRepoTestObj.GetInvoice("user1");
     }
     catch (Exception e)
     {
         Assert.AreEqual(e.Message, "Rides Are Null");
     }
 }
コード例 #17
0
        //Test case 6 - Should return enhanced cab invoice summary on giving valid data
        public void Given_ValidData_Should_Return_EnhancedCabInvoiceSummary()
        {
            invoiceGenerator = new InvoiceGenerator(RideType.NORMAL);
            rides            = new Ride[] { new Ride(10, 60), new Ride(5, 30), new Ride(3, 20) };
            invoiceGenerator = new InvoiceGenerator();

            double         fare    = invoiceGenerator.CalculateFare(rides);
            double         average = fare / rides.Length;
            InvoiceSummary data    = new InvoiceSummary(rides.Length, fare);

            Assert.AreEqual(data.numberOfRides, rides.Length);
            Assert.AreEqual(data.averageFare, average);
            Assert.AreEqual(data.totalFare, fare);
        }
コード例 #18
0
        public void GivenMultipleRides_ShouldReturnTotalFare()
        {
            Rides        firstRide  = new Rides(2.0, 5, "Premium");
            Rides        secondRide = new Rides(0.1, 1, "Normal");
            List <Rides> rides      = new List <Rides> {
                firstRide, secondRide
            };

            UserAccount.AddRides(this.USERID, rides);
            InvoiceSummary invoiceSummary = this.INVOICEGENERATOR.GetInvoiceSummary(this.USERID);
            double         expected       = 30;

            Assert.AreEqual(expected, invoiceSummary.TotalFare);
        }
コード例 #19
0
        public void GivenMultipleRides_Should_Return_NumberOfRide_AggregateFareAndAverageFare()
        {
            ///Arrange
            invoiceGenerator = new InvoiceGenerator(RideType.NORMAL);
            Ride[] rides = { new Ride(2.0, 9), new Ride(0.1, 1), new Ride(0.2, 1) };
            ///Act
            InvoiceSummary invoiceSummary         = invoiceGenerator.CalculateFare(rides);
            var            result                 = invoiceSummary.GetHashCode();
            InvoiceSummary expectedSummary        = new InvoiceSummary(3, 39.0, 13.0);
            var            resultExpectedHashCode = expectedSummary.GetHashCode();

            ///Assert
            Assert.AreEqual(invoiceSummary, expectedSummary);
        }
コード例 #20
0
ファイル: TermManager.cs プロジェクト: PhysicalEd/NFTB.Mobile
        public async Task <InvoiceSummary> SaveInvoice(InvoiceSummary invoice)
        {
            BaseAPI <InvoiceSummary> api = new BaseAPI <InvoiceSummary>();

            api.RelativeUrl = "term/saveinvoice";
            api.ParameterDictionary.Add("InvoiceID", invoice.InvoiceID.ToString());
            api.ParameterDictionary.Add("TermID", invoice.TermID.ToString());
            api.ParameterDictionary.Add("InvoiceDate", invoice.InvoiceDate.ToString());
            api.ParameterDictionary.Add("NumberOfSessions", invoice.NumberOfSessions.ToString());
            api.ParameterDictionary.Add("TotalAmount", invoice.TotalAmount.ToString());
            api.ParameterDictionary.Add("WhenPaid", invoice.WhenPaid.ToString());

            return(await api.GetAsync());
        }
コード例 #21
0
            public static string Create(InvoiceSummary invoice)
            {
                //TODO: key should be the registered date?
                var fmt = new FilenameFormat
                {
                    InvoiceDate    = invoice.InvoiceDate ?? DateTime.MinValue,
                    Supplier       = invoice.Supplier,
                    Id             = invoice.Id,
                    RegisteredDate = invoice.CreatedDate ?? DateTime.MinValue,
                    State          = invoice.TaskState,
                };

                return(fmt.ToString());
            }
コード例 #22
0
        public void GivenUserIdOfPremiumAndNormalUser_WhenCalculated_ShouldReturnsTotalFare()
        {
            string userId = "Birendra@12345";

            Ride[] rides =
            {
                new Ride(CabRide.NORMAL,  2.0, 1.0),
                new Ride(CabRide.PREMIUM, 2.5, 1.5)
            };
            rideRepository.AddRides(userId, rides);
            InvoiceSummary retunTotal = invoiceGenerator.CalculateCabFare(rideRepository.GetRides(userId));

            Assert.AreEqual(61.5, retunTotal.totalFare);
        }
コード例 #23
0
        public void GivenUserIdOfMultiRidesToUserId_ShouldTotalFare()
        {
            string userId = "Pranali@123";

            Ride[] rides =
            {
                new Ride("normal",  2.0, 1),
                new Ride("premium", 2.5, 1)
            };
            this.rideRepository.AddRides(userId, rides);
            InvoiceSummary retunTotal = this.invoice.CalculateFare(this.rideRepository.GetRides(userId));

            Assert.AreEqual(60.5, retunTotal.TotalFare);
        }
コード例 #24
0
        public void GivenMultipleRidesShouldReturnInvoiceSummarywithAverageFare()
        {
            //Creating instance of invoice generator
            InvoiceGenerator invoiceGenerator = new InvoiceGenerator();

            Ride[] rides = { new Ride(2.0, 5), new Ride(0.1, 1) };

            //Generating Summary for rides
            InvoiceSummary summary         = invoiceGenerator.CalculateFare(rides);
            InvoiceSummary expectedSummary = new InvoiceSummary(2, 30.0);

            //Asserting values with average in equals to formula in invoice summary
            Assert.AreEqual(expectedSummary, summary);
        }
コード例 #25
0
        public void GivenNormalRide_WhenToCalculateFare_ShouldReturnNormalFare()
        {
            string      userID = "sangli";
            List <Ride> rides  = new List <Ride> {
                new Ride(2.0, 5), new Ride(2.0, 5)
            };
            RideRepository rideRepository = new RideRepository();

            rideRepository.AddUser(userID, rides);
            InvoiceSummary summary         = rideRepository.GetInvoiceSummary("sangli", RideType.NORMAL_RIDE);
            InvoiceSummary Expectedsummary = new InvoiceSummary(2, 50, 25);

            Assert.AreEqual(Expectedsummary, summary);
        }
コード例 #26
0
ファイル: Tests.cs プロジェクト: Visgarg/Cab-Invoice-Day-23
        public void GivenMultipleRidesShouldReturnInvoiceSummary()
        {
            //Creating instance of invoice generator
            InvoiceGenerator invoiceGenerator = new InvoiceGenerator(RideType.PREMIUM);

            Ride[] rides = { new Ride(2.0, 5), new Ride(0.1, 1) };

            //Generating Summary for rides
            InvoiceSummary summary         = invoiceGenerator.CalculateFare(rides);
            InvoiceSummary expectedSummary = new InvoiceSummary(2, 60.0);

            //Asserting values
            Assert.AreEqual(expectedSummary, summary);
        }
コード例 #27
0
        public void WhenGivenMultipleRidesGetInvoiceSummary()
        {
            // Create list for multiple rides
            List <Ride> rides = new List <Ride>();

            rides.Add(new Ride(RideType.NORMAL, 5, 15));
            rides.Add(new Ride(RideType.NORMAL, 5, 15));

            // Get invoice summary for multiple rides
            InvoiceSummary actual   = generator.GetInvoiceSummary(rides);
            InvoiceSummary expected = new InvoiceSummary(130, 2, 65);

            Assert.AreEqual(expected, actual);
        }
コード例 #28
0
 public void givenUserId_WhenInCorrect_ShouldThrowInvalidUserException()
 {
     try {
         string      userID = "pune";
         List <Ride> rides  = new List <Ride> {
             new Ride(2.0, 5), new Ride(2.0, 5)
         };
         RideRepository rideRepository = new RideRepository();
         rideRepository.AddUser(userID, rides);
         InvoiceSummary summary = rideRepository.GetInvoiceSummary("sangli", RideType.NORMAL_RIDE);
     }
     catch (CabInvoiceException e) {
         Assert.AreEqual(CabInvoiceException.ExceptionType.INVAILD_USERID, e.type);
     }
 }
コード例 #29
0
 public void GivenEmptyRides_WhenCalculated_shouldReturnCustomException()
 {
     try
     {
         string userId = "*****@*****.**";
         this.invoiceService.ValidateUserId(userId);
         Ride[] rides = { };
         this.invoiceService.AddRides(userId, rides);
         InvoiceSummary summary = this.invoiceService.GetInvoiceSummary(userId);
     }
     catch (CabInvoiceException e)
     {
         throw new CabInvoiceException(CabInvoiceException.ExceptionType.Empty_data, e.Message);
     }
 }
コード例 #30
0
        public void GivenMultipleRides_ShouldReturnInvoiceSummaryWithAvg()
        {
            // Arrange
            invoiceGenerator = new InvoiceGenerator(RideType.NORMAL);
            Ride[] rides = { new Ride(2.0, 5), new Ride(0.1, 1) };
            // Act
            InvoiceSummary invoiceSummary = invoiceGenerator.CalculateAvgFare(rides);
            // if both the objects are equal then get the same HashCode for both the objects
            var            resultHashCode         = invoiceSummary.GetHashCode();
            InvoiceSummary expectedInvoiceSummary = new InvoiceSummary(30.0, 2, 15.0);
            var            resulExpectedHashCode  = expectedInvoiceSummary.GetHashCode();

            // Assert
            Assert.AreEqual(expectedInvoiceSummary, invoiceSummary);
        }
コード例 #31
0
        /// <summary>
        /// Returns the InvoiceSummary of the invoice
        /// </summary>
        /// <param name="invoice"></param>
        /// <returns></returns>
        private InvoiceSummary GetInvoiceSummary(Invoice invoice)
        {
            InvoiceSummary invoiceSummary = new InvoiceSummary();
            invoiceSummary.LineItemCount = invoice.LineItem.Count().ToString();
            invoiceSummary.TotalLineItemAmount =
                (from cc in invoice.LineItem
                 select cc.ChargeAmount[0].Value + cc.ChargeAmount[1].Value).Sum();

            invoiceSummary.TotalAmount = new TotalAmount()
            {
                Value =
                    (from cc in invoice.LineItem
                     select cc.TotalNetAmount).Sum()
            };
            invoiceSummary.AddOnCharges = new InvoiceSummaryAddOnCharges[]
            {
                new InvoiceSummaryAddOnCharges(){AddOnChargeName = "ISCAllowed",
                                                 AddOnChargeAmount = (from cc in invoice.LineItem
                                                                     select (from ccc in cc.AddOnCharges
                                                                            where ccc.AddOnChargeName == "ISCAllowed"
                                                                            select ccc.AddOnChargeAmount).FirstOrDefault()).Sum()
                },
                new InvoiceSummaryAddOnCharges(){AddOnChargeName = "OtherChargesAllowed",
                                                 AddOnChargeAmount = (from cc in invoice.LineItem
                                                                     select (from ccc in cc.AddOnCharges
                                                                            where ccc.AddOnChargeName == "OtherChargesAllowed"
                                                                            select ccc.AddOnChargeAmount).FirstOrDefault()).Sum()
                }
            };
            invoiceSummary.TotalAmountWithoutVAT = invoiceSummary.TotalAmount.Value;
            invoiceSummary.TotalAmountWithoutVATSpecified = true;
            invoiceSummary.TotalAmountInClearanceCurrency = invoiceSummary.TotalAmount.Value;
            invoiceSummary.TotalAmountInClearanceCurrencySpecified = true;
            return invoiceSummary;
        }