@Override protected void executeSpecificInitialization(StringMatchingExpression expression) { if (isValidExpression(expression)) { super.executeSpecificInitialization(expression); methodSignatureText.setText(getStringValueSource().getMethodSignature()); parameterIndexSpinner.setSelection(getStringValueSource().getParameterIndex()); } }
@Test public void methodIdentNull() { Mockito.doReturn(PARAMETER).when(parameterContentData).getContent(); Mockito.doReturn(INDEX).when(parameterContentData).getSignaturePosition(); Mockito.doReturn(1L).when(invocationSeuence).getMethodIdent(); Mockito.doReturn(null).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))); }
return new HostValueSource(); case METHOD_PARAMETER: return new MethodParameterValueSource(parameterIndexSpinner.getSelection(), methodSignatureText.getText()); case METHOD_SIGNATURE: return new MethodSignatureValueSource();
/** * Validates the contents of the passed {@link StringMatchingExpression} without the need to * create corresponding editing controls. * * @param expression * {@link StringMatchingExpression} to validate * @return a set of {@link ValidationState} instances. */ public static Set<ValidationState> validate(StringMatchingExpression expression) { Set<ValidationState> resultSet = new HashSet<>(); MethodParameterValueSource methodParameterValueSource = (MethodParameterValueSource) expression.getStringValueSource(); FqnMethodSignatureValidator methodSignatureValidator = new FqnMethodSignatureValidator(false); String errorMessage = methodSignatureValidator.isValid(methodParameterValueSource.getMethodSignature()); if (null != errorMessage) { resultSet.add(new ValidationState(METHOD_PARAMETER_NAME_VALIDATOR_ID, false, errorMessage)); } resultSet.addAll(AbstractStringMatchingRuleEditingElement.validate(expression, SOURCE_NAME)); return resultSet; }
break; case METHOD_PARAMETER: expression.setStringValueSource(new MethodParameterValueSource(0, "")); break; case HTTP_REQUEST_METHOD:
@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))); }
case METHOD_PARAMETER: createMethodParameterControls(); String methodSignature = ((MethodParameterValueSource) nameExtractionExpression.getStringValueSource()).getMethodSignature(); if (null == methodSignature) { methodSignature = ""; parameterIndexSpinner.setSelection(((MethodParameterValueSource) nameExtractionExpression.getStringValueSource()).getParameterIndex()); break; case HTTP_URL:
@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)); }