Skip to content

Commit 009a549

Browse files
Updated integration tests; flaky driver DSL causing test failures.
1 parent e73ab1b commit 009a549

File tree

3 files changed

+50
-19
lines changed

3 files changed

+50
-19
lines changed

onixlabs-corda-identity-framework-integration/src/test/kotlin/io/onixlabs/corda/identityframework/integration/AttestationIntegrationTests.kt

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,49 +32,52 @@ class AttestationIntegrationTests : IntegrationTest() {
3232
fun `Attestation integration service tests`() = start {
3333

3434
// Issue a claim
35-
nodeA.claimService.issueClaim(
35+
val claimIssuanceTransaction = nodeA.claimService.issueClaim(
3636
property = "example",
3737
value = "Hello, World!",
3838
linearId = ID,
3939
observers = setOf(partyC)
4040
).returnValue.getOrThrow()
4141

4242
// Find the issued claim
43+
nodeC.waitForTransaction(claimIssuanceTransaction.id)
4344
val issuedClaim = nodeC.rpc.vaultServiceFor<CordaClaim<String>>().singleOrNull {
4445
linearIds(ID)
4546
} ?: fail("Failed to find issued claim.")
4647

4748
// Issue an attestation
48-
nodeC.attestationService.issueStaticAttestation(
49+
val attestationIssuanceTransaction = nodeC.attestationService.issueStaticAttestation(
4950
state = issuedClaim
5051
).returnValue.getOrThrow()
5152

5253
// Find the issued attestation
54+
nodeC.waitForTransaction(attestationIssuanceTransaction.id)
5355
val issuedAttestation = nodeC.rpc.vaultServiceFor<Attestation<CordaClaim<String>>>().singleOrNull {
5456
attestationPointer(issuedClaim.ref)
5557
} ?: fail("Failed to find issued attestation.")
5658

5759
// Amend the issued attestation
58-
nodeC.attestationService.amendStaticAttestation(
60+
val attestationAmendmentTransaction = nodeC.attestationService.amendStaticAttestation(
5961
oldAttestation = issuedAttestation,
6062
state = issuedClaim,
6163
status = AttestationStatus.ACCEPTED
6264
).returnValue.getOrThrow()
6365

6466
// Find the amended attestation
67+
nodeC.waitForTransaction(attestationAmendmentTransaction.id)
6568
val amendedAttestation = nodeC.rpc.vaultServiceFor<Attestation<CordaClaim<String>>>().singleOrNull {
6669
attestationPointer(issuedClaim.ref)
6770
} ?: fail("Failed to find amended attestation.")
6871

6972
// Publish the amended attestation
70-
val tx = nodeA.attestationService.publishAttestation(
73+
val attestationPublicationTransaction = nodeA.attestationService.publishAttestation(
7174
attestation = amendedAttestation,
7275
observers = setOf(partyB)
7376
).returnValue.getOrThrow()
7477

7578
// Find the published attestation
7679
listOf(nodeA, nodeB, nodeC).forEach {
77-
it.waitForTransaction(tx.id)
80+
it.waitForTransaction(attestationPublicationTransaction.id)
7881
it.rpc.vaultServiceFor<Attestation<CordaClaim<String>>>().singleOrNull {
7982
attestationPointer(issuedClaim.ref)
8083
} ?: fail("Failed to find published attestation.")
@@ -85,5 +88,7 @@ class AttestationIntegrationTests : IntegrationTest() {
8588
attestation = amendedAttestation,
8689
observers = setOf(partyB)
8790
).returnValue.getOrThrow()
91+
92+
logger.info("Attestation tests complete!")
8893
}
8994
}

onixlabs-corda-identity-framework-integration/src/test/kotlin/io/onixlabs/corda/identityframework/integration/ClaimIntegrationTests.kt

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,38 +29,40 @@ class ClaimIntegrationTests : IntegrationTest() {
2929
fun `Claim integration service tests`() = start {
3030

3131
// Issue a claim
32-
nodeA.claimService.issueClaim(
32+
val claimIssuanceTransaction = nodeA.claimService.issueClaim(
3333
property = "example",
3434
value = "Hello, World!",
3535
linearId = ID,
3636
observers = setOf(partyC)
3737
).returnValue.getOrThrow()
3838

3939
// Find the issued claim
40+
nodeA.waitForTransaction(claimIssuanceTransaction.id)
4041
val issuedClaim = nodeA.rpc.vaultServiceFor<CordaClaim<String>>().singleOrNull {
4142
linearIds(ID)
4243
} ?: fail("Failed to find issued claim.")
4344

4445
// Amend the claim
45-
nodeA.claimService.amendClaim(
46+
val claimAmendmentTransaction = nodeA.claimService.amendClaim(
4647
claim = issuedClaim,
4748
value = "Goodbye, World!"
4849
).returnValue.getOrThrow()
4950

5051
// Find the amended claim
52+
nodeA.waitForTransaction(claimAmendmentTransaction.id)
5153
val amendedClaim = nodeA.rpc.vaultServiceFor<CordaClaim<String>>().singleOrNull {
5254
linearIds(ID)
5355
} ?: fail("Failed to find amended claim.")
5456

5557
// Publish the amended claim
56-
val tx = nodeA.claimService.publishClaim(
58+
val claimPublicationTransaction = nodeA.claimService.publishClaim(
5759
claim = amendedClaim,
5860
observers = setOf(partyB, partyC)
5961
).returnValue.getOrThrow()
6062

6163
// Find the published claim
6264
listOf(nodeA, nodeB, nodeC).forEach {
63-
it.waitForTransaction(tx.id)
65+
it.waitForTransaction(claimPublicationTransaction.id)
6466
it.rpc.vaultServiceFor<CordaClaim<String>>().singleOrNull {
6567
linearIds(ID)
6668
} ?: fail("Failed to find sent claim.")
@@ -71,5 +73,7 @@ class ClaimIntegrationTests : IntegrationTest() {
7173
claim = amendedClaim,
7274
observers = setOf(partyB, partyC)
7375
).returnValue.getOrThrow()
76+
77+
logger.info("Claim tests complete!")
7478
}
7579
}

onixlabs-corda-identity-framework-integration/src/test/kotlin/io/onixlabs/corda/identityframework/integration/IntegrationTest.kt

Lines changed: 32 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,9 @@ import net.corda.testing.node.internal.cordappsForPackages
2929

3030
abstract class IntegrationTest : AutoCloseable {
3131

32-
private companion object {
32+
protected companion object {
3333
val RPC_USERS = listOf(User("guest", "letmein", permissions = setOf("ALL")))
34-
val log = loggerFor<IntegrationTest>()
34+
val logger = loggerFor<IntegrationTest>()
3535
}
3636

3737
private lateinit var _nodeA: NodeHandle
@@ -48,9 +48,11 @@ abstract class IntegrationTest : AutoCloseable {
4848

4949
fun start(action: () -> Unit) {
5050
val parameters = DriverParameters(
51-
isDebug = true,
51+
isDebug = false,
5252
startNodesInProcess = true,
5353
waitForAllNodesToFinish = false,
54+
inMemoryDB = true,
55+
premigrateH2Database = true,
5456
networkParameters = testNetworkParameters(minimumPlatformVersion = 10),
5557
cordappsForAllNodes = cordappsForPackages(
5658
"io.onixlabs.corda.core.workflow",
@@ -71,21 +73,41 @@ abstract class IntegrationTest : AutoCloseable {
7173
listOf(_nodeA, _nodeB, _nodeC).forEach {
7274
val identity = it.nodeInfo.legalIdentities.first()
7375
val rpcAddress = it.rpcAddress
74-
log.info("Node registered with RPC address '$rpcAddress' for node '$identity'.")
76+
logger.info("Node registered with RPC address '$rpcAddress' for node '$identity'.")
7577
}
7678

77-
initialize()
78-
action()
79-
finalize()
80-
close()
79+
try {
80+
logger.info("Initializing test...")
81+
initialize()
82+
83+
logger.info("Performing test action...")
84+
action()
85+
86+
logger.info("Finalizing test...")
87+
finalize()
88+
89+
logger.info("Closing down nodes...")
90+
close()
91+
} catch (ex: Exception) {
92+
logger.error("Test failed with exception type '${ex.javaClass}' and message '${ex.message}'.")
93+
}
8194
}
8295
}
8396

8497
protected open fun initialize() = Unit
8598
protected open fun finalize() = Unit
8699

87100
override fun close() = listOf(nodeA, nodeB, nodeC).forEach {
88-
it.stop()
89-
it.close()
101+
val identity = it.nodeInfo.legalIdentities.first()
102+
103+
try {
104+
logger.info("Stopping node: $identity...")
105+
it.stop()
106+
107+
logger.info("Closing node: $identity...")
108+
it.close()
109+
} catch (ex: Exception) {
110+
logger.error("Node shutdown for '$identity' failed with exception type '${ex.javaClass}' and message '${ex.message}'.")
111+
}
90112
}
91113
}

0 commit comments

Comments
 (0)