Refactor gates creating service, repository and tests

This commit is contained in:
Alessandro Franchini
2025-08-22 01:34:25 +02:00
parent 16cf408725
commit 58c0916deb
24 changed files with 251 additions and 89 deletions

View File

@@ -0,0 +1,51 @@
import unittest
from models import Gate, Status
from repository import GatesRepository
class TestGatesRepository(unittest.TestCase):
def setUp(self):
self.mock_json_path = "../resources/mock_gates.json"
self.repo = GatesRepository(self.mock_json_path)
def test_get_by_key_returns_gate_when_key_exists(self):
gate_key = "gateA"
expected_gate = Gate("1", "Gate A", Status.ENABLED)
result = self.repo.get_by_key(gate_key)
self.assertEqual(expected_gate.id, result.id)
self.assertEqual(expected_gate.name, result.name)
self.assertEqual(expected_gate.status, result.status)
def test_get_by_key_returns_none_when_key_does_not_exist(self):
gate_key = "invalid_key"
result = self.repo.get_by_key(gate_key)
self.assertIsNone(result)
def test_get_all_enabled_returns_only_enabled_gates(self):
enabled_gate_ids = ["1", "3", "5"]
result = self.repo.get_all_enabled()
self.assertEqual(len(enabled_gate_ids), len(result))
self.assertEqual(
sorted(enabled_gate_ids), sorted([gate.id for gate in result])
)
for gate in result:
self.assertTrue(gate.status == Status.ENABLED)
print(gate.status)
# New Test
def test_load_gates_handles_invalid_json_file_gracefully(self):
repo = GatesRepository("./tests/invalid_mock_gates.json")
self.assertEqual(repo._gates, {})
if __name__ == "__main__":
unittest.main()