def test_UserSpendMoneyReturn108USD_When_SubscribingConsistOf_ShaveAndGelAsProduct_OnceAMonthAsShippingInterval_StartDate14Jan2017_Today13Jan2018(self): product = ProductBuilder().withTitle("Shave+Gel").withPrice(9).create() interval = OnceAMonth(14) user = User() subscribing = Subscribing(user, product, interval, date(2017, 1, 14)) subscribing.calculatePaymentTo(date(2018, 1, 13)) self.assertEqual(user.spendCash, 108)
def test_UserSpendMoneyReturn2USD_When_SubscribingConsistOf_ShaveAsProduct_OnceAMonthAsShippingInterval_StartDate14Jan2017_calculatePaymentTo14Feb2017_calculatePaymentTo16Feb2017(self): product = ProductBuilder().withTitle("Shave").withPrice(1).create() interval = OnceAMonth(14) user = User() subscribing = Subscribing(user, product, interval, date(2017, 1, 14)) subscribing.calculatePaymentTo(date(2017, 2, 14)) subscribing.calculatePaymentTo(date(2017, 2, 16)) self.assertEqual(user.spendCash, 2)
def test_UserSpendMoneyReturn2USD_When_SubscribingConsistOf_ShaveAsProduct_OnceAMonthAsShippingInterval_ShippingDay_3_StartDate10Dec2016_Today15Jan2017(self): product = ProductBuilder().withTitle("Shave").withPrice(1).create() interval = OnceAMonth(3) user = User() subscribing = Subscribing(user, product, interval, date(2016, 12, 10)) subscribing.calculatePaymentTo(date(2017, 1, 15)) self.assertEqual(user.spendCash, 1)
def test_UserSpendMoneyReturn3USD_When_SubscribingConsistOf_ShaveAsProduct_OnceAMonthAsShippingInterval_StartDate14Jan2017_Today26Feb2017_ChangeIntervalTo_TwiceAMonth_Day_10_25_StartDate_1Feb2017(self): product = ProductBuilder().withTitle("Shave").withPrice(1).create() interval = OnceAMonth(14) user = User() subscribing = Subscribing(user, product, interval, date(2017, 1, 14)) subscribing.calculatePaymentTo(date(2017, 2, 1)) subscribing.setInterval(TwiceAMonth(10, 25)) subscribing.calculatePaymentTo(date(2017, 2, 26)) self.assertEqual(user.spendCash, 3)