Package org.stagemonitor.web.monitor

Source Code of org.stagemonitor.web.monitor.MonitoredHttpRequestTest

package org.stagemonitor.web.monitor;

import java.util.HashSet;

import org.junit.Before;
import org.junit.Test;
import org.springframework.mock.web.MockFilterChain;
import org.springframework.mock.web.MockHttpServletRequest;
import org.springframework.mock.web.MockHttpServletResponse;
import org.stagemonitor.core.MeasurementSession;
import org.stagemonitor.core.Stagemonitor;
import org.stagemonitor.requestmonitor.RequestMonitor;
import org.stagemonitor.web.monitor.filter.StatusExposingByteCountingServletResponse;

import static java.util.Arrays.asList;
import static junit.framework.Assert.assertNull;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;

public class MonitoredHttpRequestTest {

  private MonitoredHttpRequest monitoredHttpRequest;

  @Before
  public void setUp() throws Exception {
    Stagemonitor.startMonitoring(new MeasurementSession("testApp", "testHost", "testInstance"));
    final MockHttpServletRequest request = new MockHttpServletRequest("GET", "/test.js");
    request.addParameter("foo", "bar");
    request.addParameter("bla", "blubb");
    request.addParameter("pwd", "secret");
    request.addParameter("creditCard", "123456789");
    request.addHeader("Cookie", "foobar");
    request.addHeader("accept", "application/json");

    monitoredHttpRequest = new MonitoredHttpRequest(
        request,
        new StatusExposingByteCountingServletResponse(new MockHttpServletResponse()),
        new MockFilterChain(),
        Stagemonitor.getConfiguration());
  }

  @Test
  public void testGetRequestName() throws Exception {
    assertEquals("GET *.js", monitoredHttpRequest.getRequestName());
    testGetInstanceName();
  }

  @Test
  public void testGetInstanceName() {
    assertEquals("localhost", monitoredHttpRequest.getInstanceName());
  }

  @Test
  public void testIsMonitorForwardedExecutions() throws Exception {
    assertEquals(true, monitoredHttpRequest.isMonitorForwardedExecutions());

  }

  @Test
  public void testCreateRequestTrace() throws Exception {
    final HttpRequestTrace requestTrace = monitoredHttpRequest.createRequestTrace();
    assertNull(requestTrace.getParameter());
    assertEquals("/test.js", requestTrace.getUrl());
    assertEquals("GET *.js", requestTrace.getName());
    assertEquals("GET", requestTrace.getMethod());
    assertEquals("GET", requestTrace.getMethod());
    assertNotNull(requestTrace.getId());
    assertNotNull(requestTrace.getTimestamp());
    assertTrue("Timestamp should be in format yyyy-MM-dd'T'HH:mm:ss.SSSZ", requestTrace.getTimestamp().contains("T"));

    assertEquals("testApp", requestTrace.getApplication());
    assertEquals("testHost", requestTrace.getHost());
    assertEquals("testInstance", requestTrace.getInstance());

    assertEquals(new HashSet<String>(asList("accept")), requestTrace.getHeaders().keySet());
    assertFalse(requestTrace.getHeaders().containsKey("cookie"));
    assertFalse(requestTrace.getHeaders().containsKey("Cookie"));

    final RequestMonitor.RequestInformation requestInformation = mock(RequestMonitor.RequestInformation.class);
    when(requestInformation.getRequestTrace()).thenReturn(requestTrace);
    monitoredHttpRequest.onPostExecute(requestInformation);
    assertEquals("?foo=bar&bla=blubb&pwd=XXXX&creditCard=XXXX", requestTrace.getParameter());

  }
}
TOP

Related Classes of org.stagemonitor.web.monitor.MonitoredHttpRequestTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.