Skip to content

Commit acfa8f2

Browse files
committed
#259: Add test for parsing different scripts using DynamicTest.
1 parent fe924be commit acfa8f2

1 file changed

Lines changed: 24 additions & 0 deletions

File tree

src/test/java/org/xembly/XemblerTest.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import com.jcabi.xml.XPathContext;
1212
import java.util.Collection;
1313
import java.util.Map;
14+
import java.util.stream.Stream;
1415
import javax.xml.parsers.DocumentBuilderFactory;
1516
import net.jqwik.api.ForAll;
1617
import net.jqwik.api.Property;
@@ -25,7 +26,9 @@
2526
import org.hamcrest.MatcherAssert;
2627
import org.hamcrest.Matchers;
2728
import org.hamcrest.core.AllOf;
29+
import org.junit.jupiter.api.DynamicTest;
2830
import org.junit.jupiter.api.Test;
31+
import org.junit.jupiter.api.TestFactory;
2932
import org.junit.jupiter.params.ParameterizedTest;
3033
import org.w3c.dom.Document;
3134
import org.w3c.dom.Node;
@@ -39,6 +42,27 @@
3942
@SuppressWarnings("PMD.TooManyMethods")
4043
final class XemblerTest {
4144

45+
@TestFactory
46+
Stream<DynamicTest> parsesDifferentScripts() {
47+
final String[] scripts = {
48+
"ADD 'a'; ADD 'b'; ADD 'c'; SET 'привет';",
49+
"ADD \"a\"; ADD \"b\"; ADD \"c\"; SET \"привет\";",
50+
"ADD 'x'; ATTR 'y', 'z'; PI 'foo', 'bar';",
51+
};
52+
return Stream.of(scripts).map(
53+
script -> DynamicTest.dynamicTest(
54+
script,
55+
() -> {
56+
final Document dom = DocumentBuilderFactory.newInstance()
57+
.newDocumentBuilder().newDocument();
58+
new Xembler(
59+
new Directives(script)
60+
).apply(dom);
61+
}
62+
)
63+
);
64+
}
65+
4266
@Test
4367
void printsNicely() throws Exception {
4468
final Document dom = DocumentBuilderFactory.newInstance()

0 commit comments

Comments
 (0)