Closes #398 Fix broken tests in akka-camel module
This commit is contained in:
parent
b6c782e6f9
commit
dadbee5f13
3 changed files with 45 additions and 60 deletions
|
|
@ -1,40 +0,0 @@
|
||||||
package se.scalablesolutions.akka.camel
|
|
||||||
|
|
||||||
import java.net.InetSocketAddress
|
|
||||||
|
|
||||||
import org.junit.{AfterClass, Test}
|
|
||||||
import org.scalatest.junit.JUnitSuite
|
|
||||||
|
|
||||||
import se.scalablesolutions.akka.actor.{AspectInit, TypedActor}
|
|
||||||
import se.scalablesolutions.akka.camel.ConsumerMethodRegistered._
|
|
||||||
|
|
||||||
/*
|
|
||||||
class ConsumerMethodRegisteredTest extends JUnitSuite {
|
|
||||||
import ConsumerMethodRegisteredTest._
|
|
||||||
|
|
||||||
val remoteAddress = new InetSocketAddress("localhost", 8888);
|
|
||||||
val remoteAspectInit = AspectInit(classOf[SampleTypedConsumer], new SampleTypedConsumerImpl, null, Some(remoteAddress), 1000)
|
|
||||||
val localAspectInit = AspectInit(classOf[SampleTypedConsumer], new SampleTypedConsumerImpl, null, None, 1000)
|
|
||||||
val ascendingMethodName = (r1: ConsumerMethodRegistered, r2: ConsumerMethodRegistered) =>
|
|
||||||
r1.method.getName < r2.method.getName
|
|
||||||
|
|
||||||
@Test def shouldSelectTypedActorMethods234 = {
|
|
||||||
val registered = forConsumer(typedConsumer, localAspectInit).sortWith(ascendingMethodName)
|
|
||||||
assert(registered.size === 3)
|
|
||||||
assert(registered.map(_.method.getName) === List("m2", "m3", "m4"))
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test def shouldIgnoreRemoteProxies = {
|
|
||||||
val registered = forConsumer(typedConsumer, remoteAspectInit)
|
|
||||||
assert(registered.size === 0)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
object ConsumerMethodRegisteredTest {
|
|
||||||
val typedConsumer = TypedActor.newInstance(classOf[SampleTypedConsumer], classOf[SampleTypedConsumerImpl])
|
|
||||||
|
|
||||||
@AfterClass
|
|
||||||
def afterClass = TypedActor.stop(typedConsumer)
|
|
||||||
}
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
@ -16,7 +16,10 @@ class PublishRequestorTest extends JUnitSuite {
|
||||||
var requestor: ActorRef = _
|
var requestor: ActorRef = _
|
||||||
var consumer: ActorRef = _
|
var consumer: ActorRef = _
|
||||||
|
|
||||||
@Before def setUp = {
|
val ascendingMethodName = (r1: ConsumerMethodRegistered, r2: ConsumerMethodRegistered) =>
|
||||||
|
r1.method.getName < r2.method.getName
|
||||||
|
|
||||||
|
@Before def setUp: Unit = {
|
||||||
publisher = actorOf[PublisherMock].start
|
publisher = actorOf[PublisherMock].start
|
||||||
requestor = actorOf[PublishRequestor].start
|
requestor = actorOf[PublishRequestor].start
|
||||||
requestor ! PublishRequestorInit(publisher)
|
requestor ! PublishRequestorInit(publisher)
|
||||||
|
|
@ -24,42 +27,58 @@ class PublishRequestorTest extends JUnitSuite {
|
||||||
def endpointUri = "mock:test"
|
def endpointUri = "mock:test"
|
||||||
protected def receive = null
|
protected def receive = null
|
||||||
}).start
|
}).start
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@After def tearDown = {
|
@After def tearDown = {
|
||||||
|
AspectInitRegistry.removeListener(requestor);
|
||||||
ActorRegistry.shutdownAll
|
ActorRegistry.shutdownAll
|
||||||
}
|
}
|
||||||
|
|
||||||
//@Test
|
@Test def shouldReceiveOneConsumerMethodRegisteredEvent = {
|
||||||
def shouldReceiveConsumerMethodRegisteredEvent = {
|
AspectInitRegistry.addListener(requestor)
|
||||||
val obj = TypedActor.newInstance(classOf[SampleTypedSingleConsumer], classOf[SampleTypedSingleConsumerImpl])
|
|
||||||
val init = AspectInit(classOf[SampleTypedSingleConsumer], new SampleTypedSingleConsumerImpl, null, None, 1000)
|
|
||||||
val latch = (publisher !! SetExpectedTestMessageCount(1)).as[CountDownLatch].get
|
val latch = (publisher !! SetExpectedTestMessageCount(1)).as[CountDownLatch].get
|
||||||
requestor ! AspectInitRegistered(obj, init)
|
val obj = TypedActor.newInstance(classOf[SampleTypedSingleConsumer], classOf[SampleTypedSingleConsumerImpl])
|
||||||
assert(latch.await(5000, TimeUnit.MILLISECONDS))
|
assert(latch.await(5000, TimeUnit.MILLISECONDS))
|
||||||
val event = (publisher !! GetRetainedMessage).get.asInstanceOf[ConsumerMethodRegistered]
|
val event = (publisher !! GetRetainedMessage).as[ConsumerMethodRegistered].get
|
||||||
assert(event.init === init)
|
|
||||||
assert(event.uri === "direct:foo")
|
assert(event.uri === "direct:foo")
|
||||||
assert(event.typedActor === obj)
|
assert(event.typedActor === obj)
|
||||||
assert(event.method.getName === "foo")
|
assert(event.method.getName === "foo")
|
||||||
}
|
}
|
||||||
|
|
||||||
//@Test
|
@Test def shouldReceiveOneConsumerMethodUnregisteredEvent = {
|
||||||
def shouldReceiveConsumerMethodUnregisteredEvent = {
|
|
||||||
val obj = TypedActor.newInstance(classOf[SampleTypedSingleConsumer], classOf[SampleTypedSingleConsumerImpl])
|
val obj = TypedActor.newInstance(classOf[SampleTypedSingleConsumer], classOf[SampleTypedSingleConsumerImpl])
|
||||||
val init = AspectInit(classOf[SampleTypedSingleConsumer], new SampleTypedSingleConsumerImpl, null, None, 1000)
|
|
||||||
val latch = (publisher !! SetExpectedTestMessageCount(1)).as[CountDownLatch].get
|
val latch = (publisher !! SetExpectedTestMessageCount(1)).as[CountDownLatch].get
|
||||||
requestor ! AspectInitUnregistered(obj, init)
|
AspectInitRegistry.addListener(requestor)
|
||||||
|
TypedActor.stop(obj)
|
||||||
assert(latch.await(5000, TimeUnit.MILLISECONDS))
|
assert(latch.await(5000, TimeUnit.MILLISECONDS))
|
||||||
val event = (publisher !! GetRetainedMessage).get.asInstanceOf[ConsumerMethodUnregistered]
|
val event = (publisher !! GetRetainedMessage).as[ConsumerMethodUnregistered].get
|
||||||
assert(event.init === init)
|
|
||||||
assert(event.uri === "direct:foo")
|
assert(event.uri === "direct:foo")
|
||||||
assert(event.typedActor === obj)
|
assert(event.typedActor === obj)
|
||||||
assert(event.method.getName === "foo")
|
assert(event.method.getName === "foo")
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test def shouldReceiveConsumerRegisteredEvent = {
|
@Test def shouldReceiveThreeConsumerMethodRegisteredEvents = {
|
||||||
|
AspectInitRegistry.addListener(requestor)
|
||||||
|
val latch = (publisher !! SetExpectedTestMessageCount(3)).as[CountDownLatch].get
|
||||||
|
val obj = TypedActor.newInstance(classOf[SampleTypedConsumer], classOf[SampleTypedConsumerImpl])
|
||||||
|
assert(latch.await(5000, TimeUnit.MILLISECONDS))
|
||||||
|
val request = GetRetainedMessages(_.isInstanceOf[ConsumerMethodRegistered])
|
||||||
|
val events = (publisher !! request).as[List[ConsumerMethodRegistered]].get
|
||||||
|
assert(events.map(_.method.getName).sortWith(_ < _) === List("m2", "m3", "m4"))
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test def shouldReceiveThreeConsumerMethodUnregisteredEvents = {
|
||||||
|
val obj = TypedActor.newInstance(classOf[SampleTypedConsumer], classOf[SampleTypedConsumerImpl])
|
||||||
|
val latch = (publisher !! SetExpectedTestMessageCount(3)).as[CountDownLatch].get
|
||||||
|
AspectInitRegistry.addListener(requestor)
|
||||||
|
TypedActor.stop(obj)
|
||||||
|
assert(latch.await(5000, TimeUnit.MILLISECONDS))
|
||||||
|
val request = GetRetainedMessages(_.isInstanceOf[ConsumerMethodUnregistered])
|
||||||
|
val events = (publisher !! request).as[List[ConsumerMethodUnregistered]].get
|
||||||
|
assert(events.map(_.method.getName).sortWith(_ < _) === List("m2", "m3", "m4"))
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test def shouldReceiveOneConsumerRegisteredEvent = {
|
||||||
val latch = (publisher !! SetExpectedTestMessageCount(1)).as[CountDownLatch].get
|
val latch = (publisher !! SetExpectedTestMessageCount(1)).as[CountDownLatch].get
|
||||||
requestor ! ActorRegistered(consumer)
|
requestor ! ActorRegistered(consumer)
|
||||||
assert(latch.await(5000, TimeUnit.MILLISECONDS))
|
assert(latch.await(5000, TimeUnit.MILLISECONDS))
|
||||||
|
|
@ -67,7 +86,7 @@ class PublishRequestorTest extends JUnitSuite {
|
||||||
Some(ConsumerRegistered(consumer, "mock:test", consumer.uuid, false)))
|
Some(ConsumerRegistered(consumer, "mock:test", consumer.uuid, false)))
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test def shouldReceiveConsumerUnregisteredEvent = {
|
@Test def shouldReceiveOneConsumerUnregisteredEvent = {
|
||||||
val latch = (publisher !! SetExpectedTestMessageCount(1)).as[CountDownLatch].get
|
val latch = (publisher !! SetExpectedTestMessageCount(1)).as[CountDownLatch].get
|
||||||
requestor ! ActorUnregistered(consumer)
|
requestor ! ActorUnregistered(consumer)
|
||||||
assert(latch.await(5000, TimeUnit.MILLISECONDS))
|
assert(latch.await(5000, TimeUnit.MILLISECONDS))
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,8 @@ package se.scalablesolutions.akka.camel.support
|
||||||
|
|
||||||
import java.util.concurrent.{TimeUnit, CountDownLatch}
|
import java.util.concurrent.{TimeUnit, CountDownLatch}
|
||||||
|
|
||||||
|
import collection.mutable.Buffer
|
||||||
|
|
||||||
import se.scalablesolutions.akka.camel.Message
|
import se.scalablesolutions.akka.camel.Message
|
||||||
import se.scalablesolutions.akka.actor.Actor
|
import se.scalablesolutions.akka.actor.Actor
|
||||||
|
|
||||||
|
|
@ -54,12 +56,13 @@ trait Respond { this: Actor =>
|
||||||
}
|
}
|
||||||
|
|
||||||
trait Retain { this: Actor =>
|
trait Retain { this: Actor =>
|
||||||
var message: Any = _
|
val messages = Buffer[Any]()
|
||||||
|
|
||||||
def retain: Handler = {
|
def retain: Handler = {
|
||||||
case GetRetainedMessage => self.reply(message)
|
case GetRetainedMessage => self.reply(messages.last)
|
||||||
|
case GetRetainedMessages(p) => self.reply(messages.toList.filter(p))
|
||||||
case msg => {
|
case msg => {
|
||||||
message = msg
|
messages += msg
|
||||||
msg
|
msg
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -73,3 +76,6 @@ trait Noop { this: Actor =>
|
||||||
|
|
||||||
case class SetExpectedMessageCount(num: Int)
|
case class SetExpectedMessageCount(num: Int)
|
||||||
case class GetRetainedMessage()
|
case class GetRetainedMessage()
|
||||||
|
case class GetRetainedMessages(p: Any => Boolean) {
|
||||||
|
def this() = this(_ => true)
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue