blob: e06d8d7c804a15f828f1d7ac1d88bcb1b6f76dd5 [file] [log] [blame]
package groovy.jmx.builder.vm5
import javax.management.MBeanServer
import groovy.jmx.builder.JmxBuilder
public class JmxEmitterFactoryTest extends GroovyTestCase {
def builder
MBeanServer server
void setUp() {
server = javax.management.MBeanServerFactory.createMBeanServer()
builder = new JmxBuilder(server)
}
void testSimpleEmitterSetup() {
def emitter = builder.emitter()
assert emitter
assert emitter.Event == "jmx.builder.event.emitter"
def seq = emitter.send("Hello")
assert seq > 0
seq = emitter.send("World")
assert seq > 1
}
void testEmitterWithImplicitListeners() {
def emitter = builder.emitter(name: "jmx.builder:type=Emitter")
assert emitter
def eventTrap = 0
builder.listener(from: "jmx.builder:type=Emitter", call: {event ->
eventTrap = eventTrap + 1
})
def seq = emitter.send("Hello World")
Thread.currentThread().sleep(300)
assert eventTrap == 1
shouldFail {
emitter.send("Hello World")
Thread.currentThread().sleep(300)
assert eventTrap == 1
}
}
void testEmitterWithExplicitListeners() {
def count = 0
def data
def emitter = builder.emitter(name: "jmx.builder:type=Emitter")
assert emitter
def beans = builder.export {
bean(target: new MockManagedObject(), name: "jmx.builder:type=Listner",
listeners: [
"emitter": [
from: "jmx.builder:type=Emitter",
call: {e ->
count = count + 1
data = e.data
}
]
])
}
assert beans[0]
long seq = emitter.send("Hello|World")
Thread.currentThread().sleep(300)
assert count == 1
assert data == "Hello|World"
emitter.send("World Order")
shouldFail {
assert count != 2
}
shouldFail {
assert data == "Hello|World"
}
}
}