52 lines
1.7 KiB
Python
52 lines
1.7 KiB
Python
import unittest
|
|
from core.transaction import Transaction
|
|
|
|
|
|
class TestTransaction(unittest.TestCase):
|
|
def test_transaction_initialization_with_timestamp(self):
|
|
timestamp = "2026-06-02T15:00:00.000000"
|
|
t = Transaction("tx_1", "user_1", "item_1", 2.50, timestamp)
|
|
self.assertEqual(t.id, "tx_1")
|
|
self.assertEqual(t.user_id, "user_1")
|
|
self.assertEqual(t.item_id, "item_1")
|
|
self.assertEqual(t.amount, 2.50)
|
|
self.assertEqual(t.timestamp, timestamp)
|
|
|
|
def test_transaction_auto_timestamp(self):
|
|
t = Transaction("tx_2", "user_2", "item_2", 1.50)
|
|
self.assertIsNotNone(t.timestamp)
|
|
# Check if timestamp format is valid ISO string (at least parses or contains dates)
|
|
self.assertIn("-", t.timestamp)
|
|
self.assertIn("T", t.timestamp)
|
|
|
|
def test_to_json(self):
|
|
timestamp = "2026-06-02T15:00:00"
|
|
t = Transaction("tx_1", "user_1", "item_1", 2.50, timestamp)
|
|
expected = {
|
|
"id": "tx_1",
|
|
"user_id": "user_1",
|
|
"item_id": "item_1",
|
|
"amount": 2.50,
|
|
"timestamp": timestamp,
|
|
}
|
|
self.assertEqual(t.to_json(), expected)
|
|
|
|
def test_from_json(self):
|
|
data = {
|
|
"id": "tx_1",
|
|
"user_id": "user_1",
|
|
"item_id": "item_1",
|
|
"amount": 2.50,
|
|
"timestamp": "2026-06-02T15:00:00",
|
|
}
|
|
t = Transaction.from_json(data)
|
|
self.assertEqual(t.id, "tx_1")
|
|
self.assertEqual(t.user_id, "user_1")
|
|
self.assertEqual(t.item_id, "item_1")
|
|
self.assertEqual(t.amount, 2.50)
|
|
self.assertEqual(t.timestamp, "2026-06-02T15:00:00")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|