package ch.qos.logback.access.spi;
import static org.junit.Assert.*;
import java.util.Map;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import ch.qos.logback.access.dummy.DummyAccessEventBuilder;
import ch.qos.logback.access.dummy.DummyRequest;
import ch.qos.logback.core.testUtil.RandomUtil;
public class AccessEventTest {
int diff = RandomUtil.getPositiveInt();
@Before
public void setUp() throws Exception {
}
@After
public void tearDown() throws Exception {
}
// See LOGBACK-1189
@Test
public void callingPrepareForDeferredProcessingShouldBeIdempotent() {
String key = "key-"+diff;
String val = "val-"+diff;
IAccessEvent ae = DummyAccessEventBuilder.buildNewAccessEvent();
DummyRequest request = (DummyRequest) ae.getRequest();
Map<String, String> headersMap = request.getHeaders();
Map<String, String[]> parametersMap = request.getParameterMap();
headersMap.put(key, val);
request.setAttribute(key, val);
parametersMap.put(key, new String[] {val});
ae.prepareForDeferredProcessing();
assertEquals(val, ae.getAttribute(key));
assertEquals(val, ae.getRequestHeader(key));
assertEquals(val, ae.getRequestParameter(key)[0]);
request.setAttribute(key, "change");
headersMap.put(key, "change");
parametersMap.put(key, new String[] {"change"});
ae.prepareForDeferredProcessing();
assertEquals(val, ae.getAttribute(key));
assertEquals(val, ae.getRequestHeader(key));
assertEquals(val, ae.getRequestParameter(key)[0]);
}
}