From b52d3706ebbc615ecd85504ed63effeff2d20f71 Mon Sep 17 00:00:00 2001 From: Shams Asari Date: Wed, 14 Jun 2017 14:26:06 +0100 Subject: [PATCH] Moved Driver.kt to net.corda.testing.driver in the test-utils module --- .idea/compiler.xml | 1 + .../corda/client/jfx/NodeMonitorModelTest.kt | 44 ++++----- .../net/corda/client/rpc/RPCStabilityTests.kt | 2 +- .../corda/client/rpc/RPCPerformanceTests.kt | 5 +- docs/source/changelog.rst | 2 + docs/source/example-code/build.gradle | 3 +- .../corda/docs/IntegrationTestingTutorial.kt | 2 +- .../net/corda/docs/ClientRpcTutorial.kt | 2 +- node/build.gradle | 1 + .../kotlin/net/corda/node/BootTests.kt | 2 +- .../corda/node/CordappScanningDriverTest.kt | 54 ++++++++++ .../corda/node/NodeStartupPerformanceTests.kt | 4 +- .../node/services/DistributedServiceTests.kt | 4 +- .../node/CordappScanningNodeProcessTest.kt | 52 ++++++++++ .../net/corda/node/CordappScanningTest.kt | 99 ------------------- .../attachmentdemo/AttachmentDemoTest.kt | 2 +- .../corda/attachmentdemo/AttachmentDemo.kt | 4 +- .../kotlin/net/corda/attachmentdemo/Main.kt | 2 +- .../net/corda/bank/BankOfCordaHttpAPITest.kt | 2 +- .../corda/bank/BankOfCordaRPCClientTest.kt | 2 +- .../net/corda/bank/BankOfCordaDriver.kt | 2 +- .../kotlin/net/corda/irs/IRSDemoTest.kt | 2 +- .../src/main/kotlin/net/corda/irs/Main.kt | 2 +- .../kotlin/net/corda/demorun/DemoRunner.kt | 6 +- .../corda/notarydemo/RaftNotaryCordform.kt | 0 samples/simm-valuation-demo/build.gradle | 3 +- .../net/corda/vega/SimmValuationTest.kt | 2 +- .../src/main/kotlin/net/corda/vega/Main.kt | 2 +- .../net/corda/traderdemo/TraderDemoTest.kt | 2 +- .../main/kotlin/net/corda/traderdemo/Main.kt | 2 +- test-utils/build.gradle | 25 +++++ .../net/corda/testing}/driver/DriverTests.kt | 2 +- .../kotlin/net/corda/testing/RPCDriver.kt | 2 +- .../net/corda/testing}/driver/Driver.kt | 3 +- .../driver/NetworkMapStartStrategy.kt | 2 +- .../net/corda/testing/node/DriverBasedTest.kt | 2 +- .../net/corda/testing/node/NodeBasedTest.kt | 2 +- tools/explorer/build.gradle | 2 +- .../main/kotlin/net/corda/explorer/Main.kt | 4 +- tools/loadtest/build.gradle | 2 +- .../net/corda/loadtest/ConnectionManager.kt | 2 +- .../kotlin/net/corda/loadtest/LoadTest.kt | 2 +- .../net/corda/verifier/VerifierDriver.kt | 2 +- .../net/corda/verifier/VerifierTests.kt | 2 +- webserver/build.gradle | 2 +- .../corda/webserver/WebserverDriverTests.kt | 11 ++- 46 files changed, 207 insertions(+), 172 deletions(-) create mode 100644 node/src/integration-test/kotlin/net/corda/node/CordappScanningDriverTest.kt create mode 100644 node/src/smoke-test/kotlin/net/corda/node/CordappScanningNodeProcessTest.kt delete mode 100644 node/src/smoke-test/kotlin/net/corda/node/CordappScanningTest.kt delete mode 100644 samples/raft-notary-demo/src/main/kotlin/net/corda/notarydemo/RaftNotaryCordform.kt rename {node/src/integration-test/kotlin/net/corda/node => test-utils/src/integration-test/kotlin/net/corda/testing}/driver/DriverTests.kt (98%) rename {node/src/main/kotlin/net/corda/node => test-utils/src/main/kotlin/net/corda/testing}/driver/Driver.kt (99%) rename {node/src/main/kotlin/net/corda/node => test-utils/src/main/kotlin/net/corda/testing}/driver/NetworkMapStartStrategy.kt (95%) diff --git a/.idea/compiler.xml b/.idea/compiler.xml index 85a974b2fe..f89d9257e9 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -79,6 +79,7 @@ + diff --git a/client/jfx/src/integration-test/kotlin/net/corda/client/jfx/NodeMonitorModelTest.kt b/client/jfx/src/integration-test/kotlin/net/corda/client/jfx/NodeMonitorModelTest.kt index 5f22eadbd4..678f4b3a50 100644 --- a/client/jfx/src/integration-test/kotlin/net/corda/client/jfx/NodeMonitorModelTest.kt +++ b/client/jfx/src/integration-test/kotlin/net/corda/client/jfx/NodeMonitorModelTest.kt @@ -28,11 +28,11 @@ import net.corda.core.utilities.DUMMY_NOTARY import net.corda.flows.CashExitFlow import net.corda.flows.CashIssueFlow import net.corda.flows.CashPaymentFlow -import net.corda.node.driver.driver import net.corda.node.services.network.NetworkMapService import net.corda.node.services.startFlowPermission import net.corda.node.services.transactions.SimpleNotaryService import net.corda.nodeapi.User +import net.corda.testing.driver.driver import net.corda.testing.expect import net.corda.testing.expectEvents import net.corda.testing.node.DriverBasedTest @@ -123,14 +123,14 @@ class NodeMonitorModelTest : DriverBasedTest() { vaultUpdates.expectEvents(isStrict = false) { sequence( // SNAPSHOT - expect { output: Vault.Update -> - require(output.consumed.isEmpty()) { output.consumed.size } - require(output.produced.isEmpty()) { output.produced.size } + expect { (consumed, produced) -> + require(consumed.isEmpty()) { consumed.size } + require(produced.isEmpty()) { produced.size } }, // ISSUE - expect { output: Vault.Update -> - require(output.consumed.isEmpty()) { output.consumed.size } - require(output.produced.size == 1) { output.produced.size } + expect { (consumed, produced) -> + require(consumed.isEmpty()) { consumed.size } + require(produced.size == 1) { produced.size } } ) } @@ -207,19 +207,19 @@ class NodeMonitorModelTest : DriverBasedTest() { vaultUpdates.expectEvents { sequence( // SNAPSHOT - expect { output: Vault.Update -> - require(output.consumed.isEmpty()) { output.consumed.size } - require(output.produced.isEmpty()) { output.produced.size } + expect { (consumed, produced) -> + require(consumed.isEmpty()) { consumed.size } + require(produced.isEmpty()) { produced.size } }, // ISSUE - expect { update -> - require(update.consumed.isEmpty()) { update.consumed.size } - require(update.produced.size == 1) { update.produced.size } + expect { (consumed, produced) -> + require(consumed.isEmpty()) { consumed.size } + require(produced.size == 1) { produced.size } }, // MOVE - expect { update -> - require(update.consumed.size == 1) { update.consumed.size } - require(update.produced.isEmpty()) { update.produced.size } + expect { (consumed, produced) -> + require(consumed.size == 1) { consumed.size } + require(produced.isEmpty()) { produced.size } } ) } @@ -227,14 +227,14 @@ class NodeMonitorModelTest : DriverBasedTest() { stateMachineTransactionMapping.expectEvents { sequence( // ISSUE - expect { mapping -> - require(mapping.stateMachineRunId == issueSmId) - require(mapping.transactionId == issueTx!!.id) + expect { (stateMachineRunId, transactionId) -> + require(stateMachineRunId == issueSmId) + require(transactionId == issueTx!!.id) }, // MOVE - expect { mapping -> - require(mapping.stateMachineRunId == moveSmId) - require(mapping.transactionId == moveTx!!.id) + expect { (stateMachineRunId, transactionId) -> + require(stateMachineRunId == moveSmId) + require(transactionId == moveTx!!.id) } ) } diff --git a/client/rpc/src/integration-test/kotlin/net/corda/client/rpc/RPCStabilityTests.kt b/client/rpc/src/integration-test/kotlin/net/corda/client/rpc/RPCStabilityTests.kt index 84eaae1c86..83d5965028 100644 --- a/client/rpc/src/integration-test/kotlin/net/corda/client/rpc/RPCStabilityTests.kt +++ b/client/rpc/src/integration-test/kotlin/net/corda/client/rpc/RPCStabilityTests.kt @@ -12,7 +12,7 @@ import net.corda.client.rpc.internal.RPCClient import net.corda.client.rpc.internal.RPCClientConfiguration import net.corda.core.* import net.corda.core.messaging.RPCOps -import net.corda.node.driver.poll +import net.corda.testing.driver.poll import net.corda.node.services.messaging.RPCServerConfiguration import net.corda.nodeapi.RPCApi import net.corda.nodeapi.RPCKryo diff --git a/client/rpc/src/test/kotlin/net/corda/client/rpc/RPCPerformanceTests.kt b/client/rpc/src/test/kotlin/net/corda/client/rpc/RPCPerformanceTests.kt index 8d1fdcb65b..8366391462 100644 --- a/client/rpc/src/test/kotlin/net/corda/client/rpc/RPCPerformanceTests.kt +++ b/client/rpc/src/test/kotlin/net/corda/client/rpc/RPCPerformanceTests.kt @@ -11,9 +11,9 @@ import net.corda.core.minutes import net.corda.core.seconds import net.corda.core.utilities.Rate import net.corda.core.utilities.div -import net.corda.node.driver.ShutdownManager import net.corda.node.services.messaging.RPCServerConfiguration import net.corda.testing.RPCDriverExposedDSLInterface +import net.corda.testing.driver.ShutdownManager import net.corda.testing.measure import net.corda.testing.rpcDriver import org.junit.Ignore @@ -83,12 +83,13 @@ class RPCPerformanceTests : AbstractRPCTest() { val averageIndividualMs: Double, val Mbps: Double ) + @Test fun `measure Megabytes per second for simple RPCs`() { warmup() val inputOutputSizes = listOf(1024, 4096, 100 * 1024) val overallTraffic = 512 * 1024 * 1024L - measure(inputOutputSizes, (1..5)) { inputOutputSize, N -> + measure(inputOutputSizes, (1..5)) { inputOutputSize, _ -> rpcDriver { val proxy = testProxy( RPCClientConfiguration.default.copy( diff --git a/docs/source/changelog.rst b/docs/source/changelog.rst index a7afd59e23..9a5ef0fce9 100644 --- a/docs/source/changelog.rst +++ b/docs/source/changelog.rst @@ -10,6 +10,8 @@ UNRELEASED * A new RPC has been added to support fuzzy matching of X.500 names, for instance, to translate from user input to an unambiguous identity by searching the network map. +* The node driver has moved to net.corda.testing.driver in the test-utils module + Milestone 12 ------------ diff --git a/docs/source/example-code/build.gradle b/docs/source/example-code/build.gradle index 579c4e5193..ed5c41ba90 100644 --- a/docs/source/example-code/build.gradle +++ b/docs/source/example-code/build.gradle @@ -35,8 +35,7 @@ compileTestJava.dependsOn tasks.getByPath(':node:capsule:buildCordaJAR') dependencies { compile project(':core') compile project(':client:jfx') - compile project(':node') - testCompile project(':test-utils') + compile project(':test-utils') testCompile project(':verifier') compile "org.graphstream:gs-core:1.3" diff --git a/docs/source/example-code/src/integration-test/kotlin/net/corda/docs/IntegrationTestingTutorial.kt b/docs/source/example-code/src/integration-test/kotlin/net/corda/docs/IntegrationTestingTutorial.kt index c6c8afb8f8..af5ff519cd 100644 --- a/docs/source/example-code/src/integration-test/kotlin/net/corda/docs/IntegrationTestingTutorial.kt +++ b/docs/source/example-code/src/integration-test/kotlin/net/corda/docs/IntegrationTestingTutorial.kt @@ -14,7 +14,7 @@ import net.corda.core.utilities.BOB import net.corda.core.utilities.DUMMY_NOTARY import net.corda.flows.CashIssueFlow import net.corda.flows.CashPaymentFlow -import net.corda.node.driver.driver +import net.corda.testing.driver.driver import net.corda.node.services.startFlowPermission import net.corda.node.services.transactions.ValidatingNotaryService import net.corda.nodeapi.User diff --git a/docs/source/example-code/src/main/kotlin/net/corda/docs/ClientRpcTutorial.kt b/docs/source/example-code/src/main/kotlin/net/corda/docs/ClientRpcTutorial.kt index b232f9fd6e..dd870c27d0 100644 --- a/docs/source/example-code/src/main/kotlin/net/corda/docs/ClientRpcTutorial.kt +++ b/docs/source/example-code/src/main/kotlin/net/corda/docs/ClientRpcTutorial.kt @@ -17,10 +17,10 @@ import net.corda.core.utilities.DUMMY_NOTARY import net.corda.flows.CashExitFlow import net.corda.flows.CashIssueFlow import net.corda.flows.CashPaymentFlow -import net.corda.node.driver.driver import net.corda.node.services.startFlowPermission import net.corda.node.services.transactions.ValidatingNotaryService import net.corda.nodeapi.User +import net.corda.testing.driver.driver import org.graphstream.graph.Edge import org.graphstream.graph.Node import org.graphstream.graph.implementations.MultiGraph diff --git a/node/build.gradle b/node/build.gradle index 0f26faf62c..d53d3c908c 100644 --- a/node/build.gradle +++ b/node/build.gradle @@ -183,6 +183,7 @@ dependencies { // Integration test helpers integrationTestCompile "junit:junit:$junit_version" + integrationTestCompile "org.assertj:assertj-core:${assertj_version}" // Smoke tests do NOT have any Node code on the classpath! smokeTestCompile project(':smoke-test-utils') diff --git a/node/src/integration-test/kotlin/net/corda/node/BootTests.kt b/node/src/integration-test/kotlin/net/corda/node/BootTests.kt index 30f1cf38a5..59c3b688ba 100644 --- a/node/src/integration-test/kotlin/net/corda/node/BootTests.kt +++ b/node/src/integration-test/kotlin/net/corda/node/BootTests.kt @@ -7,7 +7,7 @@ import net.corda.core.flows.StartableByRPC import net.corda.core.getOrThrow import net.corda.core.messaging.startFlow import net.corda.core.utilities.ALICE -import net.corda.node.driver.driver +import net.corda.testing.driver.driver import net.corda.node.services.startFlowPermission import net.corda.nodeapi.User import org.assertj.core.api.Assertions.assertThat diff --git a/node/src/integration-test/kotlin/net/corda/node/CordappScanningDriverTest.kt b/node/src/integration-test/kotlin/net/corda/node/CordappScanningDriverTest.kt new file mode 100644 index 0000000000..1e933ddaf5 --- /dev/null +++ b/node/src/integration-test/kotlin/net/corda/node/CordappScanningDriverTest.kt @@ -0,0 +1,54 @@ +package net.corda.node + +import co.paralleluniverse.fibers.Suspendable +import com.google.common.util.concurrent.Futures +import net.corda.core.flows.FlowLogic +import net.corda.core.flows.InitiatedBy +import net.corda.core.flows.InitiatingFlow +import net.corda.core.flows.StartableByRPC +import net.corda.core.getOrThrow +import net.corda.core.identity.Party +import net.corda.core.messaging.startFlow +import net.corda.core.utilities.ALICE +import net.corda.core.utilities.BOB +import net.corda.core.utilities.unwrap +import net.corda.node.services.startFlowPermission +import net.corda.nodeapi.User +import net.corda.testing.driver.driver +import org.assertj.core.api.Assertions.assertThat +import org.junit.Test + +class CordappScanningDriverTest { + @Test + fun `sub-classed initiated flow pointing to the same initiating flow as its super-class`() { + val user = User("u", "p", setOf(startFlowPermission())) + // The driver will automatically pick up the annotated flows below + driver { + val (alice, bob) = Futures.allAsList( + startNode(ALICE.name, rpcUsers = listOf(user)), + startNode(BOB.name)).getOrThrow() + val initiatedFlowClass = alice.rpcClientToNode() + .start(user.username, user.password) + .proxy + .startFlow(::ReceiveFlow, bob.nodeInfo.legalIdentity) + .returnValue + assertThat(initiatedFlowClass.getOrThrow()).isEqualTo(SendSubClassFlow::class.java.name) + } + } + + @StartableByRPC + @InitiatingFlow + class ReceiveFlow(val otherParty: Party) :FlowLogic() { + @Suspendable + override fun call(): String = receive(otherParty).unwrap { it } + } + + @InitiatedBy(ReceiveFlow::class) + open class SendClassFlow(val otherParty: Party) : FlowLogic() { + @Suspendable + override fun call() = send(otherParty, javaClass.name) + } + + @InitiatedBy(ReceiveFlow::class) + class SendSubClassFlow(otherParty: Party) : SendClassFlow(otherParty) +} diff --git a/node/src/integration-test/kotlin/net/corda/node/NodeStartupPerformanceTests.kt b/node/src/integration-test/kotlin/net/corda/node/NodeStartupPerformanceTests.kt index 0c4d48600b..a6aef9b4fd 100644 --- a/node/src/integration-test/kotlin/net/corda/node/NodeStartupPerformanceTests.kt +++ b/node/src/integration-test/kotlin/net/corda/node/NodeStartupPerformanceTests.kt @@ -1,8 +1,8 @@ package net.corda.node import com.google.common.base.Stopwatch -import net.corda.node.driver.NetworkMapStartStrategy -import net.corda.node.driver.driver +import net.corda.testing.driver.NetworkMapStartStrategy +import net.corda.testing.driver.driver import org.junit.Ignore import org.junit.Test import java.util.* diff --git a/node/src/integration-test/kotlin/net/corda/node/services/DistributedServiceTests.kt b/node/src/integration-test/kotlin/net/corda/node/services/DistributedServiceTests.kt index 0766ba08e0..62f8b1fc04 100644 --- a/node/src/integration-test/kotlin/net/corda/node/services/DistributedServiceTests.kt +++ b/node/src/integration-test/kotlin/net/corda/node/services/DistributedServiceTests.kt @@ -14,8 +14,8 @@ import net.corda.core.utilities.ALICE import net.corda.core.utilities.DUMMY_NOTARY import net.corda.flows.CashIssueFlow import net.corda.flows.CashPaymentFlow -import net.corda.node.driver.NodeHandle -import net.corda.node.driver.driver +import net.corda.testing.driver.NodeHandle +import net.corda.testing.driver.driver import net.corda.node.services.transactions.RaftValidatingNotaryService import net.corda.nodeapi.User import net.corda.testing.expect diff --git a/node/src/smoke-test/kotlin/net/corda/node/CordappScanningNodeProcessTest.kt b/node/src/smoke-test/kotlin/net/corda/node/CordappScanningNodeProcessTest.kt new file mode 100644 index 0000000000..1aaeb038ef --- /dev/null +++ b/node/src/smoke-test/kotlin/net/corda/node/CordappScanningNodeProcessTest.kt @@ -0,0 +1,52 @@ +package net.corda.node + +import net.corda.core.copyToDirectory +import net.corda.core.createDirectories +import net.corda.core.div +import net.corda.core.utilities.ALICE +import net.corda.nodeapi.User +import net.corda.smoketesting.NodeConfig +import net.corda.smoketesting.NodeProcess +import org.assertj.core.api.Assertions.assertThat +import org.junit.Test +import java.nio.file.Paths +import java.util.concurrent.atomic.AtomicInteger + +class CordappScanningNodeProcessTest { + private companion object { + val user = User("user1", "test", permissions = setOf("ALL")) + val port = AtomicInteger(15100) + } + + private val factory = NodeProcess.Factory() + + private val aliceConfig = NodeConfig( + party = ALICE, + p2pPort = port.andIncrement, + rpcPort = port.andIncrement, + webPort = port.andIncrement, + extraServices = emptyList(), + users = listOf(user) + ) + + @Test + fun `CorDapp jar in plugins directory is scanned`() { + // If the CorDapp jar does't exist then run the smokeTestClasses gradle task + val cordappJar = Paths.get(javaClass.getResource("/trader-demo.jar").toURI()) + val pluginsDir = (factory.baseDirectory(aliceConfig) / "plugins").createDirectories() + cordappJar.copyToDirectory(pluginsDir) + + factory.create(aliceConfig).use { + it.connect().use { + // If the CorDapp wasn't scanned then SellerFlow won't have been picked up as an RPC flow + assertThat(it.proxy.registeredFlows()).contains("net.corda.traderdemo.flow.SellerFlow") + } + } + } + + @Test + fun `empty plugins directory`() { + (factory.baseDirectory(aliceConfig) / "plugins").createDirectories() + factory.create(aliceConfig).close() + } +} diff --git a/node/src/smoke-test/kotlin/net/corda/node/CordappScanningTest.kt b/node/src/smoke-test/kotlin/net/corda/node/CordappScanningTest.kt deleted file mode 100644 index 41f95a52e1..0000000000 --- a/node/src/smoke-test/kotlin/net/corda/node/CordappScanningTest.kt +++ /dev/null @@ -1,99 +0,0 @@ -package net.corda.node - -import co.paralleluniverse.fibers.Suspendable -import com.google.common.util.concurrent.Futures -import net.corda.core.copyToDirectory -import net.corda.core.createDirectories -import net.corda.core.div -import net.corda.core.flows.FlowLogic -import net.corda.core.flows.InitiatedBy -import net.corda.core.flows.InitiatingFlow -import net.corda.core.flows.StartableByRPC -import net.corda.core.getOrThrow -import net.corda.core.identity.Party -import net.corda.core.messaging.startFlow -import net.corda.core.utilities.ALICE -import net.corda.core.utilities.BOB -import net.corda.core.utilities.unwrap -import net.corda.node.driver.driver -import net.corda.node.services.startFlowPermission -import net.corda.nodeapi.User -import net.corda.smoketesting.NodeConfig -import net.corda.smoketesting.NodeProcess -import org.assertj.core.api.Assertions.assertThat -import org.junit.Test -import java.nio.file.Paths -import java.util.concurrent.atomic.AtomicInteger - -class CordappScanningTest { - private companion object { - val user = User("user1", "test", permissions = setOf("ALL")) - val port = AtomicInteger(15100) - } - - private val factory = NodeProcess.Factory() - - private val aliceConfig = NodeConfig( - party = ALICE, - p2pPort = port.andIncrement, - rpcPort = port.andIncrement, - webPort = port.andIncrement, - extraServices = emptyList(), - users = listOf(user) - ) - - @Test - fun `CorDapp jar in plugins directory is scanned`() { - // If the CorDapp jar does't exist then run the smokeTestClasses gradle task - val cordappJar = Paths.get(javaClass.getResource("/trader-demo.jar").toURI()) - val pluginsDir = (factory.baseDirectory(aliceConfig) / "plugins").createDirectories() - cordappJar.copyToDirectory(pluginsDir) - - factory.create(aliceConfig).use { - it.connect().use { - // If the CorDapp wasn't scanned then SellerFlow won't have been picked up as an RPC flow - assertThat(it.proxy.registeredFlows()).contains("net.corda.traderdemo.flow.SellerFlow") - } - } - } - - @Test - fun `empty plugins directory`() { - (factory.baseDirectory(aliceConfig) / "plugins").createDirectories() - factory.create(aliceConfig).close() - } - - @Test - fun `sub-classed initiated flow pointing to the same initiating flow as its super-class`() { - val user = User("u", "p", setOf(startFlowPermission())) - // We don't use the factory for this test because we want the node to pick up the annotated flows below. The driver - // will do just that. - driver { - val (alice, bob) = Futures.allAsList( - startNode(ALICE.name, rpcUsers = listOf(user)), - startNode(BOB.name)).getOrThrow() - val initiatedFlowClass = alice.rpcClientToNode() - .start(user.username, user.password) - .proxy - .startFlow(::ReceiveFlow, bob.nodeInfo.legalIdentity) - .returnValue - assertThat(initiatedFlowClass.getOrThrow()).isEqualTo(SendSubClassFlow::class.java.name) - } - } - - @StartableByRPC - @InitiatingFlow - class ReceiveFlow(val otherParty: Party) : FlowLogic() { - @Suspendable - override fun call(): String = receive(otherParty).unwrap { it } - } - - @InitiatedBy(ReceiveFlow::class) - open class SendClassFlow(val otherParty: Party) : FlowLogic() { - @Suspendable - override fun call() = send(otherParty, javaClass.name) - } - - @InitiatedBy(ReceiveFlow::class) - class SendSubClassFlow(otherParty: Party) : SendClassFlow(otherParty) -} diff --git a/samples/attachment-demo/src/integration-test/kotlin/net/corda/attachmentdemo/AttachmentDemoTest.kt b/samples/attachment-demo/src/integration-test/kotlin/net/corda/attachmentdemo/AttachmentDemoTest.kt index 0b9ca23c58..61f57c93b0 100644 --- a/samples/attachment-demo/src/integration-test/kotlin/net/corda/attachmentdemo/AttachmentDemoTest.kt +++ b/samples/attachment-demo/src/integration-test/kotlin/net/corda/attachmentdemo/AttachmentDemoTest.kt @@ -6,7 +6,7 @@ import net.corda.core.node.services.ServiceInfo import net.corda.core.utilities.DUMMY_BANK_A import net.corda.core.utilities.DUMMY_BANK_B import net.corda.core.utilities.DUMMY_NOTARY -import net.corda.node.driver.driver +import net.corda.testing.driver.driver import net.corda.node.services.startFlowPermission import net.corda.node.services.transactions.SimpleNotaryService import net.corda.nodeapi.User diff --git a/samples/attachment-demo/src/main/kotlin/net/corda/attachmentdemo/AttachmentDemo.kt b/samples/attachment-demo/src/main/kotlin/net/corda/attachmentdemo/AttachmentDemo.kt index f653e2b4c3..739bebc8f8 100644 --- a/samples/attachment-demo/src/main/kotlin/net/corda/attachmentdemo/AttachmentDemo.kt +++ b/samples/attachment-demo/src/main/kotlin/net/corda/attachmentdemo/AttachmentDemo.kt @@ -8,19 +8,19 @@ import net.corda.core.contracts.Contract import net.corda.core.contracts.ContractState import net.corda.core.contracts.TransactionForContract import net.corda.core.contracts.TransactionType -import net.corda.core.identity.Party import net.corda.core.crypto.SecureHash import net.corda.core.flows.FlowLogic import net.corda.core.flows.StartableByRPC import net.corda.core.getOrThrow import net.corda.core.identity.AbstractParty +import net.corda.core.identity.Party import net.corda.core.messaging.CordaRPCOps import net.corda.core.messaging.startTrackedFlow import net.corda.core.sizedInputStreamAndHash import net.corda.core.transactions.SignedTransaction import net.corda.core.utilities.* import net.corda.flows.FinalityFlow -import net.corda.node.driver.poll +import net.corda.testing.driver.poll import java.io.InputStream import java.net.HttpURLConnection import java.net.URL diff --git a/samples/attachment-demo/src/main/kotlin/net/corda/attachmentdemo/Main.kt b/samples/attachment-demo/src/main/kotlin/net/corda/attachmentdemo/Main.kt index 9e7485eda3..bfd97e359a 100644 --- a/samples/attachment-demo/src/main/kotlin/net/corda/attachmentdemo/Main.kt +++ b/samples/attachment-demo/src/main/kotlin/net/corda/attachmentdemo/Main.kt @@ -5,9 +5,9 @@ import net.corda.core.node.services.ServiceInfo import net.corda.core.utilities.DUMMY_BANK_A import net.corda.core.utilities.DUMMY_BANK_B import net.corda.core.utilities.DUMMY_NOTARY -import net.corda.node.driver.driver import net.corda.node.services.transactions.SimpleNotaryService import net.corda.nodeapi.User +import net.corda.testing.driver.driver /** * This file is exclusively for being able to run your nodes through an IDE (as opposed to running deployNodes) diff --git a/samples/bank-of-corda-demo/src/integration-test/kotlin/net/corda/bank/BankOfCordaHttpAPITest.kt b/samples/bank-of-corda-demo/src/integration-test/kotlin/net/corda/bank/BankOfCordaHttpAPITest.kt index dbd82ff985..2887b84435 100644 --- a/samples/bank-of-corda-demo/src/integration-test/kotlin/net/corda/bank/BankOfCordaHttpAPITest.kt +++ b/samples/bank-of-corda-demo/src/integration-test/kotlin/net/corda/bank/BankOfCordaHttpAPITest.kt @@ -5,7 +5,7 @@ import net.corda.bank.api.BankOfCordaClientApi import net.corda.bank.api.BankOfCordaWebApi.IssueRequestParams import net.corda.core.getOrThrow import net.corda.core.node.services.ServiceInfo -import net.corda.node.driver.driver +import net.corda.testing.driver.driver import net.corda.node.services.transactions.SimpleNotaryService import net.corda.testing.BOC import org.junit.Test diff --git a/samples/bank-of-corda-demo/src/integration-test/kotlin/net/corda/bank/BankOfCordaRPCClientTest.kt b/samples/bank-of-corda-demo/src/integration-test/kotlin/net/corda/bank/BankOfCordaRPCClientTest.kt index 6a41c6546e..7609ce2bb9 100644 --- a/samples/bank-of-corda-demo/src/integration-test/kotlin/net/corda/bank/BankOfCordaRPCClientTest.kt +++ b/samples/bank-of-corda-demo/src/integration-test/kotlin/net/corda/bank/BankOfCordaRPCClientTest.kt @@ -6,7 +6,7 @@ import net.corda.core.getOrThrow import net.corda.core.messaging.startFlow import net.corda.core.node.services.ServiceInfo import net.corda.flows.IssuerFlow.IssuanceRequester -import net.corda.node.driver.driver +import net.corda.testing.driver.driver import net.corda.node.services.startFlowPermission import net.corda.node.services.transactions.SimpleNotaryService import net.corda.nodeapi.User diff --git a/samples/bank-of-corda-demo/src/main/kotlin/net/corda/bank/BankOfCordaDriver.kt b/samples/bank-of-corda-demo/src/main/kotlin/net/corda/bank/BankOfCordaDriver.kt index e2608737e9..ce73534001 100644 --- a/samples/bank-of-corda-demo/src/main/kotlin/net/corda/bank/BankOfCordaDriver.kt +++ b/samples/bank-of-corda-demo/src/main/kotlin/net/corda/bank/BankOfCordaDriver.kt @@ -12,7 +12,7 @@ import net.corda.core.utilities.DUMMY_NOTARY import net.corda.flows.CashExitFlow import net.corda.flows.CashPaymentFlow import net.corda.flows.IssuerFlow -import net.corda.node.driver.driver +import net.corda.testing.driver.driver import net.corda.node.services.startFlowPermission import net.corda.node.services.transactions.SimpleNotaryService import net.corda.nodeapi.User diff --git a/samples/irs-demo/src/integration-test/kotlin/net/corda/irs/IRSDemoTest.kt b/samples/irs-demo/src/integration-test/kotlin/net/corda/irs/IRSDemoTest.kt index 337311b1dc..cfe87d5761 100644 --- a/samples/irs-demo/src/integration-test/kotlin/net/corda/irs/IRSDemoTest.kt +++ b/samples/irs-demo/src/integration-test/kotlin/net/corda/irs/IRSDemoTest.kt @@ -13,7 +13,7 @@ import net.corda.irs.contract.InterestRateSwap import net.corda.irs.utilities.postJson import net.corda.irs.utilities.putJson import net.corda.irs.utilities.uploadFile -import net.corda.node.driver.driver +import net.corda.testing.driver.driver import net.corda.node.services.config.FullNodeConfiguration import net.corda.node.services.transactions.SimpleNotaryService import net.corda.nodeapi.User diff --git a/samples/irs-demo/src/main/kotlin/net/corda/irs/Main.kt b/samples/irs-demo/src/main/kotlin/net/corda/irs/Main.kt index 7233173531..c229067712 100644 --- a/samples/irs-demo/src/main/kotlin/net/corda/irs/Main.kt +++ b/samples/irs-demo/src/main/kotlin/net/corda/irs/Main.kt @@ -7,8 +7,8 @@ import net.corda.core.utilities.DUMMY_BANK_A import net.corda.core.utilities.DUMMY_BANK_B import net.corda.core.utilities.DUMMY_NOTARY import net.corda.irs.api.NodeInterestRates -import net.corda.node.driver.driver import net.corda.node.services.transactions.SimpleNotaryService +import net.corda.testing.driver.driver /** * This file is exclusively for being able to run your nodes through an IDE (as opposed to running deployNodes) diff --git a/samples/notary-demo/src/main/kotlin/net/corda/demorun/DemoRunner.kt b/samples/notary-demo/src/main/kotlin/net/corda/demorun/DemoRunner.kt index 9f67b21a0e..2521dbee01 100644 --- a/samples/notary-demo/src/main/kotlin/net/corda/demorun/DemoRunner.kt +++ b/samples/notary-demo/src/main/kotlin/net/corda/demorun/DemoRunner.kt @@ -1,10 +1,10 @@ package net.corda.demorun -import net.corda.node.driver.NetworkMapStartStrategy -import net.corda.node.driver.PortAllocation -import net.corda.node.driver.driver import net.corda.cordform.CordformDefinition import net.corda.cordform.CordformNode +import net.corda.testing.driver.NetworkMapStartStrategy +import net.corda.testing.driver.PortAllocation +import net.corda.testing.driver.driver fun CordformDefinition.clean() { System.err.println("Deleting: $driverDirectory") diff --git a/samples/raft-notary-demo/src/main/kotlin/net/corda/notarydemo/RaftNotaryCordform.kt b/samples/raft-notary-demo/src/main/kotlin/net/corda/notarydemo/RaftNotaryCordform.kt deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/samples/simm-valuation-demo/build.gradle b/samples/simm-valuation-demo/build.gradle index 6aa9ee1434..7a82f32234 100644 --- a/samples/simm-valuation-demo/build.gradle +++ b/samples/simm-valuation-demo/build.gradle @@ -34,10 +34,9 @@ dependencies { compile project(path: ":node:capsule", configuration: 'runtimeArtifacts') compile project(path: ":webserver:webcapsule", configuration: 'runtimeArtifacts') compile project(':core') - compile project(':node') compile project(':webserver') compile project(':finance') - testCompile project(':test-utils') + compile project(':test-utils') // Javax is required for webapis compile "org.glassfish.jersey.core:jersey-server:${jersey_version}" diff --git a/samples/simm-valuation-demo/src/integration-test/kotlin/net/corda/vega/SimmValuationTest.kt b/samples/simm-valuation-demo/src/integration-test/kotlin/net/corda/vega/SimmValuationTest.kt index f5f7bf8b36..171d373603 100644 --- a/samples/simm-valuation-demo/src/integration-test/kotlin/net/corda/vega/SimmValuationTest.kt +++ b/samples/simm-valuation-demo/src/integration-test/kotlin/net/corda/vega/SimmValuationTest.kt @@ -7,7 +7,7 @@ import net.corda.core.node.services.ServiceInfo import net.corda.core.utilities.DUMMY_BANK_A import net.corda.core.utilities.DUMMY_BANK_B import net.corda.core.utilities.DUMMY_NOTARY -import net.corda.node.driver.driver +import net.corda.testing.driver.driver import net.corda.node.services.transactions.SimpleNotaryService import net.corda.testing.IntegrationTestCategory import net.corda.testing.http.HttpApi diff --git a/samples/simm-valuation-demo/src/main/kotlin/net/corda/vega/Main.kt b/samples/simm-valuation-demo/src/main/kotlin/net/corda/vega/Main.kt index b774b782d4..869aecb4f9 100644 --- a/samples/simm-valuation-demo/src/main/kotlin/net/corda/vega/Main.kt +++ b/samples/simm-valuation-demo/src/main/kotlin/net/corda/vega/Main.kt @@ -7,7 +7,7 @@ import net.corda.core.node.services.ServiceInfo import net.corda.core.utilities.DUMMY_BANK_A import net.corda.core.utilities.DUMMY_BANK_B import net.corda.core.utilities.DUMMY_BANK_C -import net.corda.node.driver.driver +import net.corda.testing.driver.driver import net.corda.node.services.transactions.SimpleNotaryService /** diff --git a/samples/trader-demo/src/integration-test/kotlin/net/corda/traderdemo/TraderDemoTest.kt b/samples/trader-demo/src/integration-test/kotlin/net/corda/traderdemo/TraderDemoTest.kt index 348163a7bb..cc575dd8b1 100644 --- a/samples/trader-demo/src/integration-test/kotlin/net/corda/traderdemo/TraderDemoTest.kt +++ b/samples/trader-demo/src/integration-test/kotlin/net/corda/traderdemo/TraderDemoTest.kt @@ -10,7 +10,7 @@ import net.corda.core.utilities.DUMMY_BANK_A import net.corda.core.utilities.DUMMY_BANK_B import net.corda.core.utilities.DUMMY_NOTARY import net.corda.flows.IssuerFlow -import net.corda.node.driver.poll +import net.corda.testing.driver.poll import net.corda.node.services.startFlowPermission import net.corda.node.services.transactions.SimpleNotaryService import net.corda.nodeapi.User diff --git a/samples/trader-demo/src/main/kotlin/net/corda/traderdemo/Main.kt b/samples/trader-demo/src/main/kotlin/net/corda/traderdemo/Main.kt index 1660ae7bfa..5a0dc449c8 100644 --- a/samples/trader-demo/src/main/kotlin/net/corda/traderdemo/Main.kt +++ b/samples/trader-demo/src/main/kotlin/net/corda/traderdemo/Main.kt @@ -6,11 +6,11 @@ import net.corda.core.utilities.DUMMY_BANK_A import net.corda.core.utilities.DUMMY_BANK_B import net.corda.core.utilities.DUMMY_NOTARY import net.corda.flows.IssuerFlow -import net.corda.node.driver.driver import net.corda.node.services.startFlowPermission import net.corda.node.services.transactions.SimpleNotaryService import net.corda.nodeapi.User import net.corda.testing.BOC +import net.corda.testing.driver.driver /** * This file is exclusively for being able to run your nodes through an IDE (as opposed to running deployNodes) diff --git a/test-utils/build.gradle b/test-utils/build.gradle index 0add7883d3..3c5e40f6fe 100644 --- a/test-utils/build.gradle +++ b/test-utils/build.gradle @@ -8,6 +8,22 @@ description 'Testing utilities for Corda' configurations { // we don't want isolated.jar in classPath, since we want to test jar being dynamically loaded as an attachment runtime.exclude module: 'isolated' + + integrationTestCompile.extendsFrom testCompile + integrationTestRuntime.extendsFrom testRuntime +} + +sourceSets { + integrationTest { + kotlin { + compileClasspath += main.output + test.output + runtimeClasspath += main.output + test.output + srcDir file('src/integration-test/kotlin') + } + resources { + srcDir file('src/integration-test/resources') + } + } } dependencies { @@ -32,6 +48,15 @@ dependencies { // OkHTTP: Simple HTTP library. compile "com.squareup.okhttp3:okhttp:$okhttp_version" + + // Integration test helpers + integrationTestCompile "org.assertj:assertj-core:${assertj_version}" + integrationTestCompile "junit:junit:$junit_version" +} + +task integrationTest(type: Test) { + testClassesDir = sourceSets.integrationTest.output.classesDir + classpath = sourceSets.integrationTest.runtimeClasspath } jar { diff --git a/node/src/integration-test/kotlin/net/corda/node/driver/DriverTests.kt b/test-utils/src/integration-test/kotlin/net/corda/testing/driver/DriverTests.kt similarity index 98% rename from node/src/integration-test/kotlin/net/corda/node/driver/DriverTests.kt rename to test-utils/src/integration-test/kotlin/net/corda/testing/driver/DriverTests.kt index cd39098c83..c1c88866dc 100644 --- a/node/src/integration-test/kotlin/net/corda/node/driver/DriverTests.kt +++ b/test-utils/src/integration-test/kotlin/net/corda/testing/driver/DriverTests.kt @@ -1,4 +1,4 @@ -package net.corda.node.driver +package net.corda.testing.driver import com.google.common.util.concurrent.ListenableFuture import net.corda.core.div diff --git a/test-utils/src/main/kotlin/net/corda/testing/RPCDriver.kt b/test-utils/src/main/kotlin/net/corda/testing/RPCDriver.kt index bbba3de89b..06c186ef5b 100644 --- a/test-utils/src/main/kotlin/net/corda/testing/RPCDriver.kt +++ b/test-utils/src/main/kotlin/net/corda/testing/RPCDriver.kt @@ -13,7 +13,6 @@ import net.corda.core.map import net.corda.core.messaging.RPCOps import net.corda.core.random63BitValue import net.corda.core.utilities.ProcessUtilities -import net.corda.node.driver.* import net.corda.node.services.RPCUserService import net.corda.node.services.messaging.ArtemisMessagingServer import net.corda.node.services.messaging.RPCServer @@ -22,6 +21,7 @@ import net.corda.nodeapi.ArtemisTcpTransport import net.corda.nodeapi.ConnectionDirection import net.corda.nodeapi.RPCApi import net.corda.nodeapi.User +import net.corda.testing.driver.* import org.apache.activemq.artemis.api.core.SimpleString import org.apache.activemq.artemis.api.core.TransportConfiguration import org.apache.activemq.artemis.api.core.client.ActiveMQClient diff --git a/node/src/main/kotlin/net/corda/node/driver/Driver.kt b/test-utils/src/main/kotlin/net/corda/testing/driver/Driver.kt similarity index 99% rename from node/src/main/kotlin/net/corda/node/driver/Driver.kt rename to test-utils/src/main/kotlin/net/corda/testing/driver/Driver.kt index d1f37bddfa..1f2b0c970c 100644 --- a/node/src/main/kotlin/net/corda/node/driver/Driver.kt +++ b/test-utils/src/main/kotlin/net/corda/testing/driver/Driver.kt @@ -1,6 +1,6 @@ @file:JvmName("Driver") -package net.corda.node.driver +package net.corda.testing.driver import com.google.common.net.HostAndPort import com.google.common.util.concurrent.* @@ -14,7 +14,6 @@ import net.corda.core.crypto.X509Utilities import net.corda.core.crypto.appendToCommonName import net.corda.core.crypto.commonName import net.corda.core.identity.Party -import net.corda.core.identity.PartyAndCertificate import net.corda.core.messaging.CordaRPCOps import net.corda.core.node.NodeInfo import net.corda.core.node.services.ServiceInfo diff --git a/node/src/main/kotlin/net/corda/node/driver/NetworkMapStartStrategy.kt b/test-utils/src/main/kotlin/net/corda/testing/driver/NetworkMapStartStrategy.kt similarity index 95% rename from node/src/main/kotlin/net/corda/node/driver/NetworkMapStartStrategy.kt rename to test-utils/src/main/kotlin/net/corda/testing/driver/NetworkMapStartStrategy.kt index 218dfe5716..93a42686d4 100644 --- a/node/src/main/kotlin/net/corda/node/driver/NetworkMapStartStrategy.kt +++ b/test-utils/src/main/kotlin/net/corda/testing/driver/NetworkMapStartStrategy.kt @@ -1,4 +1,4 @@ -package net.corda.node.driver +package net.corda.testing.driver import com.google.common.net.HostAndPort import net.corda.core.utilities.DUMMY_MAP diff --git a/test-utils/src/main/kotlin/net/corda/testing/node/DriverBasedTest.kt b/test-utils/src/main/kotlin/net/corda/testing/node/DriverBasedTest.kt index c2fe6d2048..6c9219dfb4 100644 --- a/test-utils/src/main/kotlin/net/corda/testing/node/DriverBasedTest.kt +++ b/test-utils/src/main/kotlin/net/corda/testing/node/DriverBasedTest.kt @@ -2,7 +2,7 @@ package net.corda.testing.node import com.google.common.util.concurrent.SettableFuture import net.corda.core.getOrThrow -import net.corda.node.driver.DriverDSLExposedInterface +import net.corda.testing.driver.DriverDSLExposedInterface import org.junit.After import org.junit.Before import java.util.concurrent.CountDownLatch diff --git a/test-utils/src/main/kotlin/net/corda/testing/node/NodeBasedTest.kt b/test-utils/src/main/kotlin/net/corda/testing/node/NodeBasedTest.kt index 39da9a3a81..d5c934f05a 100644 --- a/test-utils/src/main/kotlin/net/corda/testing/node/NodeBasedTest.kt +++ b/test-utils/src/main/kotlin/net/corda/testing/node/NodeBasedTest.kt @@ -11,7 +11,6 @@ import net.corda.core.node.services.ServiceType import net.corda.core.utilities.DUMMY_CA import net.corda.core.utilities.DUMMY_MAP import net.corda.core.utilities.WHITESPACE -import net.corda.node.driver.addressMustNotBeBoundFuture import net.corda.node.internal.Node import net.corda.node.services.config.ConfigHelper import net.corda.node.services.config.FullNodeConfiguration @@ -22,6 +21,7 @@ import net.corda.node.utilities.ServiceIdentityGenerator import net.corda.nodeapi.User import net.corda.nodeapi.config.parseAs import net.corda.testing.MOCK_VERSION_INFO +import net.corda.testing.driver.addressMustNotBeBoundFuture import net.corda.testing.getFreeLocalPorts import org.apache.logging.log4j.Level import org.bouncycastle.asn1.x500.X500Name diff --git a/tools/explorer/build.gradle b/tools/explorer/build.gradle index f3609ec2db..db26ec9f42 100644 --- a/tools/explorer/build.gradle +++ b/tools/explorer/build.gradle @@ -30,7 +30,7 @@ dependencies { compile project(':core') compile project(':client:jfx') compile project(':client:mock') - compile project(':node') + compile project(':test-utils') compile project(':finance') // Capsule is a library for building independently executable fat JARs. diff --git a/tools/explorer/src/main/kotlin/net/corda/explorer/Main.kt b/tools/explorer/src/main/kotlin/net/corda/explorer/Main.kt index 652f9a6aad..878ce3faa4 100644 --- a/tools/explorer/src/main/kotlin/net/corda/explorer/Main.kt +++ b/tools/explorer/src/main/kotlin/net/corda/explorer/Main.kt @@ -39,8 +39,8 @@ import net.corda.flows.CashFlowCommand import net.corda.flows.CashIssueFlow import net.corda.flows.CashPaymentFlow import net.corda.flows.IssuerFlow.IssuanceRequester -import net.corda.node.driver.PortAllocation -import net.corda.node.driver.driver +import net.corda.testing.driver.PortAllocation +import net.corda.testing.driver.driver import net.corda.node.services.startFlowPermission import net.corda.node.services.transactions.SimpleNotaryService import net.corda.nodeapi.User diff --git a/tools/loadtest/build.gradle b/tools/loadtest/build.gradle index 0539d7e2de..e824da01df 100644 --- a/tools/loadtest/build.gradle +++ b/tools/loadtest/build.gradle @@ -6,7 +6,7 @@ mainClassName = 'net.corda.loadtest.MainKt' dependencies { compile project(':client:mock') compile project(':client:rpc') - compile project(':node') + compile project(':test-utils') // https://mvnrepository.com/artifact/com.jcraft/jsch compile group: 'com.jcraft', name: 'jsch', version: '0.1.54' diff --git a/tools/loadtest/src/main/kotlin/net/corda/loadtest/ConnectionManager.kt b/tools/loadtest/src/main/kotlin/net/corda/loadtest/ConnectionManager.kt index bf46ebff5b..5e52deeb3b 100644 --- a/tools/loadtest/src/main/kotlin/net/corda/loadtest/ConnectionManager.kt +++ b/tools/loadtest/src/main/kotlin/net/corda/loadtest/ConnectionManager.kt @@ -8,7 +8,7 @@ import com.jcraft.jsch.agentproxy.usocket.JNAUSocketFactory import net.corda.client.rpc.CordaRPCClient import net.corda.client.rpc.CordaRPCConnection import net.corda.core.messaging.CordaRPCOps -import net.corda.node.driver.PortAllocation +import net.corda.testing.driver.PortAllocation import org.slf4j.LoggerFactory import java.io.ByteArrayOutputStream import java.io.Closeable diff --git a/tools/loadtest/src/main/kotlin/net/corda/loadtest/LoadTest.kt b/tools/loadtest/src/main/kotlin/net/corda/loadtest/LoadTest.kt index 9c96f46f70..1b1d386938 100644 --- a/tools/loadtest/src/main/kotlin/net/corda/loadtest/LoadTest.kt +++ b/tools/loadtest/src/main/kotlin/net/corda/loadtest/LoadTest.kt @@ -3,7 +3,7 @@ package net.corda.loadtest import net.corda.client.mock.Generator import net.corda.client.rpc.notUsed import net.corda.core.crypto.toBase58String -import net.corda.node.driver.PortAllocation +import net.corda.testing.driver.PortAllocation import net.corda.node.services.network.NetworkMapService import org.slf4j.LoggerFactory import java.util.* diff --git a/verifier/src/integration-test/kotlin/net/corda/verifier/VerifierDriver.kt b/verifier/src/integration-test/kotlin/net/corda/verifier/VerifierDriver.kt index 5c255c0cfe..7713b6b745 100644 --- a/verifier/src/integration-test/kotlin/net/corda/verifier/VerifierDriver.kt +++ b/verifier/src/integration-test/kotlin/net/corda/verifier/VerifierDriver.kt @@ -15,7 +15,6 @@ import net.corda.core.random63BitValue import net.corda.core.transactions.LedgerTransaction import net.corda.core.utilities.ProcessUtilities import net.corda.core.utilities.loggerFor -import net.corda.node.driver.* import net.corda.node.services.config.configureDevKeyAndTrustStores import net.corda.nodeapi.ArtemisMessagingComponent.Companion.NODE_USER import net.corda.nodeapi.ArtemisTcpTransport @@ -23,6 +22,7 @@ import net.corda.nodeapi.ConnectionDirection import net.corda.nodeapi.VerifierApi import net.corda.nodeapi.config.NodeSSLConfiguration import net.corda.nodeapi.config.SSLConfiguration +import net.corda.testing.driver.* import org.apache.activemq.artemis.api.core.SimpleString import org.apache.activemq.artemis.api.core.client.ActiveMQClient import org.apache.activemq.artemis.api.core.client.ClientProducer diff --git a/verifier/src/integration-test/kotlin/net/corda/verifier/VerifierTests.kt b/verifier/src/integration-test/kotlin/net/corda/verifier/VerifierTests.kt index 7000c6b7c1..3ab800aaae 100644 --- a/verifier/src/integration-test/kotlin/net/corda/verifier/VerifierTests.kt +++ b/verifier/src/integration-test/kotlin/net/corda/verifier/VerifierTests.kt @@ -13,7 +13,7 @@ import net.corda.core.utilities.ALICE import net.corda.core.utilities.DUMMY_NOTARY import net.corda.flows.CashIssueFlow import net.corda.flows.CashPaymentFlow -import net.corda.node.driver.NetworkMapStartStrategy +import net.corda.testing.driver.NetworkMapStartStrategy import net.corda.node.services.config.VerifierType import net.corda.node.services.transactions.ValidatingNotaryService import org.junit.Test diff --git a/webserver/build.gradle b/webserver/build.gradle index 7fe68cfbe2..dc2e70e676 100644 --- a/webserver/build.gradle +++ b/webserver/build.gradle @@ -33,7 +33,6 @@ dependencies { compile project(':finance') compile project(':client:rpc') compile project(':client:jackson') - testCompile project(':node') // Web stuff: for HTTP[S] servlets compile "org.eclipse.jetty:jetty-servlet:$jetty_version" @@ -58,6 +57,7 @@ dependencies { // For rendering the index page. compile "org.jetbrains.kotlinx:kotlinx-html-jvm:0.6.3" + testCompile project(':test-utils') testCompile "junit:junit:$junit_version" } diff --git a/webserver/src/integration-test/kotlin/net/corda/webserver/WebserverDriverTests.kt b/webserver/src/integration-test/kotlin/net/corda/webserver/WebserverDriverTests.kt index 7dad7ecae1..dbbab3e2df 100644 --- a/webserver/src/integration-test/kotlin/net/corda/webserver/WebserverDriverTests.kt +++ b/webserver/src/integration-test/kotlin/net/corda/webserver/WebserverDriverTests.kt @@ -3,16 +3,17 @@ package net.corda.webserver import com.google.common.net.HostAndPort import net.corda.core.getOrThrow import net.corda.core.utilities.DUMMY_BANK_A -import net.corda.node.driver.WebserverHandle -import net.corda.node.driver.addressMustBeBound -import net.corda.node.driver.addressMustNotBeBound -import net.corda.node.driver.driver +import net.corda.testing.driver.WebserverHandle +import net.corda.testing.driver.addressMustBeBound +import net.corda.testing.driver.addressMustNotBeBound +import net.corda.testing.driver.driver import org.junit.Test import java.util.concurrent.Executors +import java.util.concurrent.ScheduledExecutorService class DriverTests { companion object { - val executorService = Executors.newScheduledThreadPool(2) + val executorService: ScheduledExecutorService = Executors.newScheduledThreadPool(2) fun webserverMustBeUp(webserverHandle: WebserverHandle) { addressMustBeBound(executorService, webserverHandle.listenAddress, webserverHandle.process)