package org.jooby.internal.mvc;
import static org.easymock.EasyMock.expect;
import static org.junit.Assert.assertEquals;
import java.lang.reflect.Method;
import java.lang.reflect.Parameter;
import org.jooby.Env;
import org.jooby.internal.RouteMetadata;
import org.jooby.test.MockUnit;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
@RunWith(PowerMockRunner.class)
@PrepareForTest(RequestParam.class )
public class RequestParamNameProviderTest {
public void dummy(final String dummyparam) {
}
@Test
public void asmname() throws Exception {
Method m = RequestParamNameProviderTest.class.getDeclaredMethod("dummy", String.class);
Parameter param = m.getParameters()[0];
new MockUnit(Env.class)
.expect(unit -> {
Env env = unit.get(Env.class);
expect(env.name()).andReturn("dev");
})
.expect(unit -> {
unit.mockStatic(RequestParam.class);
expect(RequestParam.nameFor(param)).andReturn(null);
})
.run(unit -> {
assertEquals("dummyparam",
new RequestParamNameProviderImpl(new RouteMetadata(unit.get(Env.class))).name(param));
});
}
}