package org.jooby.internal.mvc;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import java.lang.reflect.Parameter;
import javax.inject.Named;
import org.jooby.mvc.Header;
import org.junit.Test;
public class RequestParamTest {
public void javax(@Named("javax") final String s) {
}
public void ejavax(@Named final String s) {
}
public void guice(@com.google.inject.name.Named("guice") final String s) {
}
public void header(@Header("H-1") final String s) {
}
public void namedheader(@Named("x") @Header final String s) {
}
public void eheader(@Header final String s) {
}
@Test
public void name() throws Exception {
assertEquals("javax", RequestParam.nameFor(param("javax")));
assertTrue(RequestParam.nameFor(param("ejavax")) == null
|| "s".equals(RequestParam.nameFor(param("ejavax"))));
assertEquals("guice", RequestParam.nameFor(param("guice")));
assertEquals("H-1", RequestParam.nameFor(param("header")));
assertEquals("x", RequestParam.nameFor(param("namedheader")));
assertTrue(RequestParam.nameFor(param("eheader")) == null
|| "s".equals(RequestParam.nameFor(param("eheader"))));
}
private Parameter param(final String name) throws Exception {
return RequestParamTest.class.getDeclaredMethod(name, String.class).getParameters()[0];
}
}