"""ExistingSystemExplorer 测试:CodeStructure → ExistingSystemInfo 分层组装。""" import pytest from genesis.data_models import CodeStructure, ControllerInfo, EntityInfo, ServiceInfo from genesis.impact.existing_system_explorer import ExistingSystemExplorer def _code() -> CodeStructure: return CodeStructure( root_path="/fake/root", language="java", modules=["trade-order"], classes=[], controllers=[ ControllerInfo(name="OrderController", class_name="OrderController", path="OrderController.java", base_path="/api/order", endpoints=["/api/order/{id}"], source_uri="OrderController.java"), ], services=[ServiceInfo(name="OrderService", class_name="OrderService", path="OrderService.java", methods=["query"], source_uri="OrderService.java")], entities=[EntityInfo(name="OrderEntity", class_name="OrderEntity", path="OrderEntity.java", table_name="t_order", fields=["id"], source_uri="OrderEntity.java")], endpoints=[], raw_imports=[], ) def test_explore_assembles_layers(): info = ExistingSystemExplorer().explore(_code()) assert len(info.controller_layer) == 1 assert info.controller_layer[0].class_name == "OrderController" assert len(info.service_layer) == 1 assert info.service_layer[0].class_name == "OrderService" assert len(info.entity_layer) == 1 assert info.entity_layer[0].table_name == "t_order" assert info.source_path == "/fake/root" def test_explore_empty_code(): code = CodeStructure(root_path="/x", language="java", modules=[], classes=[], controllers=[], services=[], entities=[], endpoints=[], raw_imports=[]) info = ExistingSystemExplorer().explore(code) assert info.controller_layer == [] assert info.service_layer == [] assert info.entity_layer == [] assert info.api_endpoints == []