contracts, core: Fix static init cycle issue of JavaTestHelpers

This commit is contained in:
Andras Slemmer 2016-06-24 16:36:35 +01:00
parent 341adafd3a
commit bc326660a3
3 changed files with 33 additions and 32 deletions

View File

@ -14,9 +14,9 @@ import static com.r3corda.contracts.testing.JavaTestHelpers.*;
public class CashTestsJava { public class CashTestsJava {
private OpaqueBytes defaultRef = new OpaqueBytes(new byte[]{1});; private OpaqueBytes defaultRef = new OpaqueBytes(new byte[]{1});;
private PartyAndReference defaultIssuer = MEGA_CORP.ref(defaultRef); private PartyAndReference defaultIssuer = getMEGA_CORP().ref(defaultRef);
private Cash.State inState = new Cash.State(issuedBy(DOLLARS(1000), defaultIssuer), DUMMY_PUBKEY_1); private Cash.State inState = new Cash.State(issuedBy(DOLLARS(1000), defaultIssuer), getDUMMY_PUBKEY_1());
private Cash.State outState = new Cash.State(inState.getAmount(), DUMMY_PUBKEY_2);; private Cash.State outState = new Cash.State(inState.getAmount(), getDUMMY_PUBKEY_2());
@Test @Test
public void trivial() { public void trivial() {
@ -26,7 +26,7 @@ public class CashTestsJava {
tx.failsRequirement("the amounts balance"); tx.failsRequirement("the amounts balance");
tx.tweak(tw -> { tx.tweak(tw -> {
tw.output(new Cash.State(issuedBy(DOLLARS(2000), defaultIssuer), DUMMY_PUBKEY_2)); tw.output(new Cash.State(issuedBy(DOLLARS(2000), defaultIssuer), getDUMMY_PUBKEY_2()));
return tw.failsRequirement("the amounts balance"); return tw.failsRequirement("the amounts balance");
}); });
@ -37,20 +37,20 @@ public class CashTestsJava {
}); });
tx.tweak(tw -> { tx.tweak(tw -> {
tw.output(outState); tw.output(outState);
tw.arg(DUMMY_PUBKEY_2, new Cash.Commands.Move()); tw.arg(getDUMMY_PUBKEY_2(), new Cash.Commands.Move());
return tw.failsRequirement("the owning keys are the same as the signing keys"); return tw.failsRequirement("the owning keys are the same as the signing keys");
}); });
tx.tweak(tw -> { tx.tweak(tw -> {
tw.output(outState); tw.output(outState);
tw.output(issuedBy(outState, MINI_CORP)); tw.output(issuedBy(outState, getMINI_CORP()));
tw.arg(DUMMY_PUBKEY_1, new Cash.Commands.Move()); tw.arg(getDUMMY_PUBKEY_1(), new Cash.Commands.Move());
return tw.failsRequirement("at least one asset input"); return tw.failsRequirement("at least one asset input");
}); });
// Simple reallocation works. // Simple reallocation works.
return tx.tweak(tw -> { return tx.tweak(tw -> {
tw.output(outState); tw.output(outState);
tw.arg(DUMMY_PUBKEY_1, new Cash.Commands.Move()); tw.arg(getDUMMY_PUBKEY_1(), new Cash.Commands.Move());
return tw.accepts(); return tw.accepts();
}); });
}); });

View File

@ -21,9 +21,9 @@ fun currency(code: String) = Currency.getInstance(code)
// Java interop // Java interop
object JavaTestHelpers { object JavaTestHelpers {
@JvmField val USD = currency("USD") @JvmStatic val USD: Currency get() = currency("USD")
@JvmField val GBP = currency("GBP") @JvmStatic val GBP: Currency get() = currency("GBP")
@JvmField val CHF = currency("CHF") @JvmStatic val CHF: Currency get() = currency("CHF")
@JvmStatic fun DOLLARS(amount: Int) = Amount(amount.toLong() * 100, USD) @JvmStatic fun DOLLARS(amount: Int) = Amount(amount.toLong() * 100, USD)
@JvmStatic fun DOLLARS(amount: Double) = Amount((amount * 100).toLong(), USD) @JvmStatic fun DOLLARS(amount: Double) = Amount((amount * 100).toLong(), USD)

View File

@ -6,6 +6,7 @@ import com.google.common.base.Throwables
import com.google.common.net.HostAndPort import com.google.common.net.HostAndPort
import com.r3corda.core.contracts.* import com.r3corda.core.contracts.*
import com.r3corda.core.crypto.* import com.r3corda.core.crypto.*
import com.r3corda.core.node.services.IdentityService
import com.r3corda.core.node.services.testing.MockIdentityService import com.r3corda.core.node.services.testing.MockIdentityService
import com.r3corda.core.node.services.testing.MockStorageService import com.r3corda.core.node.services.testing.MockStorageService
import com.r3corda.core.seconds import com.r3corda.core.seconds
@ -55,38 +56,38 @@ object TestUtils {
*/ */
object JavaTestHelpers { object JavaTestHelpers {
// A dummy time at which we will be pretending test transactions are created. // 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") @JvmStatic val TEST_TX_TIME: Instant get() = Instant.parse("2015-04-17T12:00:00.00Z")
// A few dummy values for testing. // A few dummy values for testing.
@JvmField val MEGA_CORP_KEY = TestUtils.keypair @JvmStatic val MEGA_CORP_KEY: KeyPair get() = TestUtils.keypair
@JvmField val MEGA_CORP_PUBKEY = MEGA_CORP_KEY.public @JvmStatic val MEGA_CORP_PUBKEY: PublicKey get() = MEGA_CORP_KEY.public
@JvmField val MINI_CORP_KEY = TestUtils.keypair2 @JvmStatic val MINI_CORP_KEY: KeyPair get() = TestUtils.keypair2
@JvmField val MINI_CORP_PUBKEY = MINI_CORP_KEY.public @JvmStatic val MINI_CORP_PUBKEY: PublicKey get() = MINI_CORP_KEY.public
@JvmField val ORACLE_KEY = TestUtils.keypair3 @JvmStatic val ORACLE_KEY: KeyPair get() = TestUtils.keypair3
@JvmField val ORACLE_PUBKEY = ORACLE_KEY.public @JvmStatic val ORACLE_PUBKEY: PublicKey get() = ORACLE_KEY.public
@JvmField val DUMMY_PUBKEY_1 = DummyPublicKey("x1") @JvmStatic val DUMMY_PUBKEY_1: PublicKey get() = DummyPublicKey("x1")
@JvmField val DUMMY_PUBKEY_2 = DummyPublicKey("x2") @JvmStatic val DUMMY_PUBKEY_2: PublicKey get() = DummyPublicKey("x2")
@JvmField val ALICE_KEY = generateKeyPair() @JvmStatic val ALICE_KEY: KeyPair get() = generateKeyPair()
@JvmField val ALICE_PUBKEY = ALICE_KEY.public @JvmStatic val ALICE_PUBKEY: PublicKey get() = ALICE_KEY.public
@JvmField val ALICE = Party("Alice", ALICE_PUBKEY) @JvmStatic val ALICE: Party get() = Party("Alice", ALICE_PUBKEY)
@JvmField val BOB_KEY = generateKeyPair() @JvmStatic val BOB_KEY: KeyPair get() = generateKeyPair()
@JvmField val BOB_PUBKEY = BOB_KEY.public @JvmStatic val BOB_PUBKEY: PublicKey get() = BOB_KEY.public
@JvmField val BOB = Party("Bob", BOB_PUBKEY) @JvmStatic val BOB: Party get() = Party("Bob", BOB_PUBKEY)
@JvmField val MEGA_CORP = Party("MegaCorp", MEGA_CORP_PUBKEY) @JvmStatic val MEGA_CORP: Party get() = Party("MegaCorp", MEGA_CORP_PUBKEY)
@JvmField val MINI_CORP = Party("MiniCorp", MINI_CORP_PUBKEY) @JvmStatic val MINI_CORP: Party get() = Party("MiniCorp", MINI_CORP_PUBKEY)
@JvmField val DUMMY_NOTARY_KEY = generateKeyPair() @JvmStatic val DUMMY_NOTARY_KEY: KeyPair get() = generateKeyPair()
@JvmField val DUMMY_NOTARY = Party("Notary Service", DUMMY_NOTARY_KEY.public) @JvmStatic val DUMMY_NOTARY: Party get() = Party("Notary Service", DUMMY_NOTARY_KEY.public)
@JvmField val ALL_TEST_KEYS = listOf(MEGA_CORP_KEY, MINI_CORP_KEY, ALICE_KEY, BOB_KEY, DUMMY_NOTARY_KEY) @JvmStatic val ALL_TEST_KEYS: List<KeyPair> get() = listOf(MEGA_CORP_KEY, MINI_CORP_KEY, ALICE_KEY, BOB_KEY, DUMMY_NOTARY_KEY)
@JvmField val MOCK_IDENTITY_SERVICE = MockIdentityService(listOf(MEGA_CORP, MINI_CORP, DUMMY_NOTARY)) @JvmStatic val MOCK_IDENTITY_SERVICE: IdentityService get() = MockIdentityService(listOf(MEGA_CORP, MINI_CORP, DUMMY_NOTARY))
@JvmStatic fun generateStateRef() = StateRef(SecureHash.randomSHA256(), 0) @JvmStatic fun generateStateRef() = StateRef(SecureHash.randomSHA256(), 0)