package org.skywalking.apm.agent.core.plugin.interceptor.enhance;
import org.junit.Assert;
import org.junit.Test;
/**
* @author wusheng
*/
public class InvokeContextTest {
@Test
public void testConstructorInvokeContext() {
ConstructorInvokeContext context = new ConstructorInvokeContext(this, new Object[] {"obj1", 1});
Assert.assertEquals(this, context.inst());
Assert.assertEquals("obj1", context.allArguments()[0]);
Assert.assertEquals(1, context.allArguments()[1]);
}
@Test
public void testInstanceMethodInvokeContext() {
InstanceMethodInvokeContext context = new InstanceMethodInvokeContext(this, "methodA", new Object[] {"obj1", 1}, new Class<?>[] {String.class, Integer.class});
Assert.assertEquals(this, context.inst());
Assert.assertEquals("obj1", context.allArguments()[0]);
Assert.assertEquals(1, context.allArguments()[1]);
Assert.assertEquals("methodA", context.methodName());
Assert.assertEquals(String.class, context.argumentTypes()[0]);
Assert.assertEquals(Integer.class, context.argumentTypes()[1]);
}
@Test
public void testStaticMethodInvokeContext() {
StaticMethodInvokeContext context = new StaticMethodInvokeContext(InvokeContextTest.class, "methodA", new Object[] {"obj1", 1}, new Class<?>[] {String.class, Integer.class});
Assert.assertEquals(InvokeContextTest.class, context.claszz());
Assert.assertEquals("obj1", context.allArguments()[0]);
Assert.assertEquals(1, context.allArguments()[1]);
Assert.assertEquals("methodA", context.methodName());
Assert.assertEquals(String.class, context.argumentTypes()[0]);
Assert.assertEquals(Integer.class, context.argumentTypes()[1]);
}
}