Closes #398 Fix broken tests in akka-camel module

This commit is contained in:
Martin Krasser 2010-08-18 10:28:26 +02:00
parent b6c782e6f9
commit dadbee5f13
3 changed files with 45 additions and 60 deletions

View file

@ -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)
}
*/

View file

@ -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))

View file

@ -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)
}