class TestAlertIncreasing(_BaseTestCase):

    def setUp(self):
        self.alert = Alert(ALERT_INC)

    def test_name_matches(self):
        self.assertEqual(self.alert.get('name'), ALERT_INC['name'])

    def test_target_matches(self):
        self.assertEqual(self.alert.get('target'), ALERT_INC['target'])

    def test_warning_matches(self):
        self.assertEqual(self.alert.get('warning'), ALERT_INC['warning'])

    def test_critical_matches(self):
        self.assertEqual(self.alert.get('critical'), ALERT_INC['critical'])

    def test_should_return_none_for_low_value(self):
        self.assert_check_value_returns_item_for_value(0, Level.NOMINAL)

    def test_should_return_warning_for_warning_value(self):
        self.assert_check_value_returns_item_for_value(
            self.alert.get('warning'), Level.WARNING)

    def test_should_return_warning_for_mid_value(self):
        self.assert_check_value_returns_item_for_value(1.5, Level.WARNING)

    def test_should_return_critical_for_critical_value(self):
        self.assert_check_value_returns_item_for_value(2, Level.CRITICAL)

    def test_should_return_critical_for_high_value(self):
        self.assert_check_value_returns_item_for_value(3, Level.CRITICAL)
class TestAlertWithFrom(_BaseTestCase):

    def setUp(self):
        self.alert = Alert(ALERT_FROM)

    def test_should_have_default_from_time_of_1_min(self):
        self.assertEqual(self.alert.get('from'), ALERT_FROM['from'])
class TestValueForLevel(_BaseTestCase):

    def setUp(self):
        self.alert = Alert(ALERT_INC)

    def test_nominal_returns_warning_value(self):
        self.assertEqual(
            self.alert.value_for_level(Level.NOMINAL),
            self.alert.get('warning'))

    def test_warning_returns_warning_value(self):
        self.assertEqual(
            self.alert.value_for_level(Level.WARNING),
            self.alert.get('warning'))

    def test_critical_returns_critical_value(self):
        self.assertEqual(
            self.alert.value_for_level(Level.CRITICAL),
            self.alert.get('critical'))

    def test_unknown_level_returns_none(self):
        self.assertEqual(self.alert.value_for_level('unkown level'), None)