File tree Expand file tree Collapse file tree 1 file changed +59
-0
lines changed Expand file tree Collapse file tree 1 file changed +59
-0
lines changed Original file line number Diff line number Diff line change 1+ package scala .xml
2+
3+ import scala .xml .transform ._
4+
5+ import org .junit .Test
6+ import org .junit .Assert .assertTrue
7+ import org .junit .Assert .assertEquals
8+
9+ class Transformers {
10+
11+
12+ def transformer = new RuleTransformer (new RewriteRule {
13+ override def transform (n : Node ): NodeSeq = n match {
14+ case <t >{ _* }</t > => <q />
15+ case n => n
16+ }
17+ })
18+
19+ @ Test
20+ def transform = // SI-2124
21+ assertEquals(transformer.transform(<p ><lost /><t ><s ><r ></r ></s ></t ></p >),
22+ <p ><lost /><q /></p >)
23+
24+ @ Test
25+ def transformNamespaced = // SI-2125
26+ assertEquals(transformer.transform(<xml : group ><p ><lost /><t ><s ><r ></r ></s ></t ></p ></xml : group >),
27+ Group (<p ><lost /><q /></p >))
28+
29+ @ Test
30+ def rewriteRule = { // SI-2276
31+ val inputXml : Node =
32+ <root >
33+ <subnode >
34+ <version >1 </version >
35+ </subnode >
36+ <contents >
37+ <version >1 </version >
38+ </contents >
39+ </root >
40+
41+ object t1 extends RewriteRule {
42+ override def transform (n : Node ): Seq [Node ] = n match {
43+ case <version >{ x }</version > if x.toString.toInt < 4 => <version >{ x.toString.toInt + 1 }</version >
44+ case other => other
45+ }
46+ }
47+
48+ val ruleTransformer = new RuleTransformer (t1)
49+ JUnitAssertsForXML .assertEquals(ruleTransformer(inputXml).toString, // TODO: why do we need toString?
50+ <root >
51+ <subnode >
52+ <version >2 </version >
53+ </subnode >
54+ <contents >
55+ <version >2 </version >
56+ </contents >
57+ </root >)
58+ }
59+ }
You can’t perform that action at this time.
0 commit comments