/**
* Copyright (c) 2012 BMW Car IT and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*/
package org.jnario.jnario.tests.unit.doc;
import java.util.Arrays;
import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;
import org.jnario.doc.Filter;
import org.jnario.doc.RegexFilter;
import org.jnario.jnario.tests.unit.doc.RegexFilterSpecFilteringExamples;
import org.jnario.lib.Assert;
import org.jnario.lib.Each;
import org.jnario.lib.ExampleTable;
import org.jnario.lib.Should;
import org.jnario.runner.ExampleGroupRunner;
import org.jnario.runner.Named;
import org.jnario.runner.Order;
import org.junit.Test;
import org.junit.runner.RunWith;
@Named("RegexFilter")
@RunWith(ExampleGroupRunner.class)
@SuppressWarnings("all")
public class RegexFilterSpec {
public ExampleTable<RegexFilterSpecFilteringExamples> _initRegexFilterSpecFilteringExamples() {
return ExampleTable.create("filteringExamples",
Arrays.asList("string", "regex", "result"),
new RegexFilterSpecFilteringExamples( Arrays.asList("\"hello\"", "\"e\"", "\"hllo\""), _initRegexFilterSpecFilteringExamplesCell0(), _initRegexFilterSpecFilteringExamplesCell1(), _initRegexFilterSpecFilteringExamplesCell2()),
new RegexFilterSpecFilteringExamples( Arrays.asList("\"aabbaa\"", "\"b*\"", "\"aaaa\""), _initRegexFilterSpecFilteringExamplesCell3(), _initRegexFilterSpecFilteringExamplesCell4(), _initRegexFilterSpecFilteringExamplesCell5()),
new RegexFilterSpecFilteringExamples( Arrays.asList("\"aa.aa\"", "\"\\\\.\"", "\"aaaa\""), _initRegexFilterSpecFilteringExamplesCell6(), _initRegexFilterSpecFilteringExamplesCell7(), _initRegexFilterSpecFilteringExamplesCell8()),
new RegexFilterSpecFilteringExamples( Arrays.asList("\"aa \'\'\'some code\'\'\' aa\"", "\"aa|\'\'\'\"", "\" some code \""), _initRegexFilterSpecFilteringExamplesCell9(), _initRegexFilterSpecFilteringExamplesCell10(), _initRegexFilterSpecFilteringExamplesCell11()),
new RegexFilterSpecFilteringExamples( Arrays.asList("\"\\n\'\'\'.methodCall\"", "\"\\\\.methodCall\"", "\"\\n\'\'\'\""), _initRegexFilterSpecFilteringExamplesCell12(), _initRegexFilterSpecFilteringExamplesCell13(), _initRegexFilterSpecFilteringExamplesCell14())
);
}
protected ExampleTable<RegexFilterSpecFilteringExamples> filteringExamples = _initRegexFilterSpecFilteringExamples();
public String _initRegexFilterSpecFilteringExamplesCell0() {
return "hello";
}
public String _initRegexFilterSpecFilteringExamplesCell1() {
return "e";
}
public String _initRegexFilterSpecFilteringExamplesCell2() {
return "hllo";
}
public String _initRegexFilterSpecFilteringExamplesCell3() {
return "aabbaa";
}
public String _initRegexFilterSpecFilteringExamplesCell4() {
return "b*";
}
public String _initRegexFilterSpecFilteringExamplesCell5() {
return "aaaa";
}
public String _initRegexFilterSpecFilteringExamplesCell6() {
return "aa.aa";
}
public String _initRegexFilterSpecFilteringExamplesCell7() {
return "\\.";
}
public String _initRegexFilterSpecFilteringExamplesCell8() {
return "aaaa";
}
public String _initRegexFilterSpecFilteringExamplesCell9() {
return "aa \'\'\'some code\'\'\' aa";
}
public String _initRegexFilterSpecFilteringExamplesCell10() {
return "aa|\'\'\'";
}
public String _initRegexFilterSpecFilteringExamplesCell11() {
return " some code ";
}
public String _initRegexFilterSpecFilteringExamplesCell12() {
return "\n\'\'\'.methodCall";
}
public String _initRegexFilterSpecFilteringExamplesCell13() {
return "\\.methodCall";
}
public String _initRegexFilterSpecFilteringExamplesCell14() {
return "\n\'\'\'";
}
@Test
@Named("removes all matched elements")
@Order(1)
public void _removesAllMatchedElements() throws Exception {
final Procedure1<RegexFilterSpecFilteringExamples> _function = new Procedure1<RegexFilterSpecFilteringExamples>() {
public void apply(final RegexFilterSpecFilteringExamples it) {
String _regex = it.getRegex();
final Filter filter = RegexFilter.create(_regex);
String _string = it.getString();
String _apply = filter.apply(_string);
String _result = it.getResult();
Assert.assertTrue("\nExpected filter.apply(string) => result but"
+ "\n filter.apply(string) is " + new org.hamcrest.StringDescription().appendValue(_apply).toString()
+ "\n filter is " + new org.hamcrest.StringDescription().appendValue(filter).toString()
+ "\n string is " + new org.hamcrest.StringDescription().appendValue(_string).toString()
+ "\n result is " + new org.hamcrest.StringDescription().appendValue(_result).toString() + "\n", Should.<String>operator_doubleArrow(_apply, _result));
}
};
Each.<RegexFilterSpecFilteringExamples>forEach(this.filteringExamples, _function);
}
}