问题描述
如果我使用flowSession.getCounterpartyFlowInfo()
从单元测试中调用MockNetwork
,它将返回FlowInfo(flowVersion=1,appName=<unkNown>)
这是我当前的MockNetwork
配置:
network = MockNetwork(
MockNetworkParameters(
cordappsForAllNodes = listof(
TestCordapp.findCordapp("com.example.contract"),TestCordapp.findCordapp("com.example.workflow")
),networkParameters = testNetworkParameters(
minimumPlatformVersion = 5
)
)
)
是否可以指定在模拟网络中运行的应用程序的appName
?
解决方法
我认为没有配置。通过删除'.jar'扩展名,从jar文件名派生出appName。
对于MockNode,将扫描软件包并加载类。
这是它的派生方式:
val Class<out FlowLogic<*>>.appName: String
get() {
val jarFile = location.toPath()
return if (jarFile.isRegularFile() && jarFile.toString().endsWith(".jar")) {
jarFile.fileName.toString().removeSuffix(".jar")
} else {
"<unknown>"
}
}