def test_totalPrice_withMaximumSessions(self): patient = Patient(name='patient one with order ', mobileNumber='11111') service = Service(name='service for orders x', price=250) offer = Offer(name='offer one ') serviceOffer = ServiceOffer (price=100, service=service, minimumSessions=2, maximumSessions=2) offer.serviceOffers.append( serviceOffer ) sessions = [Session(),Session(),Session()] order = ServiceOrder(patient=patient, service=service, sessions=sessions, numberOfSessions=5 , serviceOffer=serviceOffer) db.session.add(offer) db.session.add(order) db.session.commit() self.assertEquals(serviceOffer.minimumSessions, 2) self.assertEquals(serviceOffer.maximumSessions, 2) self.assertEquals(serviceOffer.calculatePrice(5, service.price), 950) self.assertEquals(order.totalPrice, 950) self.assertEquals(order.totalPayments, 0)
def test_totalPrice(self): patient = Patient(name='patient one with order ', mobileNumber='11111') service = Service(name='service for orders x', price=250) offer = Offer(name='offer one ') serviceOffer = ServiceOffer(price=100, service = service, minimumSessions=1) offer.serviceOffers.append( serviceOffer ) sessions = [Session(),Session(),Session()] order = ServiceOrder(patient=patient, service=service, sessions=sessions, numberOfSessions=3 , serviceOffer=serviceOffer) self.assertEquals(serviceOffer.minimumSessions, 1) self.assertEquals(serviceOffer.calculatePrice(3, service.price), 450) self.assertEquals(order.totalPrice, ((3-1) * serviceOffer.price) + (serviceOffer.minimumSessions * service.price)) self.assertEquals(order.totalPayments, 0)
def test_totalPrice_zero_minimumSessions(self): patient = Patient(name='patient one with order ', mobileNumber='11111') service = Service(name='service for orders x', price=250) offer = Offer(name='offer one with zero minimum no of sessions ') serviceOffer = ServiceOffer(price=100, service = service) offer.serviceOffers.append(serviceOffer) sessions = [Session(),Session(),Session()] order = ServiceOrder(patient=patient, service=service, sessions=sessions, numberOfSessions=3 , serviceOffer=serviceOffer) self.assertEquals(serviceOffer.minimumSessions, 0) self.assertEquals(serviceOffer.calculatePrice(3, service.price), 300) self.assertEquals(order.numberOfSessions, 3) self.assertEquals(order.sessions.count(), 3) self.assertEquals(order.totalPrice, 100 * 3) self.assertEquals(order.totalPayments, 0)
def test_totalPrice_withMaximumSessionsArbitrry(self): service = Service(name='service for orders x', price=250) servcieOffer = ServiceOffer(price=100, service=service) numberOfSessions = 1 expectedResult = 100 self.assertEquals(servcieOffer.calculatePrice(numberOfSessions, service.price), expectedResult) servcieOffer = ServiceOffer(price=100, service=service, minimumSessions=1, maximumSessions=1) numberOfSessions = 1 expectedResult = 250 self.assertEquals(servcieOffer.calculatePrice(numberOfSessions, service.price), expectedResult) servcieOffer = ServiceOffer(price=100, service=service, minimumSessions=3, maximumSessions=4) numberOfSessions = 1 expectedResult = 250 self.assertEquals(servcieOffer.calculatePrice(numberOfSessions, service.price), expectedResult) servcieOffer = ServiceOffer(price=100, service=service, minimumSessions=5, maximumSessions=5) numberOfSessions = 1 expectedResult = 250 self.assertEquals(servcieOffer.calculatePrice(numberOfSessions, service.price), expectedResult) servcieOffer = ServiceOffer(price=100, service=service, minimumSessions=6, maximumSessions=1) numberOfSessions = 1 expectedResult = 250 self.assertEquals(servcieOffer.calculatePrice(numberOfSessions, service.price), expectedResult) servcieOffer = ServiceOffer(price=100, service=service, minimumSessions=2, maximumSessions=2) numberOfSessions = 1 expectedResult = 250 self.assertEquals(servcieOffer.calculatePrice(numberOfSessions, service.price), expectedResult) servcieOffer = ServiceOffer(price=100, service=service, minimumSessions=2, maximumSessions=2) numberOfSessions = 1 expectedResult = 250 self.assertEquals(servcieOffer.calculatePrice(numberOfSessions, service.price), expectedResult) servcieOffer = ServiceOffer(price=100, service=service) numberOfSessions = 4 expectedResult = 100 * 4 self.assertEquals(servcieOffer.calculatePrice(numberOfSessions, service.price), expectedResult) servcieOffer = ServiceOffer(price=100, service=service, minimumSessions=1, maximumSessions=1) numberOfSessions = 4 expectedResult = 850 self.assertEquals(servcieOffer.calculatePrice(numberOfSessions, service.price), expectedResult) servcieOffer = ServiceOffer(price=100, service=service, minimumSessions=3, maximumSessions=4) numberOfSessions = 3 expectedResult = 750 self.assertEquals(servcieOffer.calculatePrice(numberOfSessions, service.price), expectedResult) servcieOffer = ServiceOffer(price=100, service=service, minimumSessions=5, maximumSessions=5) numberOfSessions = 5 expectedResult = 1250 self.assertEquals(servcieOffer.calculatePrice(numberOfSessions, service.price), expectedResult) servcieOffer = ServiceOffer(price=100, service=service, minimumSessions=6, maximumSessions=1) numberOfSessions = 5 expectedResult = 1250 self.assertEquals(servcieOffer.calculatePrice(numberOfSessions, service.price), expectedResult) servcieOffer = ServiceOffer(price=100, service=service, minimumSessions=2, maximumSessions=2) numberOfSessions = 7 expectedResult = 1450 self.assertEquals(servcieOffer.calculatePrice(numberOfSessions, service.price), expectedResult) servcieOffer = ServiceOffer(price=100, service=service, minimumSessions=2, maximumSessions=2) numberOfSessions = 8 expectedResult = 1700 self.assertEquals(servcieOffer.calculatePrice(numberOfSessions, service.price), expectedResult) servcieOffer = ServiceOffer(price=50, service=service, minimumSessions=3, maximumSessions=4) numberOfSessions = 10 expectedResult = 800 self.assertEquals(servcieOffer.calculatePrice(numberOfSessions, 100), expectedResult) servcieOffer = ServiceOffer(price=0, service=service, minimumSessions=0, maximumSessions=0) numberOfSessions = 10 expectedResult = 0 self.assertEquals(servcieOffer.calculatePrice(numberOfSessions, 100), expectedResult) servcieOffer = ServiceOffer(price=0, service=service, minimumSessions=0, maximumSessions=0) numberOfSessions = 10 expectedResult = 0 self.assertEquals(servcieOffer.calculatePrice(numberOfSessions), expectedResult)