mirror of
https://github.com/corda/corda.git
synced 2025-06-18 15:18:16 +00:00
Re-enable notary idempotence test (#2356)
* Re-enable notary idempotence test
This commit is contained in:
@ -19,17 +19,17 @@ import net.corda.testing.contracts.DummyContract
|
|||||||
import net.corda.testing.dummyCommand
|
import net.corda.testing.dummyCommand
|
||||||
import net.corda.testing.node.MockNetwork
|
import net.corda.testing.node.MockNetwork
|
||||||
import net.corda.testing.node.MockNodeParameters
|
import net.corda.testing.node.MockNodeParameters
|
||||||
import net.corda.testing.singleIdentity
|
|
||||||
import net.corda.testing.node.startFlow
|
import net.corda.testing.node.startFlow
|
||||||
|
import net.corda.testing.singleIdentity
|
||||||
import org.assertj.core.api.Assertions.assertThat
|
import org.assertj.core.api.Assertions.assertThat
|
||||||
import org.junit.After
|
import org.junit.After
|
||||||
import org.junit.Before
|
import org.junit.Before
|
||||||
import org.junit.Ignore
|
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import java.time.Instant
|
import java.time.Instant
|
||||||
import java.util.*
|
import java.util.*
|
||||||
import kotlin.test.assertEquals
|
import kotlin.test.assertEquals
|
||||||
import kotlin.test.assertFailsWith
|
import kotlin.test.assertFailsWith
|
||||||
|
import kotlin.test.assertTrue
|
||||||
|
|
||||||
class NotaryServiceTests {
|
class NotaryServiceTests {
|
||||||
private lateinit var mockNet: MockNetwork
|
private lateinit var mockNet: MockNetwork
|
||||||
@ -100,9 +100,8 @@ class NotaryServiceTests {
|
|||||||
assertThat(ex.error).isInstanceOf(NotaryError.TimeWindowInvalid::class.java)
|
assertThat(ex.error).isInstanceOf(NotaryError.TimeWindowInvalid::class.java)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Ignore("Only applies to deterministic signature schemes (e.g. EdDSA) and when deterministic metadata is attached (no timestamps or nonces)")
|
|
||||||
@Test
|
@Test
|
||||||
fun `should sign identical transaction multiple times (signing is idempotent)`() {
|
fun `should sign identical transaction multiple times (notarisation is idempotent)`() {
|
||||||
val stx = run {
|
val stx = run {
|
||||||
val inputState = issueState(aliceServices, alice)
|
val inputState = issueState(aliceServices, alice)
|
||||||
val tx = TransactionBuilder(notary)
|
val tx = TransactionBuilder(notary)
|
||||||
@ -118,7 +117,16 @@ class NotaryServiceTests {
|
|||||||
|
|
||||||
mockNet.runNetwork()
|
mockNet.runNetwork()
|
||||||
|
|
||||||
assertEquals(f1.resultFuture.getOrThrow(), f2.resultFuture.getOrThrow())
|
// Note that the notary will only return identical signatures when using deterministic signature
|
||||||
|
// schemes (e.g. EdDSA) and when deterministic metadata is attached (no timestamps or nonces).
|
||||||
|
// We only really care that both signatures are over the same transaction and by the same notary.
|
||||||
|
val sig1 = f1.resultFuture.getOrThrow().single()
|
||||||
|
assertEquals(sig1.by, notary.owningKey)
|
||||||
|
assertTrue(sig1.isValid(stx.id))
|
||||||
|
|
||||||
|
val sig2 = f2.resultFuture.getOrThrow().single()
|
||||||
|
assertEquals(sig2.by, notary.owningKey)
|
||||||
|
assertTrue(sig2.isValid(stx.id))
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
Reference in New Issue
Block a user