public FEELFnResult<Boolean> invoke(@ParameterName("input") String input, @ParameterName("pattern") String pattern) { return invoke( input, pattern, null ); }
@Before public void setUp() { matchesFunction = new MatchesFunction(); }
public FEELFnResult<Boolean> invoke(@ParameterName("input") String input, @ParameterName("pattern") String pattern, @ParameterName("flags") String flags) { if ( input == null ) { return FEELFnResult.ofError( new InvalidParametersEvent( Severity.ERROR, "input", "cannot be null" ) ); } if ( pattern == null ) { return FEELFnResult.ofError( new InvalidParametersEvent( Severity.ERROR, "pattern", "cannot be null" ) ); } try { int f = processFlags( flags ); Pattern p = Pattern.compile( pattern, f ); Matcher m = p.matcher( input ); return FEELFnResult.ofResult( m.find() ); } catch ( PatternSyntaxException e ) { return FEELFnResult.ofError( new InvalidParametersEvent( Severity.ERROR, "pattern", "is invalid and can not be compiled", e ) ); } catch ( IllegalArgumentException t ) { return FEELFnResult.ofError( new InvalidParametersEvent( Severity.ERROR, "flags", "contains unknown flags", t ) ); } catch ( Throwable t) { return FEELFnResult.ofError( new InvalidParametersEvent( Severity.ERROR, "pattern", "is invalid and can not be compiled", t ) ); } }
@Test public void invokeNull() { FunctionTestUtil.assertResultError(matchesFunction.invoke((String) null, null), InvalidParametersEvent.class); FunctionTestUtil.assertResultError(matchesFunction.invoke(null, "test"), InvalidParametersEvent.class); FunctionTestUtil.assertResultError(matchesFunction.invoke("test", null), InvalidParametersEvent.class); }
@Test public void invokeWithAllFlags() { FunctionTestUtil.assertResult(matchesFunction.invoke("fo\nbar", "Fo.^bar", "smi"), true); } }
@Test public void invokeWithFlagDotAll() { FunctionTestUtil.assertResult(matchesFunction.invoke("fo\nbar", "fo.bar", "s"), true); }
@Test public void invokeWithFlagCaseInsensitive() { FunctionTestUtil.assertResult(matchesFunction.invoke("foobar", "^Fo*bar", "i"), true); }
@Test public void invokeUnsupportedFlags() { FunctionTestUtil.assertResult(matchesFunction.invoke("foobar", "fo.bar", "g"), true); }
@Test public void invokeWithFlagMultiline() { FunctionTestUtil.assertResult(matchesFunction.invoke("fo\nbar", "^bar", "m"), true); }