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 {
private OpaqueBytes defaultRef = new OpaqueBytes(new byte[]{1});;
private PartyAndReference defaultIssuer = MEGA_CORP.ref(defaultRef);
private Cash.State inState = new Cash.State(issuedBy(DOLLARS(1000), defaultIssuer), DUMMY_PUBKEY_1);
private Cash.State outState = new Cash.State(inState.getAmount(), DUMMY_PUBKEY_2);;
private PartyAndReference defaultIssuer = getMEGA_CORP().ref(defaultRef);
private Cash.State inState = new Cash.State(issuedBy(DOLLARS(1000), defaultIssuer), getDUMMY_PUBKEY_1());
private Cash.State outState = new Cash.State(inState.getAmount(), getDUMMY_PUBKEY_2());
@Test
public void trivial() {
@ -26,7 +26,7 @@ public class CashTestsJava {
tx.failsRequirement("the amounts balance");
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");
});
@ -37,20 +37,20 @@ public class CashTestsJava {
});
tx.tweak(tw -> {
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");
});
tx.tweak(tw -> {
tw.output(outState);
tw.output(issuedBy(outState, MINI_CORP));
tw.arg(DUMMY_PUBKEY_1, new Cash.Commands.Move());
tw.output(issuedBy(outState, getMINI_CORP()));
tw.arg(getDUMMY_PUBKEY_1(), new Cash.Commands.Move());
return tw.failsRequirement("at least one asset input");
});
// Simple reallocation works.
return tx.tweak(tw -> {
tw.output(outState);
tw.arg(DUMMY_PUBKEY_1, new Cash.Commands.Move());
tw.arg(getDUMMY_PUBKEY_1(), new Cash.Commands.Move());
return tw.accepts();
});
});

View File

@ -21,9 +21,9 @@ fun currency(code: String) = Currency.getInstance(code)
// Java interop
object JavaTestHelpers {
@JvmField val USD = currency("USD")
@JvmField val GBP = currency("GBP")
@JvmField val CHF = currency("CHF")
@JvmStatic val USD: Currency get() = currency("USD")
@JvmStatic val GBP: Currency get() = currency("GBP")
@JvmStatic val CHF: Currency get() = currency("CHF")
@JvmStatic fun DOLLARS(amount: Int) = Amount(amount.toLong() * 100, 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.r3corda.core.contracts.*
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.MockStorageService
import com.r3corda.core.seconds
@ -55,38 +56,38 @@ object TestUtils {
*/
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")
@JvmStatic val TEST_TX_TIME: Instant get() = Instant.parse("2015-04-17T12:00:00.00Z")
// A few dummy values for testing.
@JvmField val MEGA_CORP_KEY = TestUtils.keypair
@JvmField val MEGA_CORP_PUBKEY = MEGA_CORP_KEY.public
@JvmStatic val MEGA_CORP_KEY: KeyPair get() = TestUtils.keypair
@JvmStatic val MEGA_CORP_PUBKEY: PublicKey get() = MEGA_CORP_KEY.public
@JvmField val MINI_CORP_KEY = TestUtils.keypair2
@JvmField val MINI_CORP_PUBKEY = MINI_CORP_KEY.public
@JvmStatic val MINI_CORP_KEY: KeyPair get() = TestUtils.keypair2
@JvmStatic val MINI_CORP_PUBKEY: PublicKey get() = MINI_CORP_KEY.public
@JvmField val ORACLE_KEY = TestUtils.keypair3
@JvmField val ORACLE_PUBKEY = ORACLE_KEY.public
@JvmStatic val ORACLE_KEY: KeyPair get() = TestUtils.keypair3
@JvmStatic val ORACLE_PUBKEY: PublicKey get() = ORACLE_KEY.public
@JvmField val DUMMY_PUBKEY_1 = DummyPublicKey("x1")
@JvmField val DUMMY_PUBKEY_2 = DummyPublicKey("x2")
@JvmStatic val DUMMY_PUBKEY_1: PublicKey get() = DummyPublicKey("x1")
@JvmStatic val DUMMY_PUBKEY_2: PublicKey get() = DummyPublicKey("x2")
@JvmField val ALICE_KEY = generateKeyPair()
@JvmField val ALICE_PUBKEY = ALICE_KEY.public
@JvmField val ALICE = Party("Alice", ALICE_PUBKEY)
@JvmStatic val ALICE_KEY: KeyPair get() = generateKeyPair()
@JvmStatic val ALICE_PUBKEY: PublicKey get() = ALICE_KEY.public
@JvmStatic val ALICE: Party get() = Party("Alice", ALICE_PUBKEY)
@JvmField val BOB_KEY = generateKeyPair()
@JvmField val BOB_PUBKEY = BOB_KEY.public
@JvmField val BOB = Party("Bob", BOB_PUBKEY)
@JvmStatic val BOB_KEY: KeyPair get() = generateKeyPair()
@JvmStatic val BOB_PUBKEY: PublicKey get() = BOB_KEY.public
@JvmStatic val BOB: Party get() = Party("Bob", BOB_PUBKEY)
@JvmField val MEGA_CORP = Party("MegaCorp", MEGA_CORP_PUBKEY)
@JvmField val MINI_CORP = Party("MiniCorp", MINI_CORP_PUBKEY)
@JvmStatic val MEGA_CORP: Party get() = Party("MegaCorp", MEGA_CORP_PUBKEY)
@JvmStatic val MINI_CORP: Party get() = Party("MiniCorp", MINI_CORP_PUBKEY)
@JvmField val DUMMY_NOTARY_KEY = generateKeyPair()
@JvmField val DUMMY_NOTARY = Party("Notary Service", DUMMY_NOTARY_KEY.public)
@JvmStatic val DUMMY_NOTARY_KEY: KeyPair get() = generateKeyPair()
@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)