В тестах потока Corda, как получить модульные сетевые приложения, назначенные только соответствующим сторонам? - PullRequest
0 голосов
/ 04 октября 2019

В соответствии с руководящими принципами кодирования Corda, я разделил модули на контракты и общие рабочие процессы. Существуют модули рабочих процессов, такие как workflows-party1, workflows-part2 и т. Д., Характерные для вечеринки. Теперь я хочу передать эти рабочие процессы только этому конкретному узлу в моих тестах потока. Как этого добиться?

Ответы [ 2 ]

2 голосов
/ 04 октября 2019

В Corda v4 , это может быть достигнуто следующим образом

    private val network = MockNetwork(MockNetworkParameters(cordappsForAllNodes = listOf(
            TestCordapp.findCordapp("com.template.contracts"),
            TestCordapp.findCordapp("com.template.common")),
            networkParameters = testNetworkParameters(minimumPlatformVersion = 4),
            notarySpecs = listOf(MockNetworkNotarySpec(CordaX500Name.parse("O=Notary,L=London,C=GB")))))

    private val party1 = network.createNode(MockNodeParameters(
            additionalCordapps = listOf(TestCordapp.findCordapp("com.template.workflows.party1")),
            legalName = CordaX500Name.parse("O=Party,L=London,C=GB")))

0 голосов
/ 04 октября 2019

Другой ответ - один из способов достижения этого, другой - использовать DriverDSL (зависит от того, как вы пишете свои тесты)

driver(DriverParameters(startNodesInProcess = false, inMemoryDB = false)) {
  val charlie = startNode(
    NodeParameters(
      providedName = CHARLIE_NAME,
      rpcUsers = listOf(rpcUser),
      // important line
      additionalCordapps = cordappsForPackages("package name")
    )
  ).getOrThrow()
  // stuff
}

Любое решение работает

...