/** * Checks if the invocation sequence data object itself contains parameters. * * @param data * the <code>InvocationSequenceData</code> object. * @return if this data object contains captured parameters. */ public static boolean hasCapturedParametersInInvocationSequence(InvocationSequenceData data) { return (null != data.getParameterContentData()) && !data.getParameterContentData().isEmpty(); }
if (CollectionUtils.isNotEmpty(data.getParameterContentData())) { for (ParameterContentData contentData : data.getParameterContentData()) { if (!parameterContents.contains(contentData)) { parameterContents.add(contentData);
@Test public void noCapturedParameters() { methodIdent = new MethodIdent(); methodIdent.setPackageName(PACKAGE); methodIdent.setClassName(CLASS); methodIdent.setMethodName(METHOD); Set<ParameterContentData> pContentDataSet = new HashSet<>(); Mockito.doReturn(PARAMETER).when(parameterContentData).getContent(); Mockito.doReturn(INDEX).when(parameterContentData).getSignaturePosition(); Mockito.doReturn(1L).when(invocationSeuence).getMethodIdent(); Mockito.doReturn(pContentDataSet).when(invocationSeuence).getParameterContentData(); Mockito.doReturn(methodIdent).when(cachedDataService).getMethodIdentForId(anyInt()); String methodSignature = PACKAGE + "." + CLASS + "." + METHOD + "()"; valueSource.setMethodSignature(methodSignature); valueSource.setParameterIndex(INDEX); String[] values = valueSource.getStringValues(invocationSeuence, cachedDataService); assertThat(values, is(notNullValue())); assertThat(values.length, is(equalTo(0))); }
@Test public void wrongMethodIdent() { methodIdent = new MethodIdent(); methodIdent.setPackageName("someWrongPackage"); methodIdent.setClassName(CLASS); methodIdent.setMethodName(METHOD); Set<ParameterContentData> pContentDataSet = new HashSet<>(); pContentDataSet.add(parameterContentData); Mockito.doReturn(PARAMETER).when(parameterContentData).getContent(); Mockito.doReturn(INDEX).when(parameterContentData).getSignaturePosition(); Mockito.doReturn(1L).when(invocationSeuence).getMethodIdent(); Mockito.doReturn(pContentDataSet).when(invocationSeuence).getParameterContentData(); Mockito.doReturn(methodIdent).when(cachedDataService).getMethodIdentForId(anyInt()); String methodSignature = PACKAGE + "." + CLASS + "." + METHOD + "()"; valueSource.setMethodSignature(methodSignature); valueSource.setParameterIndex(INDEX); String[] values = valueSource.getStringValues(invocationSeuence, cachedDataService); assertThat(values, is(notNullValue())); assertThat(values.length, is(equalTo(0))); }
@Test public void wrongCapturedParameters() { methodIdent = new MethodIdent(); methodIdent.setPackageName(PACKAGE); methodIdent.setClassName(CLASS); methodIdent.setMethodName(METHOD); Set<ParameterContentData> pContentDataSet = new HashSet<>(); pContentDataSet.add(parameterContentData); Mockito.doReturn(PARAMETER).when(parameterContentData).getContent(); Mockito.doReturn(INDEX).when(parameterContentData).getSignaturePosition(); Mockito.doReturn(1L).when(invocationSeuence).getMethodIdent(); Mockito.doReturn(pContentDataSet).when(invocationSeuence).getParameterContentData(); Mockito.doReturn(methodIdent).when(cachedDataService).getMethodIdentForId(anyInt()); String methodSignature = PACKAGE + "." + CLASS + "." + METHOD + "()"; valueSource.setMethodSignature(methodSignature); valueSource.setParameterIndex(INDEX + 1); String[] values = valueSource.getStringValues(invocationSeuence, cachedDataService); assertThat(values, is(notNullValue())); assertThat(values.length, is(equalTo(0))); } }
@Test public void retrieveParameter() { methodIdent = new MethodIdent(); methodIdent.setPackageName(PACKAGE); methodIdent.setClassName(CLASS); methodIdent.setMethodName(METHOD); Set<ParameterContentData> pContentDataSet = new HashSet<>(); pContentDataSet.add(parameterContentData); Mockito.doReturn(PARAMETER).when(parameterContentData).getContent(); Mockito.doReturn(INDEX).when(parameterContentData).getSignaturePosition(); Mockito.doReturn(1L).when(invocationSeuence).getMethodIdent(); Mockito.doReturn(pContentDataSet).when(invocationSeuence).getParameterContentData(); Mockito.doReturn(methodIdent).when(cachedDataService).getMethodIdentForId(anyInt()); String methodSignature = PACKAGE + "." + CLASS + "." + METHOD + "()"; valueSource.setMethodSignature(methodSignature); valueSource.setParameterIndex(INDEX); String[] values = valueSource.getStringValues(invocationSeuence, cachedDataService); assertThat(values, hasItemInArray(PARAMETER)); }
/** * Clones invocation sequence. This method returns new object exactly same as the original * object, but with out nested sequences set. * * @return Cloned invocation sequence. */ public InvocationSequenceData getClonedInvocationSequence() { InvocationSequenceData clone = new InvocationSequenceData(this.getTimeStamp(), this.getPlatformIdent(), this.getSensorTypeIdent(), this.getMethodIdent()); clone.setId(this.getId()); clone.setSpanIdent(this.getSpanIdent()); clone.setChildCount(this.getChildCount()); clone.setDuration(this.getDuration()); clone.setEnd(this.getEnd()); clone.setNestedSequences(Collections.<InvocationSequenceData> emptyList()); clone.setParameterContentData(this.getParameterContentData()); clone.setParentSequence(this.getParentSequence()); clone.setPosition(this.getPosition()); clone.setSqlStatementData(this.getSqlStatementData()); clone.setTimerData(this.getTimerData()); clone.setExceptionSensorDataObjects(this.getExceptionSensorDataObjects()); clone.setStart(this.getStart()); clone.setNestedSqlStatements(this.isNestedSqlStatements()); clone.setNestedExceptions(this.isNestedExceptions()); clone.setLoggingData(this.getLoggingData()); clone.setApplicationId(this.getApplicationId()); clone.setBusinessTransactionId(this.getBusinessTransactionId()); return clone; }