initial versions.
[xmlrouter] / impl / src / test / java / org / wamblee / xmlrouter / impl / RobustTransformationTest.java
1 package org.wamblee.xmlrouter.impl;
2
3 import static junit.framework.Assert.*;
4 import static org.mockito.Matchers.*;
5 import static org.mockito.Mockito.*;
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 RobustTransformationTest {
15     private Transformation transformation;
16     private Transformation robust;
17     private DOMSource source;
18     private DOMSource resSource;
19
20     @Before
21     public void setUp() {
22         transformation = mock(Transformation.class);
23         robust = new RobustTransformation(new Id<Transformation>(100),
24             transformation);
25         source = mock(DOMSource.class);
26         resSource = mock(DOMSource.class);
27     }
28
29     @Test
30     public void testNormalFlow() {
31         when(transformation.getFromType()).thenReturn("from");
32         when(transformation.getToType()).thenReturn("to");
33
34         when(transformation.transform(same(source))).thenReturn(resSource);
35
36         assertEquals("from", robust.getFromType());
37         assertEquals("to", robust.getToType());
38
39         assertSame(resSource, robust.transform(source));
40     }
41
42     @Test
43     public void testFromReturnsNull() {
44         when(transformation.getFromType()).thenReturn(null);
45         assertEquals(Constants.UNKNOWN_DOCUMENT_TYPE.toString(),
46             robust.getFromType());
47     }
48
49     @Test
50     public void testToReturnsNull() {
51         when(transformation.getToType()).thenReturn(null);
52         assertEquals(Constants.UNKNOWN_DOCUMENT_TYPE.toString(),
53             robust.getToType());
54     }
55
56     @Test
57     public void testFromThrowsException() {
58         doThrow(new RuntimeException("x")).when(transformation).getFromType();
59         assertEquals(Constants.UNKNOWN_DOCUMENT_TYPE.toString(),
60             robust.getFromType());
61     }
62
63     @Test
64     public void testToThrowsException() {
65         doThrow(new RuntimeException("x")).when(transformation).getFromType();
66         assertEquals(Constants.UNKNOWN_DOCUMENT_TYPE.toString(),
67             robust.getFromType());
68     }
69
70     @Test
71     public void testTransformReturnsNull() {
72         when(transformation.transform(any(DOMSource.class))).thenReturn(null);
73         assertEquals(null, robust.transform(source));
74     }
75
76     @Test
77     public void testTransformationThrowsException() {
78         doThrow(new RuntimeException("x")).when(transformation).transform(
79             any(DOMSource.class));
80         assertEquals(null, robust.transform(source));
81     }
82 }