是否有支持单元测试共享的模式/技术"启动流程"

时间:2018-01-19 09:44:43

标签: corda

是否有支持单元测试共享的模式/技术"启动流程"已经在"共享cordapp.jar"中实现的有多个相应的私人"响应流"每个都是在自己的私人聚会名称cordapp.jar"中实现的。 ?希望这个问题有道理。 术语按Can either side of a Corda flow exist in separate Cordapps?列出。 感谢所有信息。 约翰

1 个答案:

答案 0 :(得分:0)

不确定。您只需定义一个虚拟响应流并将其作为启动流注册到每个节点上:

@InitiatedBy(MyInitiator::class)
class MyTestResponder(val counterpartySession: FlowSession) : FlowLogic<Unit>() {
    @Suspendable
    override fun call() {
        // Implement flow logic here.
    }
}

class FlowTests {
    lateinit var network: MockNetwork
    lateinit var a: StartedNode<MockNode>
    lateinit var b: StartedNode<MockNode>

    @Before
    fun setup() {
        setCordappPackages("my.package")
        network = MockNetwork()
        val nodes = network.createSomeNodes(2)
        a = nodes.partyNodes[0]
        b = nodes.partyNodes[1]
        nodes.partyNodes.forEach {
            it.registerInitiatedFlow(MyTestResponder::class.java)
        }
        network.runNetwork()
    }

    @After
    fun tearDown() {
        network.stopNodes()
        unsetCordappPackages()
    }

    @Test
    fun `example test`() {
        val flow = MyInitiator(b.info.chooseIdentity())
        val future = a.services.startFlow(flow).resultFuture
        network.runNetwork()
        future.getOrThrow()
    }
}