import unittest from core.user import User class TestUser(unittest.TestCase): def test_default_values(self): user = User("alice", "Alice") self.assertEqual(user.id, "alice") self.assertEqual(user.name, "Alice") self.assertEqual(user.pin, "4242") self.assertEqual(user.debt, 0.0) def test_custom_pin(self): user = User("bob", "Bob", "1234") self.assertEqual(user.pin, "1234") def test_to_json(self): user = User("charlie", "Charlie", "9999") user.debt = 12.50 expected = { "id": "charlie", "name": "Charlie", "debt": 12.50, "pin": "9999" } self.assertEqual(user.to_json(), expected) def test_from_json(self): data = { "id": "charlie", "name": "Charlie", "debt": 12.50, "pin": "9999" } user = User.from_json(data) self.assertEqual(user.id, "charlie") self.assertEqual(user.name, "Charlie") self.assertEqual(user.debt, 12.50) self.assertEqual(user.pin, "9999") def test_from_json_missing_pin(self): data = { "id": "charlie", "name": "Charlie", "debt": 12.50 } user = User.from_json(data) self.assertEqual(user.pin, "4242") if __name__ == "__main__": unittest.main()