[
https://jira.codehaus.org/browse/JBEHAVE-583?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Mauro Talevi updated JBEHAVE-583:
---------------------------------
Fix Version/s: 3.5
Thanks, added test cases.
> Of multiple exclusion meta filters only one is evaluated
> --------------------------------------------------------
>
> Key: JBEHAVE-583
> URL: https://jira.codehaus.org/browse/JBEHAVE-583
> Project: JBehave
> Issue Type: Bug
> Components: Core
> Affects Versions: 3.4.5
> Reporter: Dennis Homann
> Fix For: 3.5
>
> Attachments: MetaFilterReproducerTest.java
>
>
> Assuming meta info
> {noformat}
> Meta:
> @environment all
> @skip
> {noformat}
> the following filter may not exclude the scenario, although it should:
> {noformat}
> -environment preview -skip
> {noformat}
> Method {{match}} in {{MetaFilter}} returns immediately when one filter
> expression does not match. If "environment" is tested before "skip",
> {{match}} will return {{false}}, and scenario will not be excluded. The logic
> should be changed such that {{match}} will return {{true}}, iff any exclusion
> filter matches.
> The actual order of evaluation depends on the order of property names
> returned by #getPropertyNames, which appears to be alphabetical.
> {noformat}
> private boolean match(Properties properties, Meta meta) {
> for (Object key : properties.keySet()) {
> String property = (String) properties.get(key);
> for (String metaName : meta.getPropertyNames()) {
> if (key.equals(metaName)) {
> String value = meta.getProperty(metaName);
> if (StringUtils.isBlank(value)) {
> return true;
> } else if (property.contains("*")) {
> return value.matches(property.replace("*", ".*"));
> }
> return properties.get(key).equals(value);
> }
> }
> }
> return false;
> }
> {noformat}
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email