def test_status_and_dispensed(self): mock = FlagServiceMock() bs = CoffeeService('*****@*****.**', DataService(mock)) self.assertEqual(2, bs.status()) bs.dispensed() self.assertEqual(1, bs.status()) bs.dispensed() self.assertEqual(0, bs.status()) bs.dispensed() self.assertEqual(0, bs.status()) mock.data['*****@*****.**']['coffee|remaining'] = 4 self.assertEqual(4, bs.status()) bs.dispensed() self.assertEqual(3, mock.data['*****@*****.**']['coffee|remaining']) self.assertEqual(3, bs.status()) bs.dispensed() self.assertEqual(2, mock.data['*****@*****.**']['coffee|remaining']) self.assertEqual(2, bs.status()) bs.dispensed() self.assertEqual(1, mock.data['*****@*****.**']['coffee|remaining']) self.assertEqual(1, bs.status()) bs.dispensed() self.assertEqual(0, mock.data['*****@*****.**']['coffee|remaining']) self.assertEqual(0, bs.status()) bs.dispensed() self.assertEqual(0, mock.data['*****@*****.**']['coffee|remaining']) self.assertEqual(0, bs.status())
def test_status(self): mock = FlagServiceMock() bs = CoffeeService('*****@*****.**', DataService(mock)) self.assertEqual(2, bs.status()) mock.data['*****@*****.**']['coffee|perday'] = 10 mock.data['*****@*****.**']['coffee|remaining'] = 10 self.assertEqual(10, bs.status()) mock.data['*****@*****.**']['coffee|perday'] = 10 mock.data['*****@*****.**']['coffee|remaining'] = None self.assertEqual(10, bs.status()) mock.data['*****@*****.**']['coffee|perday'] = 10 mock.data['*****@*****.**']['coffee|remaining'] = 5 three_years_ago = (datetime.datetime.now() - datetime.timedelta(days=3 * 365)).strftime(DATETIME_FORMAT) mock.data['*****@*****.**']['coffee|last'] = three_years_ago self.assertEqual(10, bs.status()) mock.data['*****@*****.**']['coffee|perday'] = 10 mock.data['*****@*****.**']['coffee|remaining'] = 5 one_day_ago = (datetime.datetime.now() - datetime.timedelta(days=1)).strftime(DATETIME_FORMAT) mock.data['*****@*****.**']['coffee|last'] = one_day_ago self.assertEqual(10, bs.status()) mock.data['*****@*****.**']['coffee|perday'] = 10 mock.data['*****@*****.**']['coffee|remaining'] = 5 mock.data['*****@*****.**']['coffee|last'] = datetime.datetime.now().strftime(DATETIME_FORMAT) self.assertEqual(5, bs.status()) mock.data['*****@*****.**']['coffee|perday'] = 10 mock.data['*****@*****.**']['coffee|remaining'] = 2 mock.data['*****@*****.**']['coffee|last'] = datetime.datetime.now().strftime(DATETIME_FORMAT) self.assertEqual(2, bs.status()) mock.data['*****@*****.**']['coffee|perday'] = 10 mock.data['*****@*****.**']['coffee|remaining'] = 1 mock.data['*****@*****.**']['coffee|last'] = datetime.datetime.now().strftime(DATETIME_FORMAT) self.assertEqual(1, bs.status()) mock.data['*****@*****.**']['coffee|perday'] = 1 mock.data['*****@*****.**']['coffee|remaining'] = 1 mock.data['*****@*****.**']['coffee|last'] = datetime.datetime.now().strftime(DATETIME_FORMAT) self.assertEqual(1, bs.status()) mock.data['*****@*****.**']['coffee|perday'] = 1 mock.data['*****@*****.**']['coffee|remaining'] = 0 mock.data['*****@*****.**']['coffee|last'] = datetime.datetime.now().strftime(DATETIME_FORMAT) self.assertEqual(0, bs.status()) mock.data['*****@*****.**']['coffee|perday'] = 10 mock.data['*****@*****.**']['coffee|remaining'] = 0 mock.data['*****@*****.**']['coffee|last'] = datetime.datetime.now().strftime(DATETIME_FORMAT) self.assertEqual(0, bs.status())