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 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
|
||||
requestor = actorOf[PublishRequestor].start
|
||||
requestor ! PublishRequestorInit(publisher)
|
||||
|
|
@ -24,42 +27,58 @@ class PublishRequestorTest extends JUnitSuite {
|
|||
def endpointUri = "mock:test"
|
||||
protected def receive = null
|
||||
}).start
|
||||
|
||||
}
|
||||
|
||||
@After def tearDown = {
|
||||
AspectInitRegistry.removeListener(requestor);
|
||||
ActorRegistry.shutdownAll
|
||||
}
|
||||
|
||||
//@Test
|
||||
def shouldReceiveConsumerMethodRegisteredEvent = {
|
||||
val obj = TypedActor.newInstance(classOf[SampleTypedSingleConsumer], classOf[SampleTypedSingleConsumerImpl])
|
||||
val init = AspectInit(classOf[SampleTypedSingleConsumer], new SampleTypedSingleConsumerImpl, null, None, 1000)
|
||||
@Test def shouldReceiveOneConsumerMethodRegisteredEvent = {
|
||||
AspectInitRegistry.addListener(requestor)
|
||||
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))
|
||||
val event = (publisher !! GetRetainedMessage).get.asInstanceOf[ConsumerMethodRegistered]
|
||||
assert(event.init === init)
|
||||
val event = (publisher !! GetRetainedMessage).as[ConsumerMethodRegistered].get
|
||||
assert(event.uri === "direct:foo")
|
||||
assert(event.typedActor === obj)
|
||||
assert(event.method.getName === "foo")
|
||||
}
|
||||
|
||||
//@Test
|
||||
def shouldReceiveConsumerMethodUnregisteredEvent = {
|
||||
@Test def shouldReceiveOneConsumerMethodUnregisteredEvent = {
|
||||
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
|
||||
requestor ! AspectInitUnregistered(obj, init)
|
||||
AspectInitRegistry.addListener(requestor)
|
||||
TypedActor.stop(obj)
|
||||
assert(latch.await(5000, TimeUnit.MILLISECONDS))
|
||||
val event = (publisher !! GetRetainedMessage).get.asInstanceOf[ConsumerMethodUnregistered]
|
||||
assert(event.init === init)
|
||||
val event = (publisher !! GetRetainedMessage).as[ConsumerMethodUnregistered].get
|
||||
assert(event.uri === "direct:foo")
|
||||
assert(event.typedActor === obj)
|
||||
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
|
||||
requestor ! ActorRegistered(consumer)
|
||||
assert(latch.await(5000, TimeUnit.MILLISECONDS))
|
||||
|
|
@ -67,7 +86,7 @@ class PublishRequestorTest extends JUnitSuite {
|
|||
Some(ConsumerRegistered(consumer, "mock:test", consumer.uuid, false)))
|
||||
}
|
||||
|
||||
@Test def shouldReceiveConsumerUnregisteredEvent = {
|
||||
@Test def shouldReceiveOneConsumerUnregisteredEvent = {
|
||||
val latch = (publisher !! SetExpectedTestMessageCount(1)).as[CountDownLatch].get
|
||||
requestor ! ActorUnregistered(consumer)
|
||||
assert(latch.await(5000, TimeUnit.MILLISECONDS))
|
||||
|
|
|
|||
|
|
@ -2,6 +2,8 @@ package se.scalablesolutions.akka.camel.support
|
|||
|
||||
import java.util.concurrent.{TimeUnit, CountDownLatch}
|
||||
|
||||
import collection.mutable.Buffer
|
||||
|
||||
import se.scalablesolutions.akka.camel.Message
|
||||
import se.scalablesolutions.akka.actor.Actor
|
||||
|
||||
|
|
@ -54,12 +56,13 @@ trait Respond { this: Actor =>
|
|||
}
|
||||
|
||||
trait Retain { this: Actor =>
|
||||
var message: Any = _
|
||||
val messages = Buffer[Any]()
|
||||
|
||||
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 => {
|
||||
message = msg
|
||||
messages += msg
|
||||
msg
|
||||
}
|
||||
}
|
||||
|
|
@ -73,3 +76,6 @@ trait Noop { this: Actor =>
|
|||
|
||||
case class SetExpectedMessageCount(num: Int)
|
||||
case class GetRetainedMessage()
|
||||
case class GetRetainedMessages(p: Any => Boolean) {
|
||||
def this() = this(_ => true)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue