8489f89891d6ccc16c16c5772bb56d83f74a77e5
[xmlrouter] / impl / src / test / java / org / wamblee / xmlrouter / impl / TransformationsTest.java
1 package org.wamblee.xmlrouter.impl;
2
3 import static junit.framework.Assert.*;
4
5 import java.util.Collection;
6
7 import javax.xml.transform.dom.DOMSource;
8
9 import org.junit.Before;
10 import org.junit.Test;
11 import org.wamblee.xmlrouter.common.Id;
12 import org.wamblee.xmlrouter.config.Transformation;
13
14 public class TransformationsTest {
15
16     public static class MyTransformation implements Transformation {
17
18         private String from;
19         private String to;
20
21         public MyTransformation(String aFrom, String aTo) {
22             from = aFrom;
23             to = aTo;
24         }
25
26         @Override
27         public String getFromType() {
28             return from;
29         }
30
31         @Override
32         public String getToType() {
33             return to;
34         }
35
36         @Override
37         public DOMSource transform(DOMSource aDocument) {
38             return null;
39         }
40
41         @Override
42         public String toString() {
43             return from + "->" + to;
44         }
45     }
46
47     private Transformations transformations;
48
49     @Before
50     public void setUp() {
51         transformations = new Transformations();
52     }
53
54     @Test
55     public void testOneTransformation() {
56         Id<Transformation> seqno = transformations
57             .addTransformation(new MyTransformation("A", "B"));
58         System.out.println(transformations.toString());
59         TransformationPath path = transformations.getPath("A", "B");
60         assertEquals(1, path.size());
61         assertNull(transformations.getPath("B", "A"));
62
63         assertEquals(0, transformations.getPath("A", "A").size());
64         assertEquals(0, transformations.getPath("B", "B").size());
65
66         Collection<String> possibleTargets = transformations
67             .getPossibleTargetTypes("A");
68         assertEquals(2, possibleTargets.size());
69         assertTrue(possibleTargets.contains("A"));
70         assertTrue(possibleTargets.contains("B"));
71     }
72
73     @Test
74     public void testMultipleTransformations() {
75         Id<Transformation> seqno1 = transformations
76             .addTransformation(new MyTransformation("A", "B"));
77         Id<Transformation> seqno2 = transformations
78             .addTransformation(new MyTransformation("B", "C"));
79         Id<Transformation> seqno3 = transformations
80             .addTransformation(new MyTransformation("C", "A"));
81         System.out.println(transformations);
82         assertEquals(2, transformations.getPath("C", "B").size());
83         assertFalse(seqno1.equals(seqno2));
84         assertFalse(seqno2.equals(seqno3));
85         assertFalse(seqno1.equals(seqno3));
86
87         transformations.removeTransformation(seqno1);
88         assertNull(transformations.getPath("C", "B"));
89     }
90
91     @Test
92     public void testWithoutTransformations() {
93         Collection<String> res = transformations.getPossibleTargetTypes("a");
94         assertEquals(1, res.size());
95
96         TransformationPath path = transformations.getPath("A", "A");
97         assertNotNull(path);
98         assertEquals(0, path.size());
99
100         assertNull(transformations.getPath("B", "C"));
101     }
102 }