コード例 #1
0
        public void GivenMultipleRides_WhenToCalculate_ShouldReturnsInvoiceSummary()
        {
            Ride[] rides =
            {
                new Ride(2.0, 5),
                new Ride(0.1, 1)
            };
            InvoiceSummary invoiceSummary  = invoiceGenerator.GetInvoiceSummary(rides);
            InvoiceSummary invoiceSummary1 = new InvoiceSummary(2, 15);

            Assert.AreEqual(invoiceSummary, invoiceSummary1);
        }
コード例 #2
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);
        }
コード例 #3
0
        public void givenListOfRides_WhenCalculated_ShouldReturnInvoiceInformation()
        {
            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;

            CabInfo info = invoiceGenerator.GetInvoiceSummary(rideList);

            Assert.IsTrue(info.numberOfRides == expectedRides && info.totalFare == expectedFare && info.averageFare == expectedAverage);
        }
コード例 #4
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);
        }
コード例 #5
0
        public void GivenListOfRides_Should_Return_InvoiceData()
        {
            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);

            InvoiceData data = invoiceGenerator.GetInvoiceSummary(rideList);

            Assert.IsTrue(data.noOfRides == expectedRides && data.totalFare == expectedFare && data.averageFare == expectedAverage);
        }
コード例 #6
0
        public void GivenUserId_ShouldReturn_RideListAndInvoice()
        {
            invoiceGenerator = new InvoiceGenerator(RideType.NORMAL);
            Ride[]         ride1          = { new Ride(6.0, 7), new Ride(3.0, 5), new Ride(0.6, 3) };
            Ride[]         ride2          = { new Ride(5.0, 7), new Ride(15.0, 27), new Ride(9.0, 15) };
            string         P1             = "Tony";
            string         P2             = "Chris";
            RideRepository rideRepository = invoiceGenerator.GetRepo();

            rideRepository.AddRide(P1, ride1);
            rideRepository.AddRide(P2, ride2);
            InvoiceSummary invoice_P1         = invoiceGenerator.GetInvoiceSummary(P1);
            InvoiceSummary expectedInvoice_P1 = new InvoiceSummary(3, 65);

            Assert.AreEqual(invoice_P1, expectedInvoice_P1);
        }
コード例 #7
0
        public void GivenMultipleRides_ShouldReturnTotalFare()
        {
            InvoiceGenerator invoiceGenerator = new InvoiceGenerator();
            string           userId           = "soumen";
            Rides            firstRide        = new Rides(2.0, 5);
            Rides            secondRide       = new Rides(0.1, 1);
            List <Rides>     rides            = new List <Rides> {
                firstRide, secondRide
            };

            RideRepository.AddRides(userId, rides);
            InvoiceSummary invoiceSummary = invoiceGenerator.GetInvoiceSummary(userId);
            double         expected       = 30;

            Assert.AreEqual(expected, invoiceSummary.TotalFare);
        }
コード例 #8
0
        public void GivenUserId_ShouldReturn_RideListAndInvoice()
        {
            invoiceGenerator = new InvoiceGenerator(RideType.NORMAL);
            Ride[]         ridesPerson1   = { new Ride(2.0, 5), new Ride(0.1, 3), new Ride(3.0, 5) };
            Ride[]         ridesPerson2   = { new Ride(4.0, 20), new Ride(5.0, 25), new Ride(4.0, 30) };
            string         keyPerson1     = "Sam";
            string         keyPerson2     = "Mark";
            RideRepository rideRepository = invoiceGenerator.ToAccess_rideRepository();

            rideRepository.AddRide(keyPerson1, ridesPerson1);
            rideRepository.AddRide(keyPerson2, ridesPerson2);
            // Arrange
            InvoiceSummary invoiceReturn_For_Person1   = invoiceGenerator.GetInvoiceSummary(keyPerson1);
            InvoiceSummary expectedInvoice_For_Person1 = new InvoiceSummary(3, 65);

            // Assert
            Assert.AreEqual(expectedInvoice_For_Person1, invoiceReturn_For_Person1);
        }
コード例 #9
0
        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);
        }
コード例 #10
0
        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);
        }
コード例 #11
0
        public void GivenPremiumRide_ShouldReturnInvoiceSummary()
        {
            InvoiceGenerator invoiceGenerator = new InvoiceGenerator();
            string           userId           = "soumen";
            Rides            firstRide        = new Rides(3.0, 5, "Premium");
            Rides            secondRide       = new Rides(1, 1, "Normal");
            List <Rides>     rides            = new List <Rides> {
                firstRide, secondRide
            };

            RideRepository.AddRides(userId, rides);
            InvoiceSummary invoiceSummary = invoiceGenerator.GetInvoiceSummary(userId);
            InvoiceSummary expected       = new InvoiceSummary
            {
                TotalNumberOfRides = 2,
                TotalFare          = 76.0,
                AverageFarePerRide = 33
            };

            Assert.AreEqual(expected.TotalFare, invoiceSummary.TotalFare);
        }
コード例 #12
0
        public void GivenUSerId_ShouldReturnInvoiceSummary()
        {
            InvoiceGenerator invoiceGenerator = new InvoiceGenerator();
            string           userId           = "soumen";
            Rides            firstRide        = new Rides(3.0, 5);
            Rides            secondRide       = new Rides(1, 1);
            List <Rides>     rides            = new List <Rides> {
                firstRide, secondRide
            };

            RideRepository.AddRides(userId, rides);
            InvoiceSummary invoiceSummary = invoiceGenerator.GetInvoiceSummary(userId);
            InvoiceSummary expected       = new InvoiceSummary
            {
                TotalNumberOfRides = 2,
                TotalFare          = 46,
                AverageFarePerRide = 23
            };

            object.Equals(expected, invoiceSummary);
        }