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);
        }
 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);
     }
 }
 public void givenUserId_WhenInblank_ShouldThrowblankUserException()
 {
     try
     {
         string      userID = "";
         List <Ride> rides  = new List <Ride> {
             new Ride(2.0, 5), new Ride(2.0, 5)
         };
         RideRepository rideRepository = new RideRepository();
         rideRepository.AddUser(userID, rides);
     }
     catch (CabInvoiceException e)
     {
         Assert.AreEqual(CabInvoiceException.ExceptionType.BLANK_USERID, e.type);
     }
 }
        public void Given_UserID_and_RideList_Should_Return_InvoiceSummary()
        {
            List <RideDetails> user1Details = new List <RideDetails>();

            user1Details.Add(new RideDetails(20, 15));
            user1Details.Add(new RideDetails(10, 10));
            user1Details.Add(new RideDetails(5, 5));
            user1Details.Add(new RideDetails(15, 10));

            rideRepo.AddUser("user1", user1Details);

            try
            {
                invoiceGenerator.MultipleTripFareCalculationList("user1", InvoiceGenerator.RideType.NORMAL);
                string actualInvoice = invoiceGenerator.GenerateInvoiceSummary();

                Assert.AreEqual("4,450,112.5", actualInvoice);
            }
            catch (InvoiceException e)
            {
                Assert.AreEqual(InvoiceException.ExceptionType.INVALID_USER_ID, e.type);
            }
        }