public void GivenUserId_WhenInvoivceService_ShouldReturnInvoice()
        {
            invoiceGenerator = new InvoiceGenerator(RideType.NORMAL);
            Ride[] rides = { new Ride(2.0, 5), new Ride(0.1, 1) };
            invoiceGenerator.AddRides("1", rides);
            InvoiceSummary summary         = invoiceGenerator.GetInvoiceSummary("1");
            InvoiceSummary expectedSummary = new InvoiceSummary(2, 30.0, "1");

            Assert.AreEqual(expectedSummary, summary);
        }
        public void GivenPremiumRidesReturnInvoiceService()
        {
            invoiceGenerator = new InvoiceGenerator(RideType.PREMIUM);
            Ride[] rides = { new Ride(2.0, 5), new Ride(0.1, 1) };
            invoiceGenerator.AddRides("ktr", rides);

            InvoiceSummary invoiceSummary  = invoiceGenerator.GetInvoiceSummary("ktr");
            InvoiceSummary expectedSummary = new InvoiceSummary(2, 60);

            Assert.AreEqual(expectedSummary, invoiceSummary);
        }
        public void GivenRidesForDifferentUsersShouldReturnInvoiceSummary()
        {
            //Creating instance of invoice generator
            InvoiceGenerator invoiceGenerator = new InvoiceGenerator(RideType.PREMIUM);

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

            invoiceGenerator.AddRides(userId, rides);
            string userIdForSecondUser = "******";

            Ride[] ridesForSecondUser = { new Ride(3.0, 10), new Ride(1.0, 2) };
            invoiceGenerator.AddRides(userIdForSecondUser, ridesForSecondUser);
            //Generating Summary for rides
            InvoiceSummary summary         = invoiceGenerator.GetInvoiceSummary(userId);
            InvoiceSummary expectedSummary = new InvoiceSummary(2, 60.0);

            //Asserting values with average in equals to formula in invoice summary
            Assert.AreEqual(expectedSummary, summary);
        }
        public void GivenRidesForDifferentUsersShouldReturnInvoiceSummary()
        {
            //Creating instance of invoice generator
            InvoiceGenerator invoiceGenerator = new InvoiceGenerator(RideType.NORMAL);

            RideDetails[] rides       = { new RideDetails(3, 5), new RideDetails(5, 4), new RideDetails(2, 5) };
            string        firstUserId = "001";

            invoiceGenerator.AddRides(firstUserId, rides);
            string userIdForSecondUser = "******";

            RideDetails[] ridesForSecondUser = { new RideDetails(3, 10), new RideDetails(6, 2) };
            invoiceGenerator.AddRides(userIdForSecondUser, ridesForSecondUser);
            //Generating Summary for rides
            InvoiceSummary summary         = invoiceGenerator.GetInvoiceSummary(firstUserId);
            InvoiceSummary expectedSummary = new InvoiceSummary(3, 114, 38);

            //Asserting values with average in equals to formula in invoice summary
            Assert.AreEqual(expectedSummary, summary);
        }
Example #5
0
        public void GetInvoiceSummary_WhenPassedInvalidUserId_ReturnsInvoiceSummary()
        {
            Ride[] rides            = { new Ride(1.0, 1), new Ride(2.0, 1) };
            var    invoiceGenerator = new InvoiceGenerator(RideType.NORMAL);
            var    userID           = "1";

            invoiceGenerator.AddRides("2", rides);
            var exception = Assert.Throws <CabInvoiceException>(() => invoiceGenerator.GetInvoiceSummary(userID));

            Assert.That(exception.type, Is.EqualTo(CabInvoiceException.ExceptionType.INVALID_USER_ID));
        }
Example #6
0
        public void GivenAUserIDTheInvoiceServiceGetsTheListOfRidesFromTheRideRepositoryAndReturnsTheInvoice()
        {
            InvoiceGenerator invoiceGenerator = new InvoiceGenerator(RideType.NORMAL);

            Ride[] rides = { new Ride(2, 5), new Ride(0.1, 1) };
            invoiceGenerator.AddRides("FerrariKiSawari", rides);
            InvoiceSummary summary         = invoiceGenerator.GetInvoiceSummary("FerrariKiSawari");
            InvoiceSummary expectedSummary = new InvoiceSummary(2, 30);

            Assert.AreEqual(expectedSummary, summary);
        }
        public void GivenNullRides_WhenAddingToDictionary_Should_Return_CabInvoiceException()
        {
            rideList = new List <Ride> {
                new Ride(5, 20), null, new Ride(2, 10)
            };
            invoiceGenerator = new InvoiceGenerator(RideType.NORMAL);

            var exception = Assert.Throws <CabInvoiceException>(() => invoiceGenerator.AddRides(1, rideList));

            Assert.AreEqual(CabInvoiceException.Type.NULL_RIDES, exception.type);
        }
Example #8
0
        public void GetInvoiceSummary_WhenPassedUserId_ReturnsInvoiceSummary(RideType rideType, double expectedFare)
        {
            Ride[] rides            = { new Ride(1.0, 1), new Ride(2.0, 1) };
            var    invoiceGenerator = new InvoiceGenerator(rideType);
            var    userID           = "1";

            invoiceGenerator.AddRides(userID, rides);
            var result   = invoiceGenerator.GetInvoiceSummary(userID);
            var expected = new InvoiceSummary(2, expectedFare);

            Assert.That(result, Is.EqualTo(expected));
        }
        public void GivenUserIdToreturnlistofRide()
        {
            InvoiceGenerator invoiceGenerator = new InvoiceGenerator(RideType.PREMIUM);

            Ride[] rides = { new Ride(2.0, 5), new Ride(0.1, 1) };
            invoiceGenerator.AddRides("abc", rides);

            InvoiceSummary invoiceSummary  = invoiceGenerator.GetInvoiceSummary("abc");
            InvoiceSummary expectedSummary = new InvoiceSummary(2, 30);

            Assert.AreEqual(expectedSummary, invoiceSummary);
        }
Example #10
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 #11
0
        public void GivenUserId_InvoiceServiceGetsListOfRides_ShouldReturnInvoiceSummary()
        {
            // Arrange
            invoiceGenerator = new InvoiceGenerator(RideType.NORMAL);
            string userId1 = "USER1";
            string userId2 = "USER2";

            Ride[] rides1 = { new Ride(4, 8), new Ride(6, 10), new Ride(10, 12), new Ride(1, 4) };
            Ride[] rides2 = { new Ride(1, 5), new Ride(4, 7), new Ride(5, 8) };
            invoiceGenerator.AddRides(userId1, rides1);
            invoiceGenerator.AddRides(userId2, rides2);
            InvoiceSummary expectedSummary1 = new InvoiceSummary(4, 244, 61);
            InvoiceSummary expectedSummary2 = new InvoiceSummary(3, 120, 40);

            // Act
            InvoiceSummary actualSummary1 = invoiceGenerator.GetInvoiceSummary(userId1);
            InvoiceSummary actualSummary2 = invoiceGenerator.GetInvoiceSummary(userId2);

            //Assert
            Assert.AreEqual(expectedSummary1, actualSummary1);
            Assert.AreEqual(expectedSummary2, actualSummary2);
        }
Example #12
0
        public void GivenUserId_InvoiceServiceGetsListOfRides_ShouldReturnInvoiceSummary()
        {
            // Arrange
            invoiceGenerator = new InvoiceGenerator(RideType.NORMAL);
            string userId1 = "USER1";
            string userId2 = "USER2";

            Ride[] rides1 = { new Ride(3, 5), new Ride(5, 4), new Ride(2, 5) };
            Ride[] rides2 = { new Ride(0.1, 1), new Ride(0.1, 3), new Ride(0.1, 2) };
            invoiceGenerator.AddRides(userId1, rides1);
            invoiceGenerator.AddRides(userId2, rides2);
            InvoiceSummary expectedSummary1 = new InvoiceSummary(3, 114, 38);
            InvoiceSummary expectedSummary2 = new InvoiceSummary(3, 15, 5);

            // Act
            InvoiceSummary actualSummary1 = invoiceGenerator.GetInvoiceSummary(userId1);
            InvoiceSummary actualSummary2 = invoiceGenerator.GetInvoiceSummary(userId2);

            //Assert
            Assert.AreEqual(expectedSummary1, actualSummary1);
            Assert.AreEqual(expectedSummary2, actualSummary2);
        }
Example #13
0
        public void givenUserId_WhenCheckedIfPresent_ShouldReturnInvoiceInfo()
        {
            rideList = new List <Ride> {
                new Ride(5, 20), new Ride(3, 15), new Ride(2, 10)
            };
            double expectedFare    = 145;
            int    expectedRides   = 3;
            double expectedAverage = expectedFare / expectedRides;

            invoiceGenerator.AddRides(1, rideList);
            CabInfo info = invoiceGenerator.GetUserInvoice(1);

            Assert.IsTrue(info.numberOfRides == expectedRides && info.totalFare == expectedFare && info.averageFare == expectedAverage);
        }
        public void GivenUserId_WhenPresent_Should_Return_CabInvoiceSummary()
        {
            rideList = new List <Ride> {
                new Ride(5, 20), new Ride(3, 15), new Ride(2, 10)
            };
            double expectedFare    = 145;
            int    expectedRides   = 3;
            double expectedAverage = expectedFare / expectedRides;

            invoiceGenerator = new InvoiceGenerator(RideType.NORMAL);

            invoiceGenerator.AddRides(1, rideList);
            InvoiceData data = invoiceGenerator.GetUserInvoice(1);

            Assert.IsTrue(data.noOfRides == expectedRides && data.totalFare == expectedFare && data.averageFare == expectedAverage);
        }
Example #15
0
        public void GivenUserId_ShouldReturnListOfRides()
        {
            Ride[] rides =
            {
                new Ride(1.0, 1),
                new Ride(2.0, 2),
                new Ride(2.0, 2),
                new Ride(4.0, 4),
                new Ride(3.0, 3)
            };
            string userId = "123";

            invoiceGenerator = new InvoiceGenerator(RideType.NORMAL);
            invoiceGenerator.AddRides(userId, rides);
            Ride[] actual = invoiceGenerator.rideRepository.GetRides(userId);
            Assert.AreEqual(rides, actual);
        }
Example #16
0
 //Test case 7 - Should return List of rides on giving user id
 public void GivenUserId_Should_Return_ListOfRides()
 {
     try
     {
         invoiceGenerator = new InvoiceGenerator(RideType.NORMAL);
         rides            = new Ride[] { new Ride(5, 20), new Ride(3, 15), new Ride(2, 10) };
         string         userId         = "123";
         RideRepository rideRepository = new RideRepository();
         invoiceGenerator.AddRides(userId, rides);
         Ride[] actual = rideRepository.GetRides(userId);
         Assert.AreEqual(rides, actual);
     }
     catch (CabInvoiceException ex)
     {
         Assert.AreEqual(CabInvoiceException.ExceptionType.INVALID_USER_ID, ex.type);
     }
 }