package com.maxifier.guice.mbean;
import org.testng.annotations.Test;
import static org.testng.Assert.assertTrue;
/**
* Created by: Aleksey Didik
* Date: 5/26/11
* Time: 9:55 PM
* <p/>
* Copyright (c) 1999-2011 Maxifier Ltd. All Rights Reserved.
* Code proprietary and confidential.
* Use is subject to license terms.
*
* @author Aleksey Didik
*/
public class CGLIBMBeanGeneratorTest {
@Test
public void testNameCompliance() throws Exception {
CGLIBMBeanGenerator cglibmBeanGenerator = new CGLIBMBeanGenerator();
Foo mbeanPretender = new Foo(false
);
Object mbean = cglibmBeanGenerator.makeMBean(mbeanPretender);
MBeanManagerImpl.checkCompliantion(mbean.getClass());
}
@Test
public void testMethodDelegation() throws Exception {
CGLIBMBeanGenerator cglibmBeanGenerator = new CGLIBMBeanGenerator();
Foo mbeanPretender = new Foo(false);
Object mbean = cglibmBeanGenerator.makeMBean(mbeanPretender);
mbean.getClass().getMethod("hello").invoke(mbean);
assertTrue(mbeanPretender.called, "mbeanPretender method have to be called");
}
public static class Foo {
boolean called;
public Foo(boolean called) {
this.called = called;
}
@MBeanMethod
public void hello() {
called = true;
}
}
}