Package ai.specformula.spring
Class SpecFormulaBridge
java.lang.Object
ai.specformula.spring.SpecFormulaBridge
Cucumber SPI 與 Spring DI 之間的橋接器。
Instance-based 設計:由 SpecFormulaBackendProviderService 建立實例並注入
SpecFormulaBackend。保留 static getInstance() 供
SpecFormulaSpringConfiguration 在 Spring Context 啟動後注入
DataSource、HttpClientAdapter 等。
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidScenario 結束:清除 ScenarioContext,truncate 所有資料表。getConnection(String dataSourceName) 根據 DataSource 名稱取得 Connection,含 fallback 邏輯。getConnectionSupplier(String name) static SpecFormulaBridgevoidinitialize(ISAFeatureArgumentResolver resolver, Map<String, DatabaseSchema> schemaMap, ApiSpec apiSpec, String timeFormat) 初始化 bridge 共用元件。在 spec 讀取完成後呼叫。voidScenario 開始:建立 ScenarioContext,lazy init instructions, 觸發所有 LifecycleHook 的 beforeScenario()。voidreset()voidvoidsetConnectionSupplier(String name, Supplier<Connection> supplier) voidsetConnectionSupplier(Supplier<Connection> supplier) voidsetDataSource(String name, DataSource dataSource) 註冊 DataSource。voidsetDataSource(DataSource dataSource) voidsetHttpClient(HttpClientAdapter client) static voidsetInstance(SpecFormulaBridge bridge) voidsetMockTime(MockTime mt) voidsetPluginLoader(PluginLoader pluginLoader, DefaultPluginContext pluginContext) void由 BuiltinRdbLifecyclePlugin(ADR-0027)呼叫;先前由 endScenario() 直接呼叫。 改為 public 以讓 plugin 從外部驅動。
-
Constructor Details
-
SpecFormulaBridge
public SpecFormulaBridge()
-
-
Method Details
-
getInstance
-
setInstance
-
initialize
public void initialize(ISAFeatureArgumentResolver resolver, Map<String, DatabaseSchema> schemaMap, ApiSpec apiSpec, String timeFormat) 初始化 bridge 共用元件。在 spec 讀取完成後呼叫。 -
currentContext
-
newScenario
public void newScenario()Scenario 開始:建立 ScenarioContext,lazy init instructions, 觸發所有 LifecycleHook 的 beforeScenario()。 -
endScenario
public void endScenario()Scenario 結束:清除 ScenarioContext,truncate 所有資料表。 -
getTimeControl
-
getEntitySetup
-
getEntityValidate
-
getEntityNonExistenceValidate
-
getApiCall
-
getJsonApiCall
-
getDataTableResponseValidate
-
setPluginLoader
-
getPluginLoader
-
getPluginContext
-
getJsonResponseValidate
-
getResolver
-
getSchemaMap
-
getApiSpec
-
getTimeFormat
-
setConnectionSupplier
-
setDataSource
註冊 DataSource。若 dataSource 為
TrackingDataSource,自動啟用 dirty table tracking, 清理時只清理有被 INSERT 的 table;否則清理時會清理全部資料表。 -
getConnectionSupplier
-
getConnectionSupplierMap
-
getDataSourceNames
-
setConnectionSupplier
-
setDataSource
-
getConnectionSupplier
-
getConnection
根據 DataSource 名稱取得 Connection,含 fallback 邏輯。 -
setHttpClient
-
getHttpClient
-
setAuthenticator
-
getAuthenticator
-
setMockTime
-
getMockTime
-
truncateAllTables
public void truncateAllTables()由 BuiltinRdbLifecyclePlugin(ADR-0027)呼叫;先前由 endScenario() 直接呼叫。 改為 public 以讓 plugin 從外部驅動。 -
reset
public void reset()
-