49 lines
1.8 KiB
Python
49 lines
1.8 KiB
Python
from unittest import TestCase
|
|
|
|
from amqp.adapter.amq_message_factory import AMQMessageFactory
|
|
from amqp.model.snowflake_id import SnowflakeId
|
|
|
|
|
|
class SnowflakeIdTest(TestCase):
|
|
|
|
def test_equals(self):
|
|
_id_1 = AMQMessageFactory.get_instance(1).generate_snowflake_id()
|
|
_id_2 = AMQMessageFactory.get_instance(1).generate_snowflake_id()
|
|
self.assertFalse(_id_1 == _id_2)
|
|
_id_3 = SnowflakeId(_id_1.get_bytes())
|
|
self.assertTrue(_id_1 == _id_3)
|
|
|
|
def test_lt(self):
|
|
_id_1 = AMQMessageFactory.get_instance(1).generate_snowflake_id()
|
|
_id_2 = AMQMessageFactory.get_instance(1).generate_snowflake_id()
|
|
self.assertTrue(_id_1 < _id_2)
|
|
|
|
|
|
def test_from_hex(self):
|
|
_factory = AMQMessageFactory.get_instance(1)
|
|
_id_1 = _factory.generate_snowflake_id()
|
|
_id_1_ser = _id_1.as_string()
|
|
_id_2 = SnowflakeId.from_hex(_id_1_ser)
|
|
self.assertTrue(_id_1 == _id_2)
|
|
with self.assertRaises(RuntimeError) as context:
|
|
SnowflakeId.from_hex("100")
|
|
self.assertTrue(f"MessageId is {SnowflakeId.SNOWFLAKE_ID_WIDTH * 8} bits wide, it is represented by HEX string "
|
|
in str(context.exception))
|
|
|
|
def test_get_bytes(self):
|
|
_factory = AMQMessageFactory.get_instance(1)
|
|
_id_1 = _factory.generate_snowflake_id()
|
|
_id_1_ser = _id_1.get_bytes()
|
|
self.assertEqual(SnowflakeId.SNOWFLAKE_ID_WIDTH, len(_id_1_ser))
|
|
|
|
def test_get_bits(self):
|
|
_factory = AMQMessageFactory.get_instance(1)
|
|
_id_1 = _factory.generate_snowflake_id()
|
|
self.assertEqual(2, len(_id_1.get_bits()))
|
|
|
|
|
|
def test_as_string(self):
|
|
_factory = AMQMessageFactory.get_instance(1)
|
|
_id_1 = _factory.generate_snowflake_id()
|
|
self.assertEqual(2 * SnowflakeId.SNOWFLAKE_ID_WIDTH, len(_id_1.as_string()))
|