package br.com.caelum.vraptor.validator;
import static org.mockito.Matchers.any;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import java.lang.reflect.Method;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import br.com.caelum.vraptor.Result;
import br.com.caelum.vraptor.core.MethodInfo;
import br.com.caelum.vraptor.http.ParameterNameProvider;
import br.com.caelum.vraptor.resource.ResourceMethod;
public class ReplicatorOutjectorTest {
private @Mock ParameterNameProvider provider;
private @Mock MethodInfo method;
private @Mock Result result;
private @Mock ResourceMethod resourceMethod;
private Outjector outjector;
@Before
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
when(method.getResourceMethod()).thenReturn(resourceMethod);
outjector = new ReplicatorOutjector(result, method, provider);
}
@Test
public void shouldReplicateMethodParametersToNextRequest() throws Exception {
when(provider.parameterNamesFor(any(Method.class))).thenReturn(new String[] {"first", "second", "third"});
when(method.getParameters()).thenReturn(new Object[] {1, 2.0, 3l});
outjector.outjectRequestMap();
verify(result).include("first", 1);
verify(result).include("second", 2.0);
verify(result).include("third", 3l);
}
}