contracts, core: Rename Java to JavaTestHelpers

This commit is contained in:
Andras Slemmer 2016-06-24 16:35:43 +01:00
parent 040e51ec12
commit 341adafd3a
4 changed files with 51 additions and 50 deletions

View File

@ -49,7 +49,7 @@ fun generateState() = DummyContract.State(Random().nextInt())
// }
// For Java compatibility please define helper methods here and then define the infix notation
object Java {
object JavaTestHelpers {
@JvmStatic fun ownedBy(state: Cash.State, owner: PublicKey) = state.copy(owner = owner)
@JvmStatic fun issuedBy(state: Cash.State, party: Party) = state.copy(amount = Amount<Issued<Currency>>(state.amount.quantity, state.issuanceDef.copy(issuer = state.deposit.copy(party = party))))
@JvmStatic fun issuedBy(state: Cash.State, deposit: PartyAndReference) = state.copy(amount = Amount<Issued<Currency>>(state.amount.quantity, state.issuanceDef.copy(issuer = deposit)))
@ -69,21 +69,21 @@ object Java {
}
infix fun Cash.State.`owned by`(owner: PublicKey) = Java.ownedBy(this, owner)
infix fun Cash.State.`issued by`(party: Party) = Java.issuedBy(this, party)
infix fun Cash.State.`issued by`(deposit: PartyAndReference) = Java.issuedBy(this, deposit)
infix fun Cash.State.`with notary`(notary: Party) = Java.withNotary(this, notary)
infix fun Cash.State.`with deposit`(deposit: PartyAndReference): Cash.State = Java.withDeposit(this, deposit)
infix fun Cash.State.`owned by`(owner: PublicKey) = JavaTestHelpers.ownedBy(this, owner)
infix fun Cash.State.`issued by`(party: Party) = JavaTestHelpers.issuedBy(this, party)
infix fun Cash.State.`issued by`(deposit: PartyAndReference) = JavaTestHelpers.issuedBy(this, deposit)
infix fun Cash.State.`with notary`(notary: Party) = JavaTestHelpers.withNotary(this, notary)
infix fun Cash.State.`with deposit`(deposit: PartyAndReference): Cash.State = JavaTestHelpers.withDeposit(this, deposit)
infix fun CommercialPaper.State.`owned by`(owner: PublicKey) = Java.ownedBy(this, owner)
infix fun CommercialPaper.State.`with notary`(notary: Party) = Java.withNotary(this, notary)
infix fun ICommercialPaperState.`owned by`(new_owner: PublicKey) = Java.ownedBy(this, new_owner)
infix fun CommercialPaper.State.`owned by`(owner: PublicKey) = JavaTestHelpers.ownedBy(this, owner)
infix fun CommercialPaper.State.`with notary`(notary: Party) = JavaTestHelpers.withNotary(this, notary)
infix fun ICommercialPaperState.`owned by`(new_owner: PublicKey) = JavaTestHelpers.ownedBy(this, new_owner)
infix fun ContractState.`with notary`(notary: Party) = Java.withNotary(this, notary)
infix fun ContractState.`with notary`(notary: Party) = JavaTestHelpers.withNotary(this, notary)
val DUMMY_CASH_ISSUER_KEY = generateKeyPair()
val DUMMY_CASH_ISSUER = Party("Snake Oil Issuer", DUMMY_CASH_ISSUER_KEY.public).ref(1)
/** Allows you to write 100.DOLLARS.CASH */
val Amount<Currency>.CASH: Cash.State get() = Java.CASH(this)
val Amount<Issued<Currency>>.STATE: Cash.State get() = Java.STATE(this)
val Amount<Currency>.CASH: Cash.State get() = JavaTestHelpers.CASH(this)
val Amount<Issued<Currency>>.STATE: Cash.State get() = JavaTestHelpers.STATE(this)

View File

@ -4,9 +4,9 @@ import com.r3corda.core.contracts.PartyAndReference;
import com.r3corda.core.serialization.OpaqueBytes;
import org.junit.Test;
import static com.r3corda.core.testing.Java.*;
import static com.r3corda.core.contracts.Java.*;
import static com.r3corda.contracts.testing.Java.*;
import static com.r3corda.core.testing.JavaTestHelpers.*;
import static com.r3corda.core.contracts.JavaTestHelpers.*;
import static com.r3corda.contracts.testing.JavaTestHelpers.*;
/**
* This is an incomplete Java replica of CashTests.kt to show how to use the Java test DSL

View File

@ -20,7 +20,7 @@ import java.util.*
fun currency(code: String) = Currency.getInstance(code)
// Java interop
object Java {
object JavaTestHelpers {
@JvmField val USD = currency("USD")
@JvmField val GBP = currency("GBP")
@JvmField val CHF = currency("CHF")
@ -34,17 +34,17 @@ object Java {
@JvmStatic fun issuedBy(amount: Amount<Currency>, deposit: PartyAndReference) = Amount(amount.quantity, issuedBy(amount.token, deposit))
}
val USD = Java.USD
val GBP = Java.GBP
val CHF = Java.CHF
val USD = JavaTestHelpers.USD
val GBP = JavaTestHelpers.GBP
val CHF = JavaTestHelpers.CHF
val Int.DOLLARS: Amount<Currency> get() = Java.DOLLARS(this)
val Double.DOLLARS: Amount<Currency> get() = Java.DOLLARS(this)
val Int.POUNDS: Amount<Currency> get() = Java.POUNDS(this)
val Int.SWISS_FRANCS: Amount<Currency> get() = Java.SWISS_FRANCS(this)
val Int.DOLLARS: Amount<Currency> get() = JavaTestHelpers.DOLLARS(this)
val Double.DOLLARS: Amount<Currency> get() = JavaTestHelpers.DOLLARS(this)
val Int.POUNDS: Amount<Currency> get() = JavaTestHelpers.POUNDS(this)
val Int.SWISS_FRANCS: Amount<Currency> get() = JavaTestHelpers.SWISS_FRANCS(this)
infix fun Currency.`issued by`(deposit: PartyAndReference) = Java.issuedBy(this, deposit)
infix fun Amount<Currency>.`issued by`(deposit: PartyAndReference) = Java.issuedBy(this, deposit)
infix fun Currency.`issued by`(deposit: PartyAndReference) = JavaTestHelpers.issuedBy(this, deposit)
infix fun Amount<Currency>.`issued by`(deposit: PartyAndReference) = JavaTestHelpers.issuedBy(this, deposit)
//// Requirements /////////////////////////////////////////////////////////////////////////////////////////////////////

View File

@ -50,9 +50,10 @@ object TestUtils {
* - Infix functions work as regular ones from Java, but symbols with spaces in them don't! Define a camelCase variant
* as well.
* - varargs are exposed as array types in Java. Define overloads for common cases.
* - The Int.DOLLARS syntax doesn't work from Java. To remedy add a @JvmStatic DOLLARS(Int) function to [Java]
* - The Int.DOLLARS syntax doesn't work from Java. To remedy add a @JvmStatic DOLLARS(Int) function to
* [JavaTestHelpers]
*/
object Java {
object JavaTestHelpers {
// A dummy time at which we will be pretending test transactions are created.
@JvmField val TEST_TX_TIME = Instant.parse("2015-04-17T12:00:00.00Z")
@ -94,31 +95,31 @@ object Java {
}
}
val TEST_TX_TIME = Java.TEST_TX_TIME
val MEGA_CORP_KEY = Java.MEGA_CORP_KEY
val MEGA_CORP_PUBKEY = Java.MEGA_CORP_PUBKEY
val MINI_CORP_KEY = Java.MINI_CORP_KEY
val MINI_CORP_PUBKEY = Java.MINI_CORP_PUBKEY
val ORACLE_KEY = Java.ORACLE_KEY
val ORACLE_PUBKEY = Java.ORACLE_PUBKEY
val DUMMY_PUBKEY_1 = Java.DUMMY_PUBKEY_1
val DUMMY_PUBKEY_2 = Java.DUMMY_PUBKEY_2
val ALICE_KEY = Java.ALICE_KEY
val ALICE_PUBKEY = Java.ALICE_PUBKEY
val ALICE = Java.ALICE
val BOB_KEY = Java.BOB_KEY
val BOB_PUBKEY = Java.BOB_PUBKEY
val BOB = Java.BOB
val MEGA_CORP = Java.MEGA_CORP
val MINI_CORP = Java.MINI_CORP
val DUMMY_NOTARY_KEY = Java.DUMMY_NOTARY_KEY
val DUMMY_NOTARY = Java.DUMMY_NOTARY
val ALL_TEST_KEYS = Java.ALL_TEST_KEYS
val MOCK_IDENTITY_SERVICE = Java.MOCK_IDENTITY_SERVICE
val TEST_TX_TIME = JavaTestHelpers.TEST_TX_TIME
val MEGA_CORP_KEY = JavaTestHelpers.MEGA_CORP_KEY
val MEGA_CORP_PUBKEY = JavaTestHelpers.MEGA_CORP_PUBKEY
val MINI_CORP_KEY = JavaTestHelpers.MINI_CORP_KEY
val MINI_CORP_PUBKEY = JavaTestHelpers.MINI_CORP_PUBKEY
val ORACLE_KEY = JavaTestHelpers.ORACLE_KEY
val ORACLE_PUBKEY = JavaTestHelpers.ORACLE_PUBKEY
val DUMMY_PUBKEY_1 = JavaTestHelpers.DUMMY_PUBKEY_1
val DUMMY_PUBKEY_2 = JavaTestHelpers.DUMMY_PUBKEY_2
val ALICE_KEY = JavaTestHelpers.ALICE_KEY
val ALICE_PUBKEY = JavaTestHelpers.ALICE_PUBKEY
val ALICE = JavaTestHelpers.ALICE
val BOB_KEY = JavaTestHelpers.BOB_KEY
val BOB_PUBKEY = JavaTestHelpers.BOB_PUBKEY
val BOB = JavaTestHelpers.BOB
val MEGA_CORP = JavaTestHelpers.MEGA_CORP
val MINI_CORP = JavaTestHelpers.MINI_CORP
val DUMMY_NOTARY_KEY = JavaTestHelpers.DUMMY_NOTARY_KEY
val DUMMY_NOTARY = JavaTestHelpers.DUMMY_NOTARY
val ALL_TEST_KEYS = JavaTestHelpers.ALL_TEST_KEYS
val MOCK_IDENTITY_SERVICE = JavaTestHelpers.MOCK_IDENTITY_SERVICE
fun generateStateRef() = Java.generateStateRef()
fun generateStateRef() = JavaTestHelpers.generateStateRef()
fun transaction(body: TransactionForTest.() -> LastLineShouldTestForAcceptOrFailure) = Java.transaction(body)
fun transaction(body: TransactionForTest.() -> LastLineShouldTestForAcceptOrFailure) = JavaTestHelpers.transaction(body)
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//