首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Corda DriverDSL中使用测试时钟

在Corda DriverDSL中使用测试时钟
EN

Stack Overflow用户
提问于 2020-02-19 22:00:36
回答 1查看 60关注 0票数 0

我正在尝试使用Corda (OS4.3)在DriverDSL API内部运行集成测试。它通常工作得很好,但我现在需要测试一个预定的流,并且我需要将网络时钟向前移动。有一种方法可以配置驱动程序通过DriverParameters.withUseTestClock()使用测试时钟,但在所有节点开始运行后,我似乎找不到一个应用程序接口来提前时钟。我所拥有的只有NodeHandle和一个DriverDSL对象的实例。

为了清楚起见,必须是整个网络的时钟提前,因为我们使用TimeWindow约束,如果只有一个节点的时钟提前,公证人将拒绝交易。

Corda IRS示例中的集成测试似乎使用测试时钟配置了驱动程序,但它似乎并没有实际使用它,至少据我所知。

我遗漏了什么?

EN

回答 1

Stack Overflow用户

发布于 2020-04-08 23:31:40

看起来我们目前还没有公开支持这个特性,因为它没有任何相关的文档。

然而,我确实浏览了irs样本,并发现了以下内容:

代码语言:javascript
复制
@ThreadSafe
class DemoClock(delegateClock: Clock) : MutableClock(delegateClock) {
    @Synchronized
    fun updateDate(date: LocalDate): Boolean {
        val currentDate = LocalDate.now(this)
        if (currentDate.isBefore(date)) {
            // It's ok to increment
            delegateClock = Clock.offset(delegateClock, currentDate.atStartOfDay() until date.atStartOfDay())
            notifyMutationObservers()
            return true
        }
        return false
    }
}

我认为这将允许您自定义时钟时间。然而,我真的不确定是否仍然有效。它可能已被弃用。

https://github.com/corda/corda-nexus-test/blob/c1909722f606fc64174e17afad8ccf864a105bcf/samples/irs-demo/cordapp/workflows-irs/src/main/kotlin/net.corda.irs/flows/UpdateBusinessDayFlow.kt#L22

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60302068

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档