/** * {@inheritDoc} */ @Override public String[] getStringValues(InvocationSequenceData invocSequence, ICachedDataService cachedDataService) { if (InvocationSequenceDataHelper.hasHttpTimerData(invocSequence)) { HttpTimerData httpData = (HttpTimerData) invocSequence.getTimerData(); if (null != httpData.getParameters()) { String[] result = httpData.getParameters().get(this.getParameterName()); return null == result ? new String[0] : result; } } return new String[0]; }
@Test public void noRequiredHttpParameter() { Mockito.doReturn(httpTimerData).when(invocationSeuence).getTimerData(); Map<String, String[]> parameterMap = new HashMap<>(); parameterMap.put(PARAMETER_NAME_1, new String[] { VALUE_A, VALUE_B }); Mockito.doReturn(parameterMap).when(httpTimerData).getParameters(); valueSource.setParameterName(PARAMETER_NAME_2); String[] values = valueSource.getStringValues(invocationSeuence, cachedDataService); assertThat(values, is(notNullValue())); assertThat(values.length, is(equalTo(0))); } }
@Test public void noHttpParameter() { Mockito.doReturn(httpTimerData).when(invocationSeuence).getTimerData(); Mockito.doReturn(new HashMap<>()).when(httpTimerData).getParameters(); valueSource.setParameterName(PARAMETER_NAME_2); String[] values = valueSource.getStringValues(invocationSeuence, cachedDataService); assertThat(values, is(notNullValue())); assertThat(values.length, is(equalTo(0))); }
@Test public void retrieveSecondParameter() { Mockito.doReturn(httpTimerData).when(invocationSeuence).getTimerData(); Map<String, String[]> parameterMap = new HashMap<>(); parameterMap.put(PARAMETER_NAME_1, new String[] { VALUE_A, VALUE_B }); parameterMap.put(PARAMETER_NAME_2, new String[] { VALUE_C, VALUE_D }); Mockito.doReturn(parameterMap).when(httpTimerData).getParameters(); valueSource.setParameterName(PARAMETER_NAME_2); String[] values = valueSource.getStringValues(invocationSeuence, cachedDataService); assertThat(values, hasItemInArray(VALUE_C)); assertThat(values, hasItemInArray(VALUE_D)); assertThat(values, not(hasItemInArray(VALUE_A))); assertThat(values, not(hasItemInArray(VALUE_B))); }
@Test public void retrieveFirstParameter() { Mockito.doReturn(httpTimerData).when(invocationSeuence).getTimerData(); Map<String, String[]> parameterMap = new HashMap<>(); parameterMap.put(PARAMETER_NAME_1, new String[] { VALUE_A, VALUE_B }); parameterMap.put(PARAMETER_NAME_2, new String[] { VALUE_C, VALUE_D }); Mockito.doReturn(parameterMap).when(httpTimerData).getParameters(); valueSource.setParameterName(PARAMETER_NAME_1); String[] values = valueSource.getStringValues(invocationSeuence, cachedDataService); assertThat(values, hasItemInArray(VALUE_A)); assertThat(values, hasItemInArray(VALUE_B)); assertThat(values, not(hasItemInArray(VALUE_C))); assertThat(values, not(hasItemInArray(VALUE_D))); }
@Override public boolean matches(Object object) { if (!HttpTimerData.class.isInstance(object)) { return false; } HttpTimerData other = (HttpTimerData) object; assertThat(data.getHttpInfo().getUri(), is(equalTo(other.getHttpInfo().getUri()))); assertThat(data.getHttpInfo().getRequestMethod(), is(equalTo(other.getHttpInfo().getRequestMethod()))); assertThat(data.getAttributes(), is(equalTo(other.getAttributes()))); assertThat(data.getHeaders(), is(equalTo(other.getHeaders()))); assertThat(data.getSessionAttributes(), is(equalTo(other.getSessionAttributes()))); assertThat(data.getParameters(), is(equalTo(other.getParameters()))); assertThat(data.isCharting(), is(equalTo(other.isCharting()))); assertThat(data.getHttpResponseStatus(), is(equalTo(other.getHttpResponseStatus()))); return true; } }
if (MapUtils.isNotEmpty(httpTimerData.getParameters())) { List<String[]> rows = new ArrayList<>(); for (Map.Entry<String, String[]> entry : httpTimerData.getParameters().entrySet()) { rows.add(new String[] { entry.getKey(), Arrays.toString(entry.getValue()) });
assertThat(result.getCpuDuration(), is(equalTo(30d))); assertThat(result.getAttributes(), is(nullValue())); assertThat(result.getParameters(), is(nullValue()));