SubstringAfterFunction extends BaseFEELFunction { public FEELFnResult<String> invoke(@ParameterName( "string" ) String string, @ParameterName( "match" ) String match) { if ( string == null ) { return FEELFnResult.ofError(new InvalidParametersEvent(Severity.ERROR, "string", "cannot be null")); } if ( match == null ) { return FEELFnResult.ofError(new InvalidParametersEvent(Severity.ERROR, "match", "cannot be null")); } int index = string.indexOf( match ); if( index >= 0 ) { return FEELFnResult.ofResult( string.substring( index+match.length() ) ); } else { return FEELFnResult.ofResult( "" ); } } SubstringAfterFunction(); FEELFnResult<String> invoke(@ParameterName( "string" ) String string, @ParameterName( "match" ) String match);  }
@Test public void invokeNull() { FunctionTestUtil.assertResultError(substringAfterFunction.invoke((String) null, null), InvalidParametersEvent.class); FunctionTestUtil.assertResultError(substringAfterFunction.invoke(null, "test"), InvalidParametersEvent.class); FunctionTestUtil.assertResultError(substringAfterFunction.invoke("test", null), InvalidParametersEvent.class); }
@Test public void invokeMatchExists() { FunctionTestUtil.assertResult(substringAfterFunction.invoke("foobar", "ob"), "ar"); FunctionTestUtil.assertResult(substringAfterFunction.invoke("foobar", "o"), "obar"); }
@Test public void invokeMatchNotExists() { FunctionTestUtil.assertResult(substringAfterFunction.invoke("foobar", "oook"), ""); }