闭合 Q22;V6 建 basicdata 表组;RefData 走真处理器(DNLD/RESP/ADD/UPD/DEL/RSTA)。 Co-authored-by: Cursor <cursoragent@cursor.com>
52 lines
2.3 KiB
Kotlin
52 lines
2.3 KiB
Kotlin
package com.gzzn.omms.msgexchange.processing
|
|
|
|
import com.gzzn.omms.msgexchange.infra.persistence.MsgEventRepository
|
|
import com.gzzn.omms.msgexchange.infra.persistence.PipelineLockRepository
|
|
import com.gzzn.omms.msgexchange.infra.persistence.PipelineTransactionManager
|
|
import com.gzzn.omms.msgexchange.infra.persistence.ProcStateRepository
|
|
import com.gzzn.omms.msgexchange.infra.stub.StubFlightProjectionPort
|
|
import com.gzzn.omms.msgexchange.infra.stub.StubMsgEvents
|
|
import com.gzzn.omms.msgexchange.infra.stub.StubPipelineLock
|
|
import com.gzzn.omms.msgexchange.infra.stub.StubPipelineTx
|
|
import com.gzzn.omms.msgexchange.codec.JacksonXmlCodec
|
|
import com.gzzn.omms.msgexchange.config.OperationDayProps
|
|
import com.gzzn.omms.msgexchange.config.PipelineProps
|
|
import com.gzzn.omms.msgexchange.infra.persistence.RefDataRepository
|
|
import com.gzzn.omms.msgexchange.infra.stub.StubCoutmsgOutbox
|
|
import com.gzzn.omms.msgexchange.infra.stub.StubProcState
|
|
import com.gzzn.omms.msgexchange.infra.stub.StubRefDataRepository
|
|
import com.gzzn.omms.msgexchange.infra.stub.StubReqTrack
|
|
import java.time.Clock
|
|
|
|
/**
|
|
* 处理器用例共用的三步提交装配:默认全内存、投影不失败。
|
|
* 事件仓储要和处理器用同一个实例,否则放行(`HELD` → `PENDING`)落不到处理器写的那些行上。
|
|
*/
|
|
internal fun testCommit(
|
|
procState: ProcStateRepository = StubProcState(),
|
|
msgEvents: MsgEventRepository = StubMsgEvents(),
|
|
projection: FlightProjectionPort = StubFlightProjectionPort(),
|
|
lock: PipelineLockRepository = StubPipelineLock(),
|
|
txManager: PipelineTransactionManager = StubPipelineTx(),
|
|
clock: Clock = Clock.systemUTC(),
|
|
) = FlightCommit(txManager, lock, procState, msgEvents, projection, clock)
|
|
|
|
internal fun testRefDataProcessor(
|
|
procState: ProcStateRepository = StubProcState(),
|
|
refData: RefDataRepository = StubRefDataRepository(),
|
|
clock: Clock = Clock.systemUTC(),
|
|
): ReferenceDataProcessor {
|
|
val refCommit = RefDataCommit(
|
|
StubPipelineTx(),
|
|
StubPipelineLock(),
|
|
procState,
|
|
clock,
|
|
)
|
|
val props = PipelineProps()
|
|
val opDay = OperationDayProps().apply { zone = "Asia/Shanghai"; cutoffHour = 0 }
|
|
val outbound = OutboundRequestService(
|
|
StubReqTrack(clock), StubCoutmsgOutbox(), JacksonXmlCodec(), props, opDay, clock,
|
|
)
|
|
return ReferenceDataProcessor(refCommit, refData, outbound)
|
|
}
|