import unittest
from olc.bean.policy_category import PolicyCategory
class TestPolicyCategory(unittest.TestCase):
def test_policy_category_enum_values(self):
"""测试策略类型枚举值是否正确"""
self.assertEqual(PolicyCategory.FLOW.value, "FLOW")
self.assertEqual(PolicyCategory.ADMISSION.value, "ADMISSION")
self.assertEqual(PolicyCategory.DEGRADE.value, "DEGRADE")
self.assertEqual(PolicyCategory.AUTHORITY.value, "AUTHORITY")
self.assertEqual(PolicyCategory.SYSTEM.value, "SYSTEM")
self.assertEqual(PolicyCategory.ISOLATION.value, "ISOLATION")
self.assertEqual(PolicyCategory.NET.value, "NET")
self.assertEqual(PolicyCategory.RETRY.value, "RETRY")
self.assertEqual(PolicyCategory.TIMELIMITER.value, "TIMELIMITER")
def test_from_string_returns_category_for_valid_name(self):
"""测试from_string方法能正确解析有效的枚举名称"""
self.assertEqual(PolicyCategory.from_string("FLOW"), PolicyCategory.FLOW)
self.assertEqual(PolicyCategory.from_string("ADMISSION"), PolicyCategory.ADMISSION)
self.assertEqual(PolicyCategory.from_string("DEGRADE"), PolicyCategory.DEGRADE)
def test_from_string_case_insensitive(self):
"""测试from_string方法大小写不敏感"""
self.assertEqual(PolicyCategory.from_string("flow"), PolicyCategory.FLOW)
self.assertEqual(PolicyCategory.from_string("Flow"), PolicyCategory.FLOW)
self.assertEqual(PolicyCategory.from_string("admission"), PolicyCategory.ADMISSION)
self.assertEqual(PolicyCategory.from_string("Admission"), PolicyCategory.ADMISSION)
def test_from_string_returns_none_for_invalid_name(self):
"""测试from_string方法对无效名称返回None"""
self.assertIsNone(PolicyCategory.from_string("invalid"))
self.assertIsNone(PolicyCategory.from_string(""))
self.assertIsNone(PolicyCategory.from_string("UNKNOWN"))
def test_from_string_returns_none_for_none(self):
"""测试from_string方法对None输入返回None"""
self.assertIsNone(PolicyCategory.from_string(None))
def test_is_admission_returns_true_for_admission_category(self):
"""测试is_admission方法对ADMISSION类型返回True"""
self.assertTrue(PolicyCategory.is_admission("ADMISSION"))
self.assertTrue(PolicyCategory.is_admission("admission"))
self.assertTrue(PolicyCategory.is_admission("Admission"))
def test_is_admission_returns_false_for_non_admission_category(self):
"""测试is_admission方法对非ADMISSION类型返回False"""
self.assertFalse(PolicyCategory.is_admission("FLOW"))
self.assertFalse(PolicyCategory.is_admission("flow"))
self.assertFalse(PolicyCategory.is_admission("DEGRADE"))
self.assertFalse(PolicyCategory.is_admission("AUTHORITY"))
def test_is_admission_returns_false_for_invalid_category(self):
"""测试is_admission方法对无效类型返回False"""
self.assertFalse(PolicyCategory.is_admission("invalid"))
self.assertFalse(PolicyCategory.is_admission(""))
self.assertFalse(PolicyCategory.is_admission(None))
if __name__ == '__main__':
unittest.main()