package pl.matisoft.soy.global.runtime.resolvers;
import com.google.template.soy.data.SoyMapData;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.runners.MockitoJUnitRunner;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Enumeration;
import java.util.Vector;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
/**
* Created with IntelliJ IDEA.
* User: mati
* Date: 01/11/2013
* Time: 16:53
*/
@RunWith(MockitoJUnitRunner.class)
public class RequestParametersDataResolverTest {
private RequestParametersDataResolver requestParametersResolver = new RequestParametersDataResolver();
@Test
public void resolveRequestParameters() throws Exception {
final SoyMapData soyMapData = new SoyMapData();
final Vector<String> names = new Vector<String>();
names.add("name1");
names.add("name2");
final Vector<String> values = new Vector<String>();
values.add("value1");
values.add("value2");
final HttpServletRequest request = mock(HttpServletRequest.class);
final HttpServletResponse response = mock(HttpServletResponse.class);
final Enumeration e = mock(Enumeration.class);
when(e.hasMoreElements()).thenReturn(false);
when(request.getParameterNames()).thenReturn(names.elements());
when(request.getHeaderNames()).thenReturn(e);
when(request.getParameter("name1")).thenReturn(values.get(0));
when(request.getParameter("name2")).thenReturn(values.get(1));
when(request.getCookies()).thenReturn(new Cookie[]{});
requestParametersResolver.resolveData(request, response, null, soyMapData);
Assert.assertEquals("should not be value1", "value1", soyMapData.get("_request.parameter.name1").stringValue());
Assert.assertEquals("should not be value2", "value2", soyMapData.get("_request.parameter.name2").stringValue());
}
}