mirror of
https://github.com/corda/corda.git
synced 2024-12-20 21:43:14 +00:00
Move MockNode/InMemoryNetwork to the main sourceset, as these are useful not only for unit testing, but also simulation tools.
This commit is contained in:
parent
621c88b93a
commit
b1694e2d0d
@ -107,9 +107,11 @@ dependencies {
|
|||||||
// Coda Hale's Metrics: for monitoring of key statistics
|
// Coda Hale's Metrics: for monitoring of key statistics
|
||||||
compile "io.dropwizard.metrics:metrics-core:3.1.2"
|
compile "io.dropwizard.metrics:metrics-core:3.1.2"
|
||||||
|
|
||||||
|
// JimFS: in memory java.nio filesystem. Used for test and simulation utilities.
|
||||||
|
compile 'com.google.jimfs:jimfs:1.1'
|
||||||
|
|
||||||
// Unit testing helpers.
|
// Unit testing helpers.
|
||||||
testCompile 'junit:junit:4.12'
|
testCompile 'junit:junit:4.12'
|
||||||
testCompile 'com.google.jimfs:jimfs:1.1' // in memory java.nio filesystem.
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// These lines tell Gradle to add a couple of JVM command line arguments to unit test and program runs, which set up
|
// These lines tell Gradle to add a couple of JVM command line arguments to unit test and program runs, which set up
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
* All other rights reserved.
|
* All other rights reserved.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package core.messaging
|
package core.testing
|
||||||
|
|
||||||
import com.google.common.util.concurrent.Futures
|
import com.google.common.util.concurrent.Futures
|
||||||
import com.google.common.util.concurrent.ListenableFuture
|
import com.google.common.util.concurrent.ListenableFuture
|
||||||
@ -14,6 +14,7 @@ import com.google.common.util.concurrent.MoreExecutors
|
|||||||
import core.node.services.DummyTimestampingAuthority
|
import core.node.services.DummyTimestampingAuthority
|
||||||
import core.ThreadBox
|
import core.ThreadBox
|
||||||
import core.crypto.sha256
|
import core.crypto.sha256
|
||||||
|
import core.messaging.*
|
||||||
import core.node.services.NodeTimestamperService
|
import core.node.services.NodeTimestamperService
|
||||||
import core.utilities.loggerFor
|
import core.utilities.loggerFor
|
||||||
import java.time.Instant
|
import java.time.Instant
|
@ -6,25 +6,16 @@
|
|||||||
* All other rights reserved.
|
* All other rights reserved.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
package core.testing
|
||||||
* Copyright 2015 Distributed Ledger Group LLC. Distributed as Licensed Company IP to DLG Group Members
|
|
||||||
* pursuant to the August 7, 2015 Advisory Services Agreement and subject to the Company IP License terms
|
|
||||||
* set forth therein.
|
|
||||||
*
|
|
||||||
* All other rights reserved.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package core.node
|
|
||||||
|
|
||||||
import com.google.common.jimfs.Configuration
|
|
||||||
import com.google.common.jimfs.Jimfs
|
import com.google.common.jimfs.Jimfs
|
||||||
import com.google.common.util.concurrent.MoreExecutors
|
import com.google.common.util.concurrent.MoreExecutors
|
||||||
import core.Party
|
import core.Party
|
||||||
import core.messaging.InMemoryMessagingNetwork
|
|
||||||
import core.messaging.LegallyIdentifiableNode
|
import core.messaging.LegallyIdentifiableNode
|
||||||
import core.messaging.MessagingService
|
import core.messaging.MessagingService
|
||||||
|
import core.node.AbstractNode
|
||||||
|
import core.node.NodeConfiguration
|
||||||
import core.node.services.FixedIdentityService
|
import core.node.services.FixedIdentityService
|
||||||
import core.testutils.TEST_KEYS_TO_CORP_MAP
|
|
||||||
import core.utilities.loggerFor
|
import core.utilities.loggerFor
|
||||||
import org.slf4j.Logger
|
import org.slf4j.Logger
|
||||||
import java.nio.file.Files
|
import java.nio.file.Files
|
||||||
@ -43,10 +34,10 @@ import java.util.concurrent.Executors
|
|||||||
*/
|
*/
|
||||||
class MockNetwork(private val threadPerNode: Boolean = false) {
|
class MockNetwork(private val threadPerNode: Boolean = false) {
|
||||||
private var counter = 0
|
private var counter = 0
|
||||||
val filesystem = Jimfs.newFileSystem(Configuration.unix())
|
val filesystem = Jimfs.newFileSystem(com.google.common.jimfs.Configuration.unix())
|
||||||
val messagingNetwork = InMemoryMessagingNetwork()
|
val messagingNetwork = InMemoryMessagingNetwork()
|
||||||
|
|
||||||
val identities = ArrayList<Party>(TEST_KEYS_TO_CORP_MAP.values)
|
val identities = ArrayList<Party>()
|
||||||
|
|
||||||
private val _nodes = ArrayList<MockNode>()
|
private val _nodes = ArrayList<MockNode>()
|
||||||
/** A read only view of the current set of executing nodes. */
|
/** A read only view of the current set of executing nodes. */
|
@ -13,7 +13,7 @@ import protocols.FetchDataProtocol
|
|||||||
import core.Attachment
|
import core.Attachment
|
||||||
import core.crypto.SecureHash
|
import core.crypto.SecureHash
|
||||||
import core.crypto.sha256
|
import core.crypto.sha256
|
||||||
import core.node.MockNetwork
|
import core.testing.MockNetwork
|
||||||
import core.node.services.NodeAttachmentService
|
import core.node.services.NodeAttachmentService
|
||||||
import core.serialization.OpaqueBytes
|
import core.serialization.OpaqueBytes
|
||||||
import core.testutils.rootCauseExceptions
|
import core.testutils.rootCauseExceptions
|
||||||
|
@ -11,6 +11,7 @@
|
|||||||
package core.messaging
|
package core.messaging
|
||||||
|
|
||||||
import core.serialization.deserialize
|
import core.serialization.deserialize
|
||||||
|
import core.testing.InMemoryMessagingNetwork
|
||||||
import org.junit.After
|
import org.junit.After
|
||||||
import org.junit.Before
|
import org.junit.Before
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
|
@ -12,16 +12,15 @@ import contracts.Cash
|
|||||||
import contracts.CommercialPaper
|
import contracts.CommercialPaper
|
||||||
import core.*
|
import core.*
|
||||||
import core.crypto.SecureHash
|
import core.crypto.SecureHash
|
||||||
import core.node.MockNetwork
|
|
||||||
import core.node.services.*
|
import core.node.services.*
|
||||||
import core.node.services.StorageServiceImpl
|
import core.testing.InMemoryMessagingNetwork
|
||||||
|
import core.testing.MockNetwork
|
||||||
import core.testutils.*
|
import core.testutils.*
|
||||||
import core.utilities.BriefLogFormatter
|
import core.utilities.BriefLogFormatter
|
||||||
import core.utilities.RecordingMap
|
import core.utilities.RecordingMap
|
||||||
import org.junit.After
|
import org.junit.After
|
||||||
import org.junit.Before
|
import org.junit.Before
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.slf4j.LoggerFactory
|
|
||||||
import protocols.TwoPartyTradeProtocol
|
import protocols.TwoPartyTradeProtocol
|
||||||
import java.io.ByteArrayInputStream
|
import java.io.ByteArrayInputStream
|
||||||
import java.io.ByteArrayOutputStream
|
import java.io.ByteArrayOutputStream
|
||||||
@ -36,8 +35,6 @@ import kotlin.test.assertEquals
|
|||||||
import kotlin.test.assertFailsWith
|
import kotlin.test.assertFailsWith
|
||||||
import kotlin.test.assertTrue
|
import kotlin.test.assertTrue
|
||||||
|
|
||||||
// TODO: Refactor this test to use the MockNode class, which will clean this file up significantly.
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* In this example, Alice wishes to sell her commercial paper to Bob in return for $1,000,000 and they wish to do
|
* In this example, Alice wishes to sell her commercial paper to Bob in return for $1,000,000 and they wish to do
|
||||||
* it on the ledger atomically. Therefore they must work together to build a transaction.
|
* it on the ledger atomically. Therefore they must work together to build a transaction.
|
||||||
@ -50,6 +47,7 @@ class TwoPartyTradeProtocolTests : TestWithInMemoryNetwork() {
|
|||||||
@Before
|
@Before
|
||||||
fun before() {
|
fun before() {
|
||||||
net = MockNetwork(false)
|
net = MockNetwork(false)
|
||||||
|
net.identities += TEST_KEYS_TO_CORP_MAP.values
|
||||||
BriefLogFormatter.loggingOn("platform.trade", "core.TransactionGroup", "recordingmap")
|
BriefLogFormatter.loggingOn("platform.trade", "core.TransactionGroup", "recordingmap")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -17,6 +17,7 @@ import core.node.services.ServiceHub
|
|||||||
import core.node.services.TimestampingError
|
import core.node.services.TimestampingError
|
||||||
import core.protocols.ProtocolLogic
|
import core.protocols.ProtocolLogic
|
||||||
import core.serialization.serialize
|
import core.serialization.serialize
|
||||||
|
import core.testing.InMemoryMessagingNetwork
|
||||||
import core.testutils.ALICE
|
import core.testutils.ALICE
|
||||||
import core.testutils.ALICE_KEY
|
import core.testutils.ALICE_KEY
|
||||||
import core.testutils.CASH
|
import core.testutils.CASH
|
||||||
|
@ -10,7 +10,7 @@ package core.node.services
|
|||||||
|
|
||||||
import contracts.Cash
|
import contracts.Cash
|
||||||
import core.*
|
import core.*
|
||||||
import core.node.MockNetwork
|
import core.testing.MockNetwork
|
||||||
import core.testutils.*
|
import core.testutils.*
|
||||||
import core.utilities.BriefLogFormatter
|
import core.utilities.BriefLogFormatter
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
|
Loading…
Reference in New Issue
Block a user