Make it more intuitive for tests using real Cluster(system) extension, see #2103
* We will write more tests that rely on real Cluster(system) extension, such as ClusterRoundRobinRoutedActorSpec * When not using FailureDetectorStrategy or overriding seed nodes MultiNodeClusterSpec will use the real Cluster(system) extension instead of a new Cluster instance with additional test facilities
This commit is contained in:
parent
f1626ca1d3
commit
f4cc8f8649
14 changed files with 42 additions and 34 deletions
|
|
@ -38,7 +38,7 @@ object MultiNodeClusterSpec {
|
|||
""")
|
||||
}
|
||||
|
||||
trait MultiNodeClusterSpec extends FailureDetectorStrategy with Suite { self: MultiNodeSpec ⇒
|
||||
trait MultiNodeClusterSpec extends Suite { self: MultiNodeSpec ⇒
|
||||
|
||||
override def initialParticipants = roles.size
|
||||
|
||||
|
|
@ -90,11 +90,21 @@ trait MultiNodeClusterSpec extends FailureDetectorStrategy with Suite { self: Mu
|
|||
/**
|
||||
* The cluster node instance. Needs to be lazily created.
|
||||
*/
|
||||
private lazy val clusterNode = new Cluster(system.asInstanceOf[ExtendedActorSystem], failureDetector) {
|
||||
override def seedNodes: IndexedSeq[Address] = {
|
||||
val testSeedNodes = MultiNodeClusterSpec.this.seedNodes
|
||||
if (testSeedNodes.isEmpty) super.seedNodes
|
||||
else testSeedNodes map address
|
||||
private lazy val clusterNode = this match {
|
||||
case x: FailureDetectorStrategy ⇒ createTestCluster(x.failureDetector)
|
||||
case _ if seedNodes.nonEmpty ⇒
|
||||
createTestCluster(new AccrualFailureDetector(system, new ClusterSettings(system.settings.config, system.name)))
|
||||
case _ ⇒ Cluster(system)
|
||||
|
||||
}
|
||||
|
||||
private def createTestCluster(failureDetector: FailureDetector): Cluster = {
|
||||
new Cluster(system.asInstanceOf[ExtendedActorSystem], failureDetector) {
|
||||
override def seedNodes: IndexedSeq[Address] = {
|
||||
val testSeedNodes = MultiNodeClusterSpec.this.seedNodes
|
||||
if (testSeedNodes.isEmpty) super.seedNodes
|
||||
else testSeedNodes map address
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -215,3 +225,4 @@ trait MultiNodeClusterSpec extends FailureDetectorStrategy with Suite { self: Mu
|
|||
def roleName(addr: Address): Option[RoleName] = roles.find(address(_) == addr)
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue