From f2e9b52699813faffa422fb2f138e4379aa405dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Schr=C3=B6ter?= Date: Sat, 11 Nov 2017 00:44:05 +0100 Subject: [PATCH] Provide access to known shard types add test #23912 --- .../sharding/GetShardTypeNamesSpec.scala | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 akka-cluster-sharding/src/test/scala/akka/cluster/sharding/GetShardTypeNamesSpec.scala diff --git a/akka-cluster-sharding/src/test/scala/akka/cluster/sharding/GetShardTypeNamesSpec.scala b/akka-cluster-sharding/src/test/scala/akka/cluster/sharding/GetShardTypeNamesSpec.scala new file mode 100644 index 0000000000..10550b1c84 --- /dev/null +++ b/akka-cluster-sharding/src/test/scala/akka/cluster/sharding/GetShardTypeNamesSpec.scala @@ -0,0 +1,44 @@ +/** + * Copyright (C) 2015-2017 Lightbend Inc. + */ +package akka.cluster.sharding + +import akka.actor.Props +import akka.cluster.Cluster +import akka.testkit.AkkaSpec +import akka.testkit.TestActors.EchoActor + +object GetShardTypeNamesSpec { + val config = + """ + akka.loglevel = INFO + akka.actor.provider = "cluster" + """ + + val extractEntityId: ShardRegion.ExtractEntityId = { + case msg: Int ⇒ (msg.toString, msg) + } + + val extractShardId: ShardRegion.ExtractShardId = { + case msg: Int ⇒ (msg % 10).toString + } +} + +class GetShardTypeNamesSpec extends AkkaSpec(GetShardTypeNamesSpec.config) { + import GetShardTypeNamesSpec._ + + "GetShardTypeNames" must { + "contain empty when join cluster without shards" in { + ClusterSharding(system).shardTypeNames should ===(Set()) + } + + "contain started shards when started 2 shards" in { + Cluster(system).join(Cluster(system).selfAddress) + val settings = ClusterShardingSettings(system) + ClusterSharding(system).start("type1", Props[EchoActor](), settings, extractEntityId, extractShardId) + ClusterSharding(system).start("type2", Props[EchoActor](), settings, extractEntityId, extractShardId) + + ClusterSharding(system).shardTypeNames should ===(Set("type1", "type2")) + } + } +}