def test_dispense_beer(self):
        mock = FlagServiceMock()
        bs = BeerService('*****@*****.**', DataService(mock))
        cs = CoffeeService('*****@*****.**', DataService(mock))

        self.assertEqual(1, bs.status())
        self.assertEqual(2, cs.status())
        bs.dispensed()
        self.assertEqual(0, bs.status())
        self.assertEqual(0, cs.status())
        bs.dispensed()
        self.assertEqual(0, bs.status())

        mock.data['*****@*****.**']['coffee|remaining'] = 4
        self.assertEqual(2, bs.status())
        self.assertEqual(4, cs.status())
        bs.dispensed()
        self.assertEqual(2, mock.data['*****@*****.**']['coffee|remaining'])
        self.assertEqual(1, bs.status())
        self.assertEqual(2, cs.status())
        bs.dispensed()
        self.assertEqual(0, mock.data['*****@*****.**']['coffee|remaining'])
        self.assertEqual(0, bs.status())
        self.assertEqual(0, cs.status())
        bs.dispensed()
        self.assertEqual(0, mock.data['*****@*****.**']['coffee|remaining'])
        self.assertEqual(0, bs.status())
        self.assertEqual(0, cs.status())
示例#2
0
    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())