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