Corda - 如何使用 Java 实现 expectEvents 并行谓词



我正在寻找一个类似于以下示例中显示的 Kotlin 代码的 Java 示例(取自 Corda 集成测试教程:https://docs.corda.net/releases/release-M6.0/tutorial-integration-testing.html(

bobVaultUpdates.expectEvents {
parallel(
(1 .. 10).map { i ->
expect(
match = { update: Vault.Update ->
(update.produced.first().state.data as Cash.State).amount.quantity == i * 100L
}
) { update ->
println("Bob vault update of $update")
}
}
)
}

我也很好奇是否仍然推荐这种技术,因为它似乎已从本教程的最新版本 (https://docs.corda.net/releases/release-V4.3/tutorial-integration-testing.html( 中删除。

您链接到的页面已损坏,但是,该教程有一个 Corda 4.4 版本。

这是链接:

https://docs.corda.net/docs/corda-os/4.4/tutorial-integration-testing.html

有一些与您在此处共享的类似的 java 代码,但示例已更改一些。

Class<Vault.Update<Cash.State>> cashVaultUpdateClass = (Class<Vault.Update<Cash.State>>)(Class<?>)Vault.Update.class;
expectEvents(bobVaultUpdates, true, () ->
expect(cashVaultUpdateClass, update -> true, update -> {
System.out.println("Bob got vault update of " + update);
Amount<Issued<Currency>> amount = update.getProduced().iterator().next().getState().getData().getAmount();
assertEquals(DOLLARS(1000), Structures.withoutIssuer(amount));
return null;
})
);

谢谢!

最新更新