From 3ef5c39633c75e8587180c56964ad2f63df6e324 Mon Sep 17 00:00:00 2001 From: Matthew Nesbit <matthew.nesbit@r3cev.com> Date: Tue, 4 Jul 2017 15:37:46 +0100 Subject: [PATCH] Put test classes into clear namespaces, so that they don't pollute the API. --- .../corda/core/contracts/DummyContractV2.kt | 60 --------------- .../core/contracts/DummyLinearContract.kt | 60 --------------- .../net/corda/core/contracts/DummyState.kt | 12 --- .../contracts/{ => testing}/DummyContract.kt | 7 +- .../core/contracts/testing/DummyContractV2.kt | 55 ++++++++++++++ .../contracts/testing/DummyLinearContract.kt | 54 ++++++++++++++ .../core/contracts/testing/DummyState.kt | 10 +++ .../net/corda/core/crypto/CryptoUtils.kt | 30 -------- .../corda/core/crypto/testing/DummyKeys.kt | 35 +++++++++ .../core/schemas/DummyLinearStateSchemaV2.kt | 29 -------- .../{ => testing}/DummyDealStateSchemaV1.kt | 4 +- .../{ => testing}/DummyLinearStateSchemaV1.kt | 4 +- .../testing/DummyLinearStateSchemaV2.kt | 24 ++++++ .../net/corda/core/utilities/TestConstants.kt | 1 + .../core/contracts/DummyContractV2Tests.kt | 3 +- .../contracts/TransactionGraphSearchTests.kt | 3 +- .../corda/core/contracts/TransactionTests.kt | 1 + .../contracts/clauses/VerifyClausesTests.kt | 6 +- .../core/flows/CollectSignaturesFlowTests.kt | 3 +- .../core/flows/ContractUpgradeFlowTest.kt | 2 + .../core/flows/ResolveTransactionsFlowTest.kt | 3 +- .../java/net/corda/docs/FlowCookbookJava.java | 2 + .../kotlin/net/corda/docs/FlowCookbook.kt | 2 + .../corda/contracts/JavaCommercialPaper.java | 41 ++++++---- .../corda/contracts/CommercialPaperLegacy.kt | 2 +- .../net/corda/contracts/DummyDealContract.kt | 5 +- .../kotlin/net/corda/contracts/asset/Cash.kt | 6 +- .../net/corda/contracts/asset/Obligation.kt | 2 +- .../corda/contracts/testing/VaultFiller.kt | 1 + .../net/corda/contracts/asset/CashTests.kt | 1 + .../corda/contracts/asset/ObligationTests.kt | 3 +- .../net/corda/contracts/testing/Generators.kt | 2 +- .../services/vault/schemas/VaultSchemaTest.kt | 7 +- .../node/services/BFTNotaryServiceTests.kt | 14 +++- .../node/services/RaftNotaryServiceTests.kt | 2 +- .../services/vault/VaultQueryJavaTests.java | 74 +++++++++++-------- .../corda/node/services/NotaryChangeTests.kt | 1 + .../database/HibernateConfigurationTest.kt | 4 +- .../database/RequeryConfigurationTest.kt | 4 +- .../services/events/ScheduledFlowTests.kt | 1 + .../persistence/DBTransactionStorageTests.kt | 2 +- .../statemachine/FlowFrameworkTests.kt | 7 +- .../transactions/NotaryServiceTests.kt | 2 +- .../ValidatingNotaryServiceTests.kt | 6 +- .../node/services/vault/VaultQueryTests.kt | 5 +- .../node/services/vault/VaultWithCashTest.kt | 4 +- .../notarydemo/flows/DummyIssueAndMove.kt | 4 +- .../main/kotlin/net/corda/testing/TestDSL.kt | 2 +- .../testing/TransactionDSLInterpreter.kt | 1 + .../net/corda/loadtest/tests/NotaryTest.kt | 2 +- .../net/corda/verifier/GeneratedLedger.kt | 6 +- 51 files changed, 341 insertions(+), 280 deletions(-) delete mode 100644 core/src/main/kotlin/net/corda/core/contracts/DummyContractV2.kt delete mode 100644 core/src/main/kotlin/net/corda/core/contracts/DummyLinearContract.kt delete mode 100644 core/src/main/kotlin/net/corda/core/contracts/DummyState.kt rename core/src/main/kotlin/net/corda/core/contracts/{ => testing}/DummyContract.kt (90%) create mode 100644 core/src/main/kotlin/net/corda/core/contracts/testing/DummyContractV2.kt create mode 100644 core/src/main/kotlin/net/corda/core/contracts/testing/DummyLinearContract.kt create mode 100644 core/src/main/kotlin/net/corda/core/contracts/testing/DummyState.kt create mode 100644 core/src/main/kotlin/net/corda/core/crypto/testing/DummyKeys.kt delete mode 100644 core/src/main/kotlin/net/corda/core/schemas/DummyLinearStateSchemaV2.kt rename core/src/main/kotlin/net/corda/core/schemas/{ => testing}/DummyDealStateSchemaV1.kt (76%) rename core/src/main/kotlin/net/corda/core/schemas/{ => testing}/DummyLinearStateSchemaV1.kt (92%) create mode 100644 core/src/main/kotlin/net/corda/core/schemas/testing/DummyLinearStateSchemaV2.kt diff --git a/core/src/main/kotlin/net/corda/core/contracts/DummyContractV2.kt b/core/src/main/kotlin/net/corda/core/contracts/DummyContractV2.kt deleted file mode 100644 index a0c4386236..0000000000 --- a/core/src/main/kotlin/net/corda/core/contracts/DummyContractV2.kt +++ /dev/null @@ -1,60 +0,0 @@ -package net.corda.core.contracts - -import net.corda.core.crypto.SecureHash -import net.corda.core.identity.AbstractParty -import net.corda.core.transactions.WireTransaction -import net.corda.flows.ContractUpgradeFlow - -// The dummy contract doesn't do anything useful. It exists for testing purposes. -val DUMMY_V2_PROGRAM_ID = DummyContractV2() - -/** - * Dummy contract state for testing of the upgrade process. - */ -// DOCSTART 1 -class DummyContractV2 : UpgradedContract<DummyContract.State, DummyContractV2.State> { - override val legacyContract = DummyContract::class.java - - data class State(val magicNumber: Int = 0, val owners: List<AbstractParty>) : ContractState { - override val contract = DUMMY_V2_PROGRAM_ID - override val participants: List<AbstractParty> = owners - } - - interface Commands : CommandData { - class Create : TypeOnlyCommandData(), Commands - class Move : TypeOnlyCommandData(), Commands - } - - override fun upgrade(state: DummyContract.State): DummyContractV2.State { - return DummyContractV2.State(state.magicNumber, state.participants) - } - - override fun verify(tx: TransactionForContract) { - if (tx.commands.any { it.value is UpgradeCommand }) ContractUpgradeFlow.verify(tx) - // Other verifications. - } - - // The "empty contract" - override val legalContractReference: SecureHash = SecureHash.sha256("") - // DOCEND 1 - /** - * Generate an upgrade transaction from [DummyContract]. - * - * Note: This is a convenience helper method used for testing only. - * - * @return a pair of wire transaction, and a set of those who should sign the transaction for it to be valid. - */ - fun generateUpgradeFromV1(vararg states: StateAndRef<DummyContract.State>): Pair<WireTransaction, Set<AbstractParty>> { - val notary = states.map { it.state.notary }.single() - require(states.isNotEmpty()) - - val signees: Set<AbstractParty> = states.flatMap { it.state.data.participants }.distinct().toSet() - return Pair(TransactionType.General.Builder(notary).apply { - states.forEach { - addInputState(it) - addOutputState(upgrade(it.state.data)) - addCommand(UpgradeCommand(DUMMY_V2_PROGRAM_ID.javaClass), signees.map { it.owningKey }.toList()) - } - }.toWireTransaction(), signees) - } -} diff --git a/core/src/main/kotlin/net/corda/core/contracts/DummyLinearContract.kt b/core/src/main/kotlin/net/corda/core/contracts/DummyLinearContract.kt deleted file mode 100644 index a2bffbe78d..0000000000 --- a/core/src/main/kotlin/net/corda/core/contracts/DummyLinearContract.kt +++ /dev/null @@ -1,60 +0,0 @@ -package net.corda.core.contracts - -import net.corda.core.contracts.clauses.Clause -import net.corda.core.contracts.clauses.FilterOn -import net.corda.core.contracts.clauses.verifyClause -import net.corda.core.crypto.SecureHash -import net.corda.core.crypto.containsAny -import net.corda.core.identity.AbstractParty -import net.corda.core.schemas.* -import java.security.PublicKey -import java.time.Instant -import java.time.LocalDateTime -import java.time.ZoneOffset - -class DummyLinearContract : Contract { - override val legalContractReference: SecureHash = SecureHash.sha256("Test") - - val clause: Clause<State, CommandData, Unit> = LinearState.ClauseVerifier() - override fun verify(tx: TransactionForContract) = verifyClause(tx, - FilterOn(clause, { states -> states.filterIsInstance<State>() }), - emptyList()) - - data class State( - override val linearId: UniqueIdentifier = UniqueIdentifier(), - override val contract: Contract = DummyLinearContract(), - override val participants: List<AbstractParty> = listOf(), - val linearString: String = "ABC", - val linearNumber: Long = 123L, - val linearTimestamp: Instant = LocalDateTime.now().toInstant(ZoneOffset.UTC), - val linearBoolean: Boolean = true, - val nonce: SecureHash = SecureHash.randomSHA256()) : LinearState, QueryableState { - - override fun isRelevant(ourKeys: Set<PublicKey>): Boolean { - return participants.any { it.owningKey.containsAny(ourKeys) } - } - - override fun supportedSchemas(): Iterable<MappedSchema> = listOf(DummyLinearStateSchemaV1, DummyLinearStateSchemaV2) - - override fun generateMappedObject(schema: MappedSchema): PersistentState { - return when (schema) { - is DummyLinearStateSchemaV1 -> DummyLinearStateSchemaV1.PersistentDummyLinearState( - externalId = linearId.externalId, - uuid = linearId.id, - linearString = linearString, - linearNumber = linearNumber, - linearTimestamp = linearTimestamp, - linearBoolean = linearBoolean - ) - is DummyLinearStateSchemaV2 -> DummyLinearStateSchemaV2.PersistentDummyLinearState( - uid = linearId, - linearString = linearString, - linearNumber = linearNumber, - linearTimestamp = linearTimestamp, - linearBoolean = linearBoolean - ) - else -> throw IllegalArgumentException("Unrecognised schema $schema") - } - } - } -} \ No newline at end of file diff --git a/core/src/main/kotlin/net/corda/core/contracts/DummyState.kt b/core/src/main/kotlin/net/corda/core/contracts/DummyState.kt deleted file mode 100644 index 1498b8c379..0000000000 --- a/core/src/main/kotlin/net/corda/core/contracts/DummyState.kt +++ /dev/null @@ -1,12 +0,0 @@ -package net.corda.core.contracts - -import net.corda.core.identity.AbstractParty - -/** - * Dummy state for use in testing. Not part of any contract, not even the [DummyContract]. - */ -data class DummyState(val magicNumber: Int = 0) : ContractState { - override val contract = DUMMY_PROGRAM_ID - override val participants: List<AbstractParty> - get() = emptyList() -} diff --git a/core/src/main/kotlin/net/corda/core/contracts/DummyContract.kt b/core/src/main/kotlin/net/corda/core/contracts/testing/DummyContract.kt similarity index 90% rename from core/src/main/kotlin/net/corda/core/contracts/DummyContract.kt rename to core/src/main/kotlin/net/corda/core/contracts/testing/DummyContract.kt index 31e85f859c..5edc0d4f19 100644 --- a/core/src/main/kotlin/net/corda/core/contracts/DummyContract.kt +++ b/core/src/main/kotlin/net/corda/core/contracts/testing/DummyContract.kt @@ -1,5 +1,6 @@ -package net.corda.core.contracts +package net.corda.core.contracts.testing +import net.corda.core.contracts.* import net.corda.core.crypto.SecureHash import net.corda.core.identity.AbstractParty import net.corda.core.identity.Party @@ -55,8 +56,8 @@ data class DummyContract(override val legalContractReference: SecureHash = Secur } } - fun move(prior: StateAndRef<DummyContract.SingleOwnerState>, newOwner: AbstractParty) = move(listOf(prior), newOwner) - fun move(priors: List<StateAndRef<DummyContract.SingleOwnerState>>, newOwner: AbstractParty): TransactionBuilder { + fun move(prior: StateAndRef<SingleOwnerState>, newOwner: AbstractParty) = move(listOf(prior), newOwner) + fun move(priors: List<StateAndRef<SingleOwnerState>>, newOwner: AbstractParty): TransactionBuilder { require(priors.isNotEmpty()) val priorState = priors[0].state.data val (cmd, state) = priorState.withNewOwner(newOwner) diff --git a/core/src/main/kotlin/net/corda/core/contracts/testing/DummyContractV2.kt b/core/src/main/kotlin/net/corda/core/contracts/testing/DummyContractV2.kt new file mode 100644 index 0000000000..5e6be3631e --- /dev/null +++ b/core/src/main/kotlin/net/corda/core/contracts/testing/DummyContractV2.kt @@ -0,0 +1,55 @@ +package net.corda.core.contracts.testing + +// The dummy contract doesn't do anything useful. It exists for testing purposes. +val DUMMY_V2_PROGRAM_ID = net.corda.core.contracts.testing.DummyContractV2() + +/** + * Dummy contract state for testing of the upgrade process. + */ +// DOCSTART 1 +class DummyContractV2 : net.corda.core.contracts.UpgradedContract<DummyContract.State, DummyContractV2.State> { + override val legacyContract = DummyContract::class.java + + data class State(val magicNumber: Int = 0, val owners: List<net.corda.core.identity.AbstractParty>) : net.corda.core.contracts.ContractState { + override val contract = net.corda.core.contracts.testing.DUMMY_V2_PROGRAM_ID + override val participants: List<net.corda.core.identity.AbstractParty> = owners + } + + interface Commands : net.corda.core.contracts.CommandData { + class Create : net.corda.core.contracts.TypeOnlyCommandData(), net.corda.core.contracts.testing.DummyContractV2.Commands + class Move : net.corda.core.contracts.TypeOnlyCommandData(), net.corda.core.contracts.testing.DummyContractV2.Commands + } + + override fun upgrade(state: DummyContract.State): net.corda.core.contracts.testing.DummyContractV2.State { + return net.corda.core.contracts.testing.DummyContractV2.State(state.magicNumber, state.participants) + } + + override fun verify(tx: net.corda.core.contracts.TransactionForContract) { + if (tx.commands.any { it.value is net.corda.core.contracts.UpgradeCommand }) net.corda.flows.ContractUpgradeFlow.Companion.verify(tx) + // Other verifications. + } + + // The "empty contract" + override val legalContractReference: net.corda.core.crypto.SecureHash = net.corda.core.crypto.SecureHash.Companion.sha256("") + // DOCEND 1 + /** + * Generate an upgrade transaction from [DummyContract]. + * + * Note: This is a convenience helper method used for testing only. + * + * @return a pair of wire transaction, and a set of those who should sign the transaction for it to be valid. + */ + fun generateUpgradeFromV1(vararg states: net.corda.core.contracts.StateAndRef<DummyContract.State>): Pair<net.corda.core.transactions.WireTransaction, Set<net.corda.core.identity.AbstractParty>> { + val notary = states.map { it.state.notary }.single() + require(states.isNotEmpty()) + + val signees: Set<net.corda.core.identity.AbstractParty> = states.flatMap { it.state.data.participants }.distinct().toSet() + return Pair(net.corda.core.contracts.TransactionType.General.Builder(notary).apply { + states.forEach { + addInputState(it) + addOutputState(upgrade(it.state.data)) + addCommand(net.corda.core.contracts.UpgradeCommand(DUMMY_V2_PROGRAM_ID.javaClass), signees.map { it.owningKey }.toList()) + } + }.toWireTransaction(), signees) + } +} diff --git a/core/src/main/kotlin/net/corda/core/contracts/testing/DummyLinearContract.kt b/core/src/main/kotlin/net/corda/core/contracts/testing/DummyLinearContract.kt new file mode 100644 index 0000000000..2723de3a61 --- /dev/null +++ b/core/src/main/kotlin/net/corda/core/contracts/testing/DummyLinearContract.kt @@ -0,0 +1,54 @@ +package net.corda.core.contracts.testing + +import net.corda.core.contracts.CommandData +import net.corda.core.contracts.clauses.FilterOn +import net.corda.core.crypto.containsAny +import net.corda.core.schemas.testing.DummyLinearStateSchemaV1 +import net.corda.core.schemas.testing.DummyLinearStateSchemaV2 + +class DummyLinearContract : net.corda.core.contracts.Contract { + override val legalContractReference: net.corda.core.crypto.SecureHash = net.corda.core.crypto.SecureHash.Companion.sha256("Test") + + val clause: net.corda.core.contracts.clauses.Clause<State, CommandData, Unit> = net.corda.core.contracts.LinearState.ClauseVerifier() + override fun verify(tx: net.corda.core.contracts.TransactionForContract) = net.corda.core.contracts.clauses.verifyClause(tx, + FilterOn(clause, { states -> states.filterIsInstance<State>() }), + emptyList()) + + data class State( + override val linearId: net.corda.core.contracts.UniqueIdentifier = net.corda.core.contracts.UniqueIdentifier(), + override val contract: net.corda.core.contracts.Contract = net.corda.core.contracts.testing.DummyLinearContract(), + override val participants: List<net.corda.core.identity.AbstractParty> = listOf(), + val linearString: String = "ABC", + val linearNumber: Long = 123L, + val linearTimestamp: java.time.Instant = java.time.LocalDateTime.now().toInstant(java.time.ZoneOffset.UTC), + val linearBoolean: Boolean = true, + val nonce: net.corda.core.crypto.SecureHash = net.corda.core.crypto.SecureHash.Companion.randomSHA256()) : net.corda.core.contracts.LinearState, net.corda.core.schemas.QueryableState { + + override fun isRelevant(ourKeys: Set<java.security.PublicKey>): Boolean { + return participants.any { it.owningKey.containsAny(ourKeys) } + } + + override fun supportedSchemas(): Iterable<net.corda.core.schemas.MappedSchema> = listOf(DummyLinearStateSchemaV1, DummyLinearStateSchemaV2) + + override fun generateMappedObject(schema: net.corda.core.schemas.MappedSchema): net.corda.core.schemas.PersistentState { + return when (schema) { + is DummyLinearStateSchemaV1 -> DummyLinearStateSchemaV1.PersistentDummyLinearState( + externalId = linearId.externalId, + uuid = linearId.id, + linearString = linearString, + linearNumber = linearNumber, + linearTimestamp = linearTimestamp, + linearBoolean = linearBoolean + ) + is DummyLinearStateSchemaV2 -> DummyLinearStateSchemaV2.PersistentDummyLinearState( + uid = linearId, + linearString = linearString, + linearNumber = linearNumber, + linearTimestamp = linearTimestamp, + linearBoolean = linearBoolean + ) + else -> throw IllegalArgumentException("Unrecognised schema $schema") + } + } + } +} \ No newline at end of file diff --git a/core/src/main/kotlin/net/corda/core/contracts/testing/DummyState.kt b/core/src/main/kotlin/net/corda/core/contracts/testing/DummyState.kt new file mode 100644 index 0000000000..6c852bb33d --- /dev/null +++ b/core/src/main/kotlin/net/corda/core/contracts/testing/DummyState.kt @@ -0,0 +1,10 @@ +package net.corda.core.contracts.testing + +/** + * Dummy state for use in testing. Not part of any contract, not even the [DummyContract]. + */ +data class DummyState(val magicNumber: Int = 0) : net.corda.core.contracts.ContractState { + override val contract = DUMMY_PROGRAM_ID + override val participants: List<net.corda.core.identity.AbstractParty> + get() = emptyList() +} diff --git a/core/src/main/kotlin/net/corda/core/crypto/CryptoUtils.kt b/core/src/main/kotlin/net/corda/core/crypto/CryptoUtils.kt index 02d0c11627..2094a526c7 100644 --- a/core/src/main/kotlin/net/corda/core/crypto/CryptoUtils.kt +++ b/core/src/main/kotlin/net/corda/core/crypto/CryptoUtils.kt @@ -2,41 +2,11 @@ package net.corda.core.crypto -import net.corda.core.identity.AnonymousParty import net.corda.core.identity.Party -import net.corda.core.serialization.CordaSerializable import net.corda.core.serialization.OpaqueBytes import java.math.BigInteger import java.security.* -@CordaSerializable -object NullPublicKey : PublicKey, Comparable<PublicKey> { - override fun getAlgorithm() = "NULL" - override fun getEncoded() = byteArrayOf(0) - override fun getFormat() = "NULL" - override fun compareTo(other: PublicKey): Int = if (other == NullPublicKey) 0 else -1 - override fun toString() = "NULL_KEY" -} - -val NULL_PARTY = AnonymousParty(NullPublicKey) - -// TODO: Clean up this duplication between Null and Dummy public key -@CordaSerializable -@Deprecated("Has encoding format problems, consider entropyToKeyPair() instead") -class DummyPublicKey(val s: String) : PublicKey, Comparable<PublicKey> { - override fun getAlgorithm() = "DUMMY" - override fun getEncoded() = s.toByteArray() - override fun getFormat() = "ASN.1" - override fun compareTo(other: PublicKey): Int = BigInteger(encoded).compareTo(BigInteger(other.encoded)) - override fun equals(other: Any?) = other is DummyPublicKey && other.s == s - override fun hashCode(): Int = s.hashCode() - override fun toString() = "PUBKEY[$s]" -} - -/** A signature with a key and value of zero. Useful when you want a signature object that you know won't ever be used. */ -@CordaSerializable -object NullSignature : DigitalSignature.WithKey(NullPublicKey, ByteArray(32)) - /** * Utility to simplify the act of signing a byte array. * @param bytesToSign the data/message to be signed in [ByteArray] form (usually the Merkle root). diff --git a/core/src/main/kotlin/net/corda/core/crypto/testing/DummyKeys.kt b/core/src/main/kotlin/net/corda/core/crypto/testing/DummyKeys.kt new file mode 100644 index 0000000000..8b699ef38d --- /dev/null +++ b/core/src/main/kotlin/net/corda/core/crypto/testing/DummyKeys.kt @@ -0,0 +1,35 @@ +package net.corda.core.crypto.testing + +import net.corda.core.crypto.DigitalSignature +import net.corda.core.identity.AnonymousParty +import net.corda.core.serialization.CordaSerializable +import java.math.BigInteger +import java.security.PublicKey + +@CordaSerializable +object NullPublicKey : PublicKey, Comparable<PublicKey> { + override fun getAlgorithm() = "NULL" + override fun getEncoded() = byteArrayOf(0) + override fun getFormat() = "NULL" + override fun compareTo(other: PublicKey): Int = if (other == NullPublicKey) 0 else -1 + override fun toString() = "NULL_KEY" +} + +val NULL_PARTY = AnonymousParty(NullPublicKey) + +// TODO: Clean up this duplication between Null and Dummy public key +@CordaSerializable +@Deprecated("Has encoding format problems, consider entropyToKeyPair() instead") +class DummyPublicKey(val s: String) : PublicKey, Comparable<PublicKey> { + override fun getAlgorithm() = "DUMMY" + override fun getEncoded() = s.toByteArray() + override fun getFormat() = "ASN.1" + override fun compareTo(other: PublicKey): Int = BigInteger(encoded).compareTo(BigInteger(other.encoded)) + override fun equals(other: Any?) = other is DummyPublicKey && other.s == s + override fun hashCode(): Int = s.hashCode() + override fun toString() = "PUBKEY[$s]" +} + +/** A signature with a key and value of zero. Useful when you want a signature object that you know won't ever be used. */ +@CordaSerializable +object NullSignature : DigitalSignature.WithKey(NullPublicKey, ByteArray(32)) \ No newline at end of file diff --git a/core/src/main/kotlin/net/corda/core/schemas/DummyLinearStateSchemaV2.kt b/core/src/main/kotlin/net/corda/core/schemas/DummyLinearStateSchemaV2.kt deleted file mode 100644 index 247c061a0f..0000000000 --- a/core/src/main/kotlin/net/corda/core/schemas/DummyLinearStateSchemaV2.kt +++ /dev/null @@ -1,29 +0,0 @@ -package net.corda.core.schemas - -import net.corda.node.services.vault.schemas.jpa.CommonSchemaV1 -import javax.persistence.Column -import javax.persistence.Entity -import javax.persistence.Table - -/** - * Second version of a cash contract ORM schema that extends the common - * [VaultLinearState] abstract schema - */ -object DummyLinearStateSchemaV2 : net.corda.core.schemas.MappedSchema(schemaFamily = DummyLinearStateSchema.javaClass, version = 2, - mappedTypes = listOf(PersistentDummyLinearState::class.java)) { - @Entity - @Table(name = "dummy_linear_states_v2") - class PersistentDummyLinearState( - @Column(name = "linear_string") var linearString: String, - - @Column(name = "linear_number") var linearNumber: Long, - - @Column(name = "linear_timestamp") var linearTimestamp: java.time.Instant, - - @Column(name = "linear_boolean") var linearBoolean: Boolean, - - /** parent attributes */ - @Transient - val uid: net.corda.core.contracts.UniqueIdentifier - ) : CommonSchemaV1.LinearState(uid = uid) -} diff --git a/core/src/main/kotlin/net/corda/core/schemas/DummyDealStateSchemaV1.kt b/core/src/main/kotlin/net/corda/core/schemas/testing/DummyDealStateSchemaV1.kt similarity index 76% rename from core/src/main/kotlin/net/corda/core/schemas/DummyDealStateSchemaV1.kt rename to core/src/main/kotlin/net/corda/core/schemas/testing/DummyDealStateSchemaV1.kt index e26382143f..4b7a2a5b68 100644 --- a/core/src/main/kotlin/net/corda/core/schemas/DummyDealStateSchemaV1.kt +++ b/core/src/main/kotlin/net/corda/core/schemas/testing/DummyDealStateSchemaV1.kt @@ -1,4 +1,4 @@ -package net.corda.core.schemas +package net.corda.core.schemas.testing /** * An object used to fully qualify the [DummyDealStateSchema] family name (i.e. independent of version). @@ -9,7 +9,7 @@ object DummyDealStateSchema * First version of a cash contract ORM schema that maps all fields of the [DummyDealState] contract state as it stood * at the time of writing. */ -object DummyDealStateSchemaV1 : net.corda.core.schemas.MappedSchema(schemaFamily = net.corda.core.schemas.DummyDealStateSchema.javaClass, version = 1, mappedTypes = listOf(net.corda.core.schemas.DummyDealStateSchemaV1.PersistentDummyDealState::class.java)) { +object DummyDealStateSchemaV1 : net.corda.core.schemas.MappedSchema(schemaFamily = net.corda.core.schemas.testing.DummyDealStateSchema.javaClass, version = 1, mappedTypes = listOf(net.corda.core.schemas.testing.DummyDealStateSchemaV1.PersistentDummyDealState::class.java)) { @javax.persistence.Entity @javax.persistence.Table(name = "dummy_deal_states") class PersistentDummyDealState( diff --git a/core/src/main/kotlin/net/corda/core/schemas/DummyLinearStateSchemaV1.kt b/core/src/main/kotlin/net/corda/core/schemas/testing/DummyLinearStateSchemaV1.kt similarity index 92% rename from core/src/main/kotlin/net/corda/core/schemas/DummyLinearStateSchemaV1.kt rename to core/src/main/kotlin/net/corda/core/schemas/testing/DummyLinearStateSchemaV1.kt index a0c3c82649..3a0b8e3a66 100644 --- a/core/src/main/kotlin/net/corda/core/schemas/DummyLinearStateSchemaV1.kt +++ b/core/src/main/kotlin/net/corda/core/schemas/testing/DummyLinearStateSchemaV1.kt @@ -1,5 +1,7 @@ -package net.corda.core.schemas +package net.corda.core.schemas.testing +import net.corda.core.schemas.MappedSchema +import net.corda.core.schemas.PersistentState import java.time.Instant import java.util.* import javax.persistence.Column diff --git a/core/src/main/kotlin/net/corda/core/schemas/testing/DummyLinearStateSchemaV2.kt b/core/src/main/kotlin/net/corda/core/schemas/testing/DummyLinearStateSchemaV2.kt new file mode 100644 index 0000000000..ec2f36d86c --- /dev/null +++ b/core/src/main/kotlin/net/corda/core/schemas/testing/DummyLinearStateSchemaV2.kt @@ -0,0 +1,24 @@ +package net.corda.core.schemas.testing + +/** + * Second version of a cash contract ORM schema that extends the common + * [VaultLinearState] abstract schema + */ +object DummyLinearStateSchemaV2 : net.corda.core.schemas.MappedSchema(schemaFamily = DummyLinearStateSchema.javaClass, version = 2, + mappedTypes = listOf(net.corda.core.schemas.testing.DummyLinearStateSchemaV2.PersistentDummyLinearState::class.java)) { + @javax.persistence.Entity + @javax.persistence.Table(name = "dummy_linear_states_v2") + class PersistentDummyLinearState( + @javax.persistence.Column(name = "linear_string") var linearString: String, + + @javax.persistence.Column(name = "linear_number") var linearNumber: Long, + + @javax.persistence.Column(name = "linear_timestamp") var linearTimestamp: java.time.Instant, + + @javax.persistence.Column(name = "linear_boolean") var linearBoolean: Boolean, + + /** parent attributes */ + @Transient + val uid: net.corda.core.contracts.UniqueIdentifier + ) : net.corda.node.services.vault.schemas.jpa.CommonSchemaV1.LinearState(uid = uid) +} diff --git a/core/src/main/kotlin/net/corda/core/utilities/TestConstants.kt b/core/src/main/kotlin/net/corda/core/utilities/TestConstants.kt index 6861fa7fc0..b42a903493 100644 --- a/core/src/main/kotlin/net/corda/core/utilities/TestConstants.kt +++ b/core/src/main/kotlin/net/corda/core/utilities/TestConstants.kt @@ -3,6 +3,7 @@ package net.corda.core.utilities import net.corda.core.crypto.* +import net.corda.core.crypto.testing.DummyPublicKey import net.corda.core.identity.Party import net.corda.core.identity.PartyAndCertificate import org.bouncycastle.asn1.x500.X500Name diff --git a/core/src/test/kotlin/net/corda/core/contracts/DummyContractV2Tests.kt b/core/src/test/kotlin/net/corda/core/contracts/DummyContractV2Tests.kt index dfe175ded2..802d275bd5 100644 --- a/core/src/test/kotlin/net/corda/core/contracts/DummyContractV2Tests.kt +++ b/core/src/test/kotlin/net/corda/core/contracts/DummyContractV2Tests.kt @@ -1,9 +1,10 @@ package net.corda.core.contracts +import net.corda.core.contracts.testing.DummyContract +import net.corda.core.contracts.testing.DummyContractV2 import net.corda.core.crypto.SecureHash import net.corda.core.utilities.ALICE import net.corda.core.utilities.DUMMY_NOTARY -import net.corda.testing.ALICE_PUBKEY import org.junit.Test import kotlin.test.assertEquals import kotlin.test.assertTrue diff --git a/core/src/test/kotlin/net/corda/core/contracts/TransactionGraphSearchTests.kt b/core/src/test/kotlin/net/corda/core/contracts/TransactionGraphSearchTests.kt index c4557fd75d..aaa09b7ef5 100644 --- a/core/src/test/kotlin/net/corda/core/contracts/TransactionGraphSearchTests.kt +++ b/core/src/test/kotlin/net/corda/core/contracts/TransactionGraphSearchTests.kt @@ -1,5 +1,7 @@ package net.corda.core.contracts +import net.corda.core.contracts.testing.DummyContract +import net.corda.core.contracts.testing.DummyState import net.corda.core.crypto.newSecureRandom import net.corda.core.transactions.SignedTransaction import net.corda.core.transactions.WireTransaction @@ -10,7 +12,6 @@ import net.corda.testing.MEGA_CORP_PUBKEY import net.corda.testing.node.MockServices import net.corda.testing.node.MockTransactionStorage import org.junit.Test -import java.security.KeyPair import kotlin.test.assertEquals class TransactionGraphSearchTests { diff --git a/core/src/test/kotlin/net/corda/core/contracts/TransactionTests.kt b/core/src/test/kotlin/net/corda/core/contracts/TransactionTests.kt index 61750d7619..c42ffb4a28 100644 --- a/core/src/test/kotlin/net/corda/core/contracts/TransactionTests.kt +++ b/core/src/test/kotlin/net/corda/core/contracts/TransactionTests.kt @@ -1,6 +1,7 @@ package net.corda.core.contracts import net.corda.contracts.asset.DUMMY_CASH_ISSUER_KEY +import net.corda.core.contracts.testing.DummyContract import net.corda.core.crypto.CompositeKey import net.corda.core.crypto.SecureHash import net.corda.core.crypto.generateKeyPair diff --git a/core/src/test/kotlin/net/corda/core/contracts/clauses/VerifyClausesTests.kt b/core/src/test/kotlin/net/corda/core/contracts/clauses/VerifyClausesTests.kt index 5a7aba240c..076d7e2854 100644 --- a/core/src/test/kotlin/net/corda/core/contracts/clauses/VerifyClausesTests.kt +++ b/core/src/test/kotlin/net/corda/core/contracts/clauses/VerifyClausesTests.kt @@ -1,6 +1,10 @@ package net.corda.core.contracts.clauses -import net.corda.core.contracts.* +import net.corda.core.contracts.AuthenticatedObject +import net.corda.core.contracts.CommandData +import net.corda.core.contracts.ContractState +import net.corda.core.contracts.TransactionForContract +import net.corda.core.contracts.testing.DummyContract import net.corda.core.crypto.SecureHash import org.junit.Test import kotlin.test.assertFailsWith diff --git a/core/src/test/kotlin/net/corda/core/flows/CollectSignaturesFlowTests.kt b/core/src/test/kotlin/net/corda/core/flows/CollectSignaturesFlowTests.kt index 91672d3133..fdc472ab1e 100644 --- a/core/src/test/kotlin/net/corda/core/flows/CollectSignaturesFlowTests.kt +++ b/core/src/test/kotlin/net/corda/core/flows/CollectSignaturesFlowTests.kt @@ -2,9 +2,9 @@ package net.corda.core.flows import co.paralleluniverse.fibers.Suspendable import net.corda.core.contracts.Command -import net.corda.core.contracts.DummyContract import net.corda.core.contracts.TransactionType import net.corda.core.contracts.requireThat +import net.corda.core.contracts.testing.DummyContract import net.corda.core.getOrThrow import net.corda.core.identity.Party import net.corda.core.transactions.SignedTransaction @@ -13,7 +13,6 @@ import net.corda.flows.CollectSignaturesFlow import net.corda.flows.FinalityFlow import net.corda.flows.SignTransactionFlow import net.corda.testing.MINI_CORP_KEY -import net.corda.testing.MINI_CORP_PUBKEY import net.corda.testing.node.MockNetwork import net.corda.testing.node.MockServices import org.junit.After diff --git a/core/src/test/kotlin/net/corda/core/flows/ContractUpgradeFlowTest.kt b/core/src/test/kotlin/net/corda/core/flows/ContractUpgradeFlowTest.kt index 38289537f1..d8661ac41c 100644 --- a/core/src/test/kotlin/net/corda/core/flows/ContractUpgradeFlowTest.kt +++ b/core/src/test/kotlin/net/corda/core/flows/ContractUpgradeFlowTest.kt @@ -3,6 +3,8 @@ package net.corda.core.flows import co.paralleluniverse.fibers.Suspendable import net.corda.contracts.asset.Cash import net.corda.core.contracts.* +import net.corda.core.contracts.testing.DummyContract +import net.corda.core.contracts.testing.DummyContractV2 import net.corda.core.crypto.SecureHash import net.corda.core.getOrThrow import net.corda.core.identity.AbstractParty diff --git a/core/src/test/kotlin/net/corda/core/flows/ResolveTransactionsFlowTest.kt b/core/src/test/kotlin/net/corda/core/flows/ResolveTransactionsFlowTest.kt index 8dccc62f9a..852c14b4fb 100644 --- a/core/src/test/kotlin/net/corda/core/flows/ResolveTransactionsFlowTest.kt +++ b/core/src/test/kotlin/net/corda/core/flows/ResolveTransactionsFlowTest.kt @@ -1,7 +1,6 @@ package net.corda.core.flows -import net.corda.core.contracts.DummyContract -import net.corda.core.crypto.NullSignature +import net.corda.core.contracts.testing.DummyContract import net.corda.core.crypto.SecureHash import net.corda.core.getOrThrow import net.corda.core.identity.Party diff --git a/docs/source/example-code/src/main/java/net/corda/docs/FlowCookbookJava.java b/docs/source/example-code/src/main/java/net/corda/docs/FlowCookbookJava.java index b50156b057..6392a4e133 100644 --- a/docs/source/example-code/src/main/java/net/corda/docs/FlowCookbookJava.java +++ b/docs/source/example-code/src/main/java/net/corda/docs/FlowCookbookJava.java @@ -7,6 +7,8 @@ import net.corda.contracts.asset.Cash; import net.corda.core.contracts.*; import net.corda.core.contracts.TransactionType.General; import net.corda.core.contracts.TransactionType.NotaryChange; +import net.corda.core.contracts.testing.DummyContract; +import net.corda.core.contracts.testing.DummyState; import net.corda.core.crypto.SecureHash; import net.corda.core.flows.*; import net.corda.core.identity.Party; diff --git a/docs/source/example-code/src/main/kotlin/net/corda/docs/FlowCookbook.kt b/docs/source/example-code/src/main/kotlin/net/corda/docs/FlowCookbook.kt index e906651f32..fa25e494e8 100644 --- a/docs/source/example-code/src/main/kotlin/net/corda/docs/FlowCookbook.kt +++ b/docs/source/example-code/src/main/kotlin/net/corda/docs/FlowCookbook.kt @@ -5,6 +5,8 @@ import net.corda.contracts.asset.Cash import net.corda.core.contracts.* import net.corda.core.contracts.TransactionType.General import net.corda.core.contracts.TransactionType.NotaryChange +import net.corda.core.contracts.testing.DummyContract +import net.corda.core.contracts.testing.DummyState import net.corda.core.crypto.SecureHash import net.corda.core.flows.* import net.corda.core.identity.Party diff --git a/finance/src/main/java/net/corda/contracts/JavaCommercialPaper.java b/finance/src/main/java/net/corda/contracts/JavaCommercialPaper.java index bc1d505ff9..07b071c98e 100644 --- a/finance/src/main/java/net/corda/contracts/JavaCommercialPaper.java +++ b/finance/src/main/java/net/corda/contracts/JavaCommercialPaper.java @@ -1,27 +1,36 @@ package net.corda.contracts; -import co.paralleluniverse.fibers.*; -import com.google.common.collect.*; -import kotlin.*; -import net.corda.contracts.asset.*; +import co.paralleluniverse.fibers.Suspendable; +import com.google.common.collect.ImmutableList; +import kotlin.Pair; +import kotlin.Unit; +import net.corda.contracts.asset.CashKt; import net.corda.core.contracts.*; -import net.corda.core.contracts.Contract; -import net.corda.core.contracts.TransactionForContract.*; -import net.corda.core.contracts.clauses.*; -import net.corda.core.crypto.*; +import net.corda.core.contracts.TransactionForContract.InOutGroup; +import net.corda.core.contracts.clauses.AnyOf; +import net.corda.core.contracts.clauses.Clause; +import net.corda.core.contracts.clauses.ClauseVerifier; +import net.corda.core.contracts.clauses.GroupClauseVerifier; +import net.corda.core.crypto.SecureHash; +import net.corda.core.crypto.testing.NullPublicKey; import net.corda.core.identity.AbstractParty; import net.corda.core.identity.AnonymousParty; import net.corda.core.identity.Party; -import net.corda.core.node.services.*; -import net.corda.core.transactions.*; -import org.jetbrains.annotations.*; +import net.corda.core.node.services.VaultService; +import net.corda.core.transactions.TransactionBuilder; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; -import java.time.*; -import java.util.*; -import java.util.stream.*; +import java.time.Instant; +import java.util.Collections; +import java.util.Currency; +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; -import static kotlin.collections.CollectionsKt.*; -import static net.corda.core.contracts.ContractsDSL.*; +import static kotlin.collections.CollectionsKt.single; +import static net.corda.core.contracts.ContractsDSL.requireSingleCommand; +import static net.corda.core.contracts.ContractsDSL.requireThat; /** diff --git a/finance/src/main/kotlin/net/corda/contracts/CommercialPaperLegacy.kt b/finance/src/main/kotlin/net/corda/contracts/CommercialPaperLegacy.kt index c8beea5c0e..0c3811556b 100644 --- a/finance/src/main/kotlin/net/corda/contracts/CommercialPaperLegacy.kt +++ b/finance/src/main/kotlin/net/corda/contracts/CommercialPaperLegacy.kt @@ -3,8 +3,8 @@ package net.corda.contracts import co.paralleluniverse.fibers.Suspendable import net.corda.contracts.asset.sumCashBy import net.corda.core.contracts.* -import net.corda.core.crypto.NULL_PARTY import net.corda.core.crypto.SecureHash +import net.corda.core.crypto.testing.NULL_PARTY import net.corda.core.identity.AbstractParty import net.corda.core.identity.Party import net.corda.core.node.services.VaultService diff --git a/finance/src/main/kotlin/net/corda/contracts/DummyDealContract.kt b/finance/src/main/kotlin/net/corda/contracts/DummyDealContract.kt index 04ca026671..39041fbef5 100644 --- a/finance/src/main/kotlin/net/corda/contracts/DummyDealContract.kt +++ b/finance/src/main/kotlin/net/corda/contracts/DummyDealContract.kt @@ -3,13 +3,14 @@ package net.corda.contracts import net.corda.core.contracts.Contract import net.corda.core.contracts.TransactionForContract import net.corda.core.contracts.UniqueIdentifier -import net.corda.core.crypto.* +import net.corda.core.crypto.SecureHash +import net.corda.core.crypto.containsAny import net.corda.core.identity.AbstractParty import net.corda.core.identity.Party -import net.corda.core.schemas.DummyDealStateSchemaV1 import net.corda.core.schemas.MappedSchema import net.corda.core.schemas.PersistentState import net.corda.core.schemas.QueryableState +import net.corda.core.schemas.testing.DummyDealStateSchemaV1 import net.corda.core.transactions.TransactionBuilder import java.security.PublicKey diff --git a/finance/src/main/kotlin/net/corda/contracts/asset/Cash.kt b/finance/src/main/kotlin/net/corda/contracts/asset/Cash.kt index 62458b59da..f47fb51ec1 100644 --- a/finance/src/main/kotlin/net/corda/contracts/asset/Cash.kt +++ b/finance/src/main/kotlin/net/corda/contracts/asset/Cash.kt @@ -8,7 +8,11 @@ import net.corda.core.contracts.clauses.AllOf import net.corda.core.contracts.clauses.FirstOf import net.corda.core.contracts.clauses.GroupClauseVerifier import net.corda.core.contracts.clauses.verifyClause -import net.corda.core.crypto.* +import net.corda.core.crypto.SecureHash +import net.corda.core.crypto.entropyToKeyPair +import net.corda.core.crypto.newSecureRandom +import net.corda.core.crypto.testing.NULL_PARTY +import net.corda.core.crypto.toBase58String import net.corda.core.identity.AbstractParty import net.corda.core.identity.Party import net.corda.core.schemas.MappedSchema diff --git a/finance/src/main/kotlin/net/corda/contracts/asset/Obligation.kt b/finance/src/main/kotlin/net/corda/contracts/asset/Obligation.kt index 1af1959760..cfd6abdab3 100644 --- a/finance/src/main/kotlin/net/corda/contracts/asset/Obligation.kt +++ b/finance/src/main/kotlin/net/corda/contracts/asset/Obligation.kt @@ -8,9 +8,9 @@ import net.corda.contracts.asset.Obligation.Lifecycle.NORMAL import net.corda.contracts.clause.* import net.corda.core.contracts.* import net.corda.core.contracts.clauses.* -import net.corda.core.crypto.NULL_PARTY import net.corda.core.crypto.SecureHash import net.corda.core.crypto.entropyToKeyPair +import net.corda.core.crypto.testing.NULL_PARTY import net.corda.core.identity.AbstractParty import net.corda.core.identity.AnonymousParty import net.corda.core.identity.Party diff --git a/finance/src/main/kotlin/net/corda/contracts/testing/VaultFiller.kt b/finance/src/main/kotlin/net/corda/contracts/testing/VaultFiller.kt index b7fdd8c06f..923a545d52 100644 --- a/finance/src/main/kotlin/net/corda/contracts/testing/VaultFiller.kt +++ b/finance/src/main/kotlin/net/corda/contracts/testing/VaultFiller.kt @@ -7,6 +7,7 @@ import net.corda.contracts.DealState import net.corda.contracts.DummyDealContract import net.corda.contracts.asset.* import net.corda.core.contracts.* +import net.corda.core.contracts.testing.DummyLinearContract import net.corda.core.identity.AbstractParty import net.corda.core.identity.AnonymousParty import net.corda.core.identity.Party diff --git a/finance/src/test/kotlin/net/corda/contracts/asset/CashTests.kt b/finance/src/test/kotlin/net/corda/contracts/asset/CashTests.kt index 6dff6c60e2..27f355d1a7 100644 --- a/finance/src/test/kotlin/net/corda/contracts/asset/CashTests.kt +++ b/finance/src/test/kotlin/net/corda/contracts/asset/CashTests.kt @@ -2,6 +2,7 @@ package net.corda.contracts.asset import net.corda.contracts.testing.fillWithSomeTestCash import net.corda.core.contracts.* +import net.corda.core.contracts.testing.DummyState import net.corda.core.crypto.SecureHash import net.corda.core.crypto.generateKeyPair import net.corda.core.identity.AbstractParty diff --git a/finance/src/test/kotlin/net/corda/contracts/asset/ObligationTests.kt b/finance/src/test/kotlin/net/corda/contracts/asset/ObligationTests.kt index 7b9d18161f..8cb3d8f677 100644 --- a/finance/src/test/kotlin/net/corda/contracts/asset/ObligationTests.kt +++ b/finance/src/test/kotlin/net/corda/contracts/asset/ObligationTests.kt @@ -4,8 +4,9 @@ import net.corda.contracts.Commodity import net.corda.contracts.NetType import net.corda.contracts.asset.Obligation.Lifecycle import net.corda.core.contracts.* -import net.corda.core.crypto.NULL_PARTY +import net.corda.core.contracts.testing.DummyState import net.corda.core.crypto.SecureHash +import net.corda.core.crypto.testing.NULL_PARTY import net.corda.core.identity.AbstractParty import net.corda.core.identity.AnonymousParty import net.corda.core.serialization.OpaqueBytes diff --git a/finance/src/test/kotlin/net/corda/contracts/testing/Generators.kt b/finance/src/test/kotlin/net/corda/contracts/testing/Generators.kt index fe65daa626..1ca4c5d998 100644 --- a/finance/src/test/kotlin/net/corda/contracts/testing/Generators.kt +++ b/finance/src/test/kotlin/net/corda/contracts/testing/Generators.kt @@ -9,7 +9,7 @@ import net.corda.core.contracts.Command import net.corda.core.contracts.CommandData import net.corda.core.contracts.ContractState import net.corda.core.contracts.TransactionType -import net.corda.core.crypto.NullSignature +import net.corda.core.crypto.testing.NullSignature import net.corda.core.identity.AnonymousParty import net.corda.core.testing.* import net.corda.core.transactions.SignedTransaction diff --git a/node-schemas/src/test/kotlin/net/corda/node/services/vault/schemas/VaultSchemaTest.kt b/node-schemas/src/test/kotlin/net/corda/node/services/vault/schemas/VaultSchemaTest.kt index b54cb0d961..5d552f6a9e 100644 --- a/node-schemas/src/test/kotlin/net/corda/node/services/vault/schemas/VaultSchemaTest.kt +++ b/node-schemas/src/test/kotlin/net/corda/node/services/vault/schemas/VaultSchemaTest.kt @@ -8,7 +8,7 @@ import io.requery.rx.KotlinRxEntityStore import io.requery.sql.* import io.requery.sql.platform.Generic import net.corda.core.contracts.* -import net.corda.core.contracts.TimeWindow +import net.corda.core.contracts.testing.DummyContract import net.corda.core.crypto.CompositeKey import net.corda.core.crypto.SecureHash import net.corda.core.crypto.generateKeyPair @@ -21,7 +21,10 @@ import net.corda.core.schemas.requery.converters.VaultStateStatusConverter import net.corda.core.serialization.deserialize import net.corda.core.serialization.serialize import net.corda.core.transactions.LedgerTransaction -import net.corda.core.utilities.* +import net.corda.core.utilities.ALICE +import net.corda.core.utilities.BOB +import net.corda.core.utilities.DUMMY_NOTARY +import net.corda.core.utilities.DUMMY_NOTARY_KEY import net.corda.node.services.vault.schemas.requery.* import org.h2.jdbcx.JdbcDataSource import org.junit.After diff --git a/node/src/integration-test/kotlin/net/corda/node/services/BFTNotaryServiceTests.kt b/node/src/integration-test/kotlin/net/corda/node/services/BFTNotaryServiceTests.kt index 35527d3f78..d0aeb6547b 100644 --- a/node/src/integration-test/kotlin/net/corda/node/services/BFTNotaryServiceTests.kt +++ b/node/src/integration-test/kotlin/net/corda/node/services/BFTNotaryServiceTests.kt @@ -2,10 +2,15 @@ package net.corda.node.services import com.google.common.net.HostAndPort import com.nhaarman.mockito_kotlin.whenever -import net.corda.core.* -import net.corda.core.contracts.* +import net.corda.core.ErrorOr +import net.corda.core.contracts.ContractState +import net.corda.core.contracts.StateRef +import net.corda.core.contracts.TransactionType +import net.corda.core.contracts.testing.DummyContract import net.corda.core.crypto.CompositeKey import net.corda.core.crypto.SecureHash +import net.corda.core.div +import net.corda.core.getOrThrow import net.corda.core.identity.Party import net.corda.core.node.services.ServiceInfo import net.corda.flows.NotaryError @@ -20,11 +25,12 @@ import net.corda.node.utilities.ServiceIdentityGenerator import net.corda.node.utilities.transaction import net.corda.testing.node.MockNetwork import org.bouncycastle.asn1.x500.X500Name -import org.junit.Ignore import org.junit.After +import org.junit.Ignore import org.junit.Test import java.nio.file.Files -import kotlin.test.* +import kotlin.test.assertEquals +import kotlin.test.assertTrue class BFTNotaryServiceTests { companion object { diff --git a/node/src/integration-test/kotlin/net/corda/node/services/RaftNotaryServiceTests.kt b/node/src/integration-test/kotlin/net/corda/node/services/RaftNotaryServiceTests.kt index c170de0647..6fe61fb40d 100644 --- a/node/src/integration-test/kotlin/net/corda/node/services/RaftNotaryServiceTests.kt +++ b/node/src/integration-test/kotlin/net/corda/node/services/RaftNotaryServiceTests.kt @@ -1,10 +1,10 @@ package net.corda.node.services import com.google.common.util.concurrent.Futures -import net.corda.core.contracts.DummyContract import net.corda.core.contracts.StateAndRef import net.corda.core.contracts.StateRef import net.corda.core.contracts.TransactionType +import net.corda.core.contracts.testing.DummyContract import net.corda.core.getOrThrow import net.corda.core.identity.Party import net.corda.core.map diff --git a/node/src/test/java/net/corda/node/services/vault/VaultQueryJavaTests.java b/node/src/test/java/net/corda/node/services/vault/VaultQueryJavaTests.java index 305a14407a..38deb5639a 100644 --- a/node/src/test/java/net/corda/node/services/vault/VaultQueryJavaTests.java +++ b/node/src/test/java/net/corda/node/services/vault/VaultQueryJavaTests.java @@ -1,43 +1,59 @@ package net.corda.node.services.vault; -import com.google.common.collect.*; -import kotlin.*; -import net.corda.contracts.*; -import net.corda.contracts.asset.*; +import com.google.common.collect.ImmutableSet; +import kotlin.Pair; +import net.corda.contracts.DealState; +import net.corda.contracts.asset.Cash; import net.corda.core.contracts.*; -import net.corda.core.crypto.*; -import net.corda.core.identity.*; +import net.corda.core.contracts.testing.DummyLinearContract; +import net.corda.core.crypto.SecureHash; +import net.corda.core.identity.AbstractParty; import net.corda.core.messaging.DataFeed; -import net.corda.core.node.services.*; +import net.corda.core.node.services.Vault; +import net.corda.core.node.services.VaultQueryException; +import net.corda.core.node.services.VaultQueryService; +import net.corda.core.node.services.VaultService; import net.corda.core.node.services.vault.*; -import net.corda.core.node.services.vault.QueryCriteria.*; -import net.corda.core.schemas.*; -import net.corda.core.serialization.*; -import net.corda.core.transactions.*; -import net.corda.node.services.database.*; -import net.corda.node.services.schema.*; -import net.corda.schemas.*; -import net.corda.testing.node.*; -import org.jetbrains.annotations.*; -import org.jetbrains.exposed.sql.*; -import org.junit.*; +import net.corda.core.node.services.vault.QueryCriteria.LinearStateQueryCriteria; +import net.corda.core.node.services.vault.QueryCriteria.VaultCustomQueryCriteria; +import net.corda.core.node.services.vault.QueryCriteria.VaultQueryCriteria; +import net.corda.core.schemas.MappedSchema; +import net.corda.core.schemas.testing.DummyLinearStateSchemaV1; +import net.corda.core.serialization.OpaqueBytes; +import net.corda.core.transactions.SignedTransaction; +import net.corda.core.transactions.WireTransaction; +import net.corda.node.services.database.HibernateConfiguration; +import net.corda.node.services.schema.NodeSchemaService; +import net.corda.schemas.CashSchemaV1; +import net.corda.testing.node.MockServices; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.exposed.sql.Database; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; import rx.Observable; -import java.io.*; -import java.lang.reflect.*; +import java.io.Closeable; +import java.io.IOException; +import java.lang.reflect.Field; import java.util.*; -import java.util.stream.*; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import java.util.stream.StreamSupport; -import static net.corda.contracts.asset.CashKt.*; +import static net.corda.contracts.asset.CashKt.getDUMMY_CASH_ISSUER; +import static net.corda.contracts.asset.CashKt.getDUMMY_CASH_ISSUER_KEY; import static net.corda.contracts.testing.VaultFiller.*; -import static net.corda.core.node.services.vault.QueryCriteriaKt.*; -import static net.corda.core.node.services.vault.QueryCriteriaUtilsKt.*; -import static net.corda.core.utilities.TestConstants.*; -import static net.corda.node.utilities.DatabaseSupportKt.*; +import static net.corda.core.node.services.vault.QueryCriteriaKt.and; +import static net.corda.core.node.services.vault.QueryCriteriaKt.or; +import static net.corda.core.node.services.vault.QueryCriteriaUtilsKt.getMAX_PAGE_SIZE; +import static net.corda.core.utilities.TestConstants.getDUMMY_NOTARY; +import static net.corda.node.utilities.DatabaseSupportKt.configureDatabase; import static net.corda.node.utilities.DatabaseSupportKt.transaction; -import static net.corda.testing.CoreTestUtils.*; -import static net.corda.testing.node.MockServicesKt.*; -import static org.assertj.core.api.Assertions.*; +import static net.corda.testing.CoreTestUtils.getMEGA_CORP; +import static net.corda.testing.CoreTestUtils.getMEGA_CORP_KEY; +import static net.corda.testing.node.MockServicesKt.makeTestDataSourceProperties; +import static org.assertj.core.api.Assertions.assertThat; public class VaultQueryJavaTests { diff --git a/node/src/test/kotlin/net/corda/node/services/NotaryChangeTests.kt b/node/src/test/kotlin/net/corda/node/services/NotaryChangeTests.kt index 206cccccb4..4ff4962f76 100644 --- a/node/src/test/kotlin/net/corda/node/services/NotaryChangeTests.kt +++ b/node/src/test/kotlin/net/corda/node/services/NotaryChangeTests.kt @@ -1,6 +1,7 @@ package net.corda.node.services import net.corda.core.contracts.* +import net.corda.core.contracts.testing.DummyContract import net.corda.core.crypto.generateKeyPair import net.corda.core.getOrThrow import net.corda.core.identity.Party diff --git a/node/src/test/kotlin/net/corda/node/services/database/HibernateConfigurationTest.kt b/node/src/test/kotlin/net/corda/node/services/database/HibernateConfigurationTest.kt index 4cf8b2746b..ff5bfa324c 100644 --- a/node/src/test/kotlin/net/corda/node/services/database/HibernateConfigurationTest.kt +++ b/node/src/test/kotlin/net/corda/node/services/database/HibernateConfigurationTest.kt @@ -10,9 +10,9 @@ import net.corda.core.contracts.* import net.corda.core.crypto.toBase58String import net.corda.core.node.services.Vault import net.corda.core.node.services.VaultService -import net.corda.core.schemas.DummyLinearStateSchemaV1 -import net.corda.core.schemas.DummyLinearStateSchemaV2 import net.corda.core.schemas.PersistentStateRef +import net.corda.core.schemas.testing.DummyLinearStateSchemaV1 +import net.corda.core.schemas.testing.DummyLinearStateSchemaV2 import net.corda.core.serialization.deserialize import net.corda.core.serialization.storageKryo import net.corda.core.transactions.SignedTransaction diff --git a/node/src/test/kotlin/net/corda/node/services/database/RequeryConfigurationTest.kt b/node/src/test/kotlin/net/corda/node/services/database/RequeryConfigurationTest.kt index b1b482261a..1ad35060e0 100644 --- a/node/src/test/kotlin/net/corda/node/services/database/RequeryConfigurationTest.kt +++ b/node/src/test/kotlin/net/corda/node/services/database/RequeryConfigurationTest.kt @@ -3,12 +3,12 @@ package net.corda.node.services.database import io.requery.Persistable import io.requery.kotlin.eq import io.requery.sql.KotlinEntityDataStore -import net.corda.core.contracts.DummyContract import net.corda.core.contracts.StateRef import net.corda.core.contracts.TransactionType +import net.corda.core.contracts.testing.DummyContract import net.corda.core.crypto.DigitalSignature -import net.corda.core.crypto.NullPublicKey import net.corda.core.crypto.SecureHash +import net.corda.core.crypto.testing.NullPublicKey import net.corda.core.crypto.toBase58String import net.corda.core.identity.AnonymousParty import net.corda.core.node.services.Vault diff --git a/node/src/test/kotlin/net/corda/node/services/events/ScheduledFlowTests.kt b/node/src/test/kotlin/net/corda/node/services/events/ScheduledFlowTests.kt index f818364974..e271045133 100644 --- a/node/src/test/kotlin/net/corda/node/services/events/ScheduledFlowTests.kt +++ b/node/src/test/kotlin/net/corda/node/services/events/ScheduledFlowTests.kt @@ -2,6 +2,7 @@ package net.corda.node.services.events import co.paralleluniverse.fibers.Suspendable import net.corda.core.contracts.* +import net.corda.core.contracts.testing.DummyContract import net.corda.core.crypto.containsAny import net.corda.core.flows.FlowInitiator import net.corda.core.flows.FlowLogic diff --git a/node/src/test/kotlin/net/corda/node/services/persistence/DBTransactionStorageTests.kt b/node/src/test/kotlin/net/corda/node/services/persistence/DBTransactionStorageTests.kt index 24c2b17dba..232db57467 100644 --- a/node/src/test/kotlin/net/corda/node/services/persistence/DBTransactionStorageTests.kt +++ b/node/src/test/kotlin/net/corda/node/services/persistence/DBTransactionStorageTests.kt @@ -3,8 +3,8 @@ package net.corda.node.services.persistence import net.corda.core.contracts.StateRef import net.corda.core.contracts.TransactionType import net.corda.core.crypto.DigitalSignature -import net.corda.core.crypto.NullPublicKey import net.corda.core.crypto.SecureHash +import net.corda.core.crypto.testing.NullPublicKey import net.corda.core.toFuture import net.corda.core.transactions.SignedTransaction import net.corda.core.transactions.WireTransaction diff --git a/node/src/test/kotlin/net/corda/node/services/statemachine/FlowFrameworkTests.kt b/node/src/test/kotlin/net/corda/node/services/statemachine/FlowFrameworkTests.kt index 409ae70201..54f97ba873 100644 --- a/node/src/test/kotlin/net/corda/node/services/statemachine/FlowFrameworkTests.kt +++ b/node/src/test/kotlin/net/corda/node/services/statemachine/FlowFrameworkTests.kt @@ -7,11 +7,14 @@ import net.corda.contracts.asset.Cash import net.corda.core.* import net.corda.core.contracts.ContractState import net.corda.core.contracts.DOLLARS -import net.corda.core.contracts.DummyState import net.corda.core.contracts.StateAndRef +import net.corda.core.contracts.testing.DummyState import net.corda.core.crypto.SecureHash import net.corda.core.crypto.generateKeyPair -import net.corda.core.flows.* +import net.corda.core.flows.FlowException +import net.corda.core.flows.FlowLogic +import net.corda.core.flows.FlowSessionException +import net.corda.core.flows.InitiatingFlow import net.corda.core.identity.Party import net.corda.core.messaging.MessageRecipients import net.corda.core.node.services.PartyInfo diff --git a/node/src/test/kotlin/net/corda/node/services/transactions/NotaryServiceTests.kt b/node/src/test/kotlin/net/corda/node/services/transactions/NotaryServiceTests.kt index 45ed3fc9d5..deaa8bc278 100644 --- a/node/src/test/kotlin/net/corda/node/services/transactions/NotaryServiceTests.kt +++ b/node/src/test/kotlin/net/corda/node/services/transactions/NotaryServiceTests.kt @@ -1,10 +1,10 @@ package net.corda.node.services.transactions import com.google.common.util.concurrent.ListenableFuture -import net.corda.core.contracts.DummyContract import net.corda.core.contracts.StateAndRef import net.corda.core.contracts.StateRef import net.corda.core.contracts.TransactionType +import net.corda.core.contracts.testing.DummyContract import net.corda.core.crypto.DigitalSignature import net.corda.core.getOrThrow import net.corda.core.node.services.ServiceInfo diff --git a/node/src/test/kotlin/net/corda/node/services/transactions/ValidatingNotaryServiceTests.kt b/node/src/test/kotlin/net/corda/node/services/transactions/ValidatingNotaryServiceTests.kt index 3d6f495650..267632521a 100644 --- a/node/src/test/kotlin/net/corda/node/services/transactions/ValidatingNotaryServiceTests.kt +++ b/node/src/test/kotlin/net/corda/node/services/transactions/ValidatingNotaryServiceTests.kt @@ -1,7 +1,11 @@ package net.corda.node.services.transactions import com.google.common.util.concurrent.ListenableFuture -import net.corda.core.contracts.* +import net.corda.core.contracts.Command +import net.corda.core.contracts.StateAndRef +import net.corda.core.contracts.StateRef +import net.corda.core.contracts.TransactionType +import net.corda.core.contracts.testing.DummyContract import net.corda.core.crypto.DigitalSignature import net.corda.core.getOrThrow import net.corda.core.node.services.ServiceInfo diff --git a/node/src/test/kotlin/net/corda/node/services/vault/VaultQueryTests.kt b/node/src/test/kotlin/net/corda/node/services/vault/VaultQueryTests.kt index 3183a5546a..f36e44708e 100644 --- a/node/src/test/kotlin/net/corda/node/services/vault/VaultQueryTests.kt +++ b/node/src/test/kotlin/net/corda/node/services/vault/VaultQueryTests.kt @@ -8,13 +8,14 @@ import net.corda.contracts.asset.Cash import net.corda.contracts.asset.DUMMY_CASH_ISSUER import net.corda.contracts.testing.* import net.corda.core.contracts.* +import net.corda.core.contracts.testing.DummyLinearContract import net.corda.core.crypto.entropyToKeyPair import net.corda.core.days import net.corda.core.identity.Party import net.corda.core.node.services.* import net.corda.core.node.services.vault.* import net.corda.core.node.services.vault.QueryCriteria.* -import net.corda.core.schemas.DummyLinearStateSchemaV1 +import net.corda.core.schemas.testing.DummyLinearStateSchemaV1 import net.corda.core.seconds import net.corda.core.serialization.OpaqueBytes import net.corda.core.transactions.SignedTransaction @@ -706,7 +707,7 @@ class VaultQueryTests { } assertThat(states).hasSize(20) - assertThat(metadata.first().contractStateClassName).isEqualTo("net.corda.core.contracts.DummyLinearContract\$State") + assertThat(metadata.first().contractStateClassName).isEqualTo("net.corda.core.contracts.testing.DummyLinearContract\$State") assertThat(metadata.first().status).isEqualTo(Vault.StateStatus.UNCONSUMED) // 0 = UNCONSUMED assertThat(metadata.last().contractStateClassName).isEqualTo("net.corda.contracts.DummyDealContract\$State") assertThat(metadata.last().status).isEqualTo(Vault.StateStatus.CONSUMED) // 1 = CONSUMED diff --git a/node/src/test/kotlin/net/corda/node/services/vault/VaultWithCashTest.kt b/node/src/test/kotlin/net/corda/node/services/vault/VaultWithCashTest.kt index e857b2f5ca..5e08269b5b 100644 --- a/node/src/test/kotlin/net/corda/node/services/vault/VaultWithCashTest.kt +++ b/node/src/test/kotlin/net/corda/node/services/vault/VaultWithCashTest.kt @@ -7,6 +7,7 @@ import net.corda.contracts.testing.fillWithSomeTestCash import net.corda.contracts.testing.fillWithSomeTestDeals import net.corda.contracts.testing.fillWithSomeTestLinearStates import net.corda.core.contracts.* +import net.corda.core.contracts.testing.DummyLinearContract import net.corda.core.identity.AnonymousParty import net.corda.core.node.services.VaultService import net.corda.core.node.services.consumedStates @@ -22,7 +23,8 @@ import net.corda.testing.MEGA_CORP import net.corda.testing.MEGA_CORP_KEY import net.corda.testing.node.MockServices import net.corda.testing.node.makeTestDataSourceProperties -import org.assertj.core.api.Assertions.* +import org.assertj.core.api.Assertions.assertThat +import org.assertj.core.api.Assertions.assertThatThrownBy import org.jetbrains.exposed.sql.Database import org.junit.After import org.junit.Before diff --git a/samples/notary-demo/src/main/kotlin/net/corda/notarydemo/flows/DummyIssueAndMove.kt b/samples/notary-demo/src/main/kotlin/net/corda/notarydemo/flows/DummyIssueAndMove.kt index cb7bb6196c..bfd75f00d5 100644 --- a/samples/notary-demo/src/main/kotlin/net/corda/notarydemo/flows/DummyIssueAndMove.kt +++ b/samples/notary-demo/src/main/kotlin/net/corda/notarydemo/flows/DummyIssueAndMove.kt @@ -1,10 +1,10 @@ package net.corda.notarydemo.flows import co.paralleluniverse.fibers.Suspendable -import net.corda.core.contracts.DummyContract -import net.corda.core.identity.Party +import net.corda.core.contracts.testing.DummyContract import net.corda.core.flows.FlowLogic import net.corda.core.flows.StartableByRPC +import net.corda.core.identity.Party import net.corda.core.transactions.SignedTransaction import java.util.* diff --git a/test-utils/src/main/kotlin/net/corda/testing/TestDSL.kt b/test-utils/src/main/kotlin/net/corda/testing/TestDSL.kt index b132d6516f..a12f813779 100644 --- a/test-utils/src/main/kotlin/net/corda/testing/TestDSL.kt +++ b/test-utils/src/main/kotlin/net/corda/testing/TestDSL.kt @@ -2,13 +2,13 @@ package net.corda.testing import net.corda.core.contracts.* import net.corda.core.crypto.* +import net.corda.core.crypto.testing.NullSignature import net.corda.core.identity.Party import net.corda.core.node.ServiceHub import net.corda.core.serialization.serialize import net.corda.core.transactions.SignedTransaction import net.corda.core.transactions.TransactionBuilder import net.corda.core.transactions.WireTransaction -import net.corda.core.utilities.DUMMY_NOTARY_KEY import java.io.InputStream import java.security.KeyPair import java.security.PublicKey diff --git a/test-utils/src/main/kotlin/net/corda/testing/TransactionDSLInterpreter.kt b/test-utils/src/main/kotlin/net/corda/testing/TransactionDSLInterpreter.kt index b806e699de..4e8d63212a 100644 --- a/test-utils/src/main/kotlin/net/corda/testing/TransactionDSLInterpreter.kt +++ b/test-utils/src/main/kotlin/net/corda/testing/TransactionDSLInterpreter.kt @@ -1,6 +1,7 @@ package net.corda.testing import net.corda.core.contracts.* +import net.corda.core.contracts.testing.DummyContract import net.corda.core.crypto.SecureHash import net.corda.core.identity.Party import net.corda.core.seconds diff --git a/tools/loadtest/src/main/kotlin/net/corda/loadtest/tests/NotaryTest.kt b/tools/loadtest/src/main/kotlin/net/corda/loadtest/tests/NotaryTest.kt index 00c1773c6b..5638dc8e1b 100644 --- a/tools/loadtest/src/main/kotlin/net/corda/loadtest/tests/NotaryTest.kt +++ b/tools/loadtest/src/main/kotlin/net/corda/loadtest/tests/NotaryTest.kt @@ -6,7 +6,7 @@ import net.corda.client.mock.pickOne import net.corda.client.mock.replicate import net.corda.contracts.asset.DUMMY_CASH_ISSUER import net.corda.contracts.asset.DUMMY_CASH_ISSUER_KEY -import net.corda.core.contracts.DummyContract +import net.corda.core.contracts.testing.DummyContract import net.corda.core.flows.FlowException import net.corda.core.messaging.startFlow import net.corda.core.success diff --git a/verifier/src/integration-test/kotlin/net/corda/verifier/GeneratedLedger.kt b/verifier/src/integration-test/kotlin/net/corda/verifier/GeneratedLedger.kt index 78a84a497d..8962c5d230 100644 --- a/verifier/src/integration-test/kotlin/net/corda/verifier/GeneratedLedger.kt +++ b/verifier/src/integration-test/kotlin/net/corda/verifier/GeneratedLedger.kt @@ -2,7 +2,11 @@ package net.corda.verifier import net.corda.client.mock.* import net.corda.core.contracts.* -import net.corda.core.crypto.* +import net.corda.core.contracts.testing.DummyContract +import net.corda.core.crypto.SecureHash +import net.corda.core.crypto.X509Utilities +import net.corda.core.crypto.entropyToKeyPair +import net.corda.core.crypto.sha256 import net.corda.core.identity.AbstractParty import net.corda.core.identity.AnonymousParty import net.corda.core.identity.Party