1 |
|
|
2 |
|
|
3 |
|
|
4 |
|
|
5 |
|
|
6 |
|
|
7 |
|
|
8 |
|
|
9 |
|
|
10 |
|
|
11 |
|
|
12 |
|
|
13 |
|
|
14 |
|
|
15 |
|
|
16 |
|
|
17 |
|
|
18 |
|
|
19 |
|
|
20 |
|
|
21 |
|
|
22 |
|
|
23 |
|
|
24 |
|
|
25 |
|
|
26 |
|
|
27 |
|
|
28 |
|
|
29 |
|
|
30 |
|
|
31 |
|
|
32 |
|
|
33 |
|
|
34 |
|
package info.magnolia.module.templating; |
35 |
|
|
36 |
|
import info.magnolia.cms.core.Content; |
37 |
|
import info.magnolia.test.mock.MockUtil; |
38 |
|
import junit.framework.TestCase; |
39 |
|
|
40 |
|
import javax.jcr.RepositoryException; |
41 |
|
import java.io.IOException; |
42 |
|
import java.io.Writer; |
43 |
|
import java.util.Map; |
44 |
|
|
45 |
|
|
46 |
|
@author |
47 |
|
@version |
48 |
|
|
|
|
| 94.4% |
Uncovered Elements: 4 (72) |
Complexity: 11 |
Complexity Density: 0.17 |
|
49 |
|
public class ParagraphRendererManagerTest extends TestCase { |
50 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (6) |
Complexity: 1 |
Complexity Density: 0.17 |
1
PASS
|
|
51 |
1
|
public void testNotSpecifyingTheNamePropertyShouldMeanTheNodeNameIsUsedInstead() throws IOException, RepositoryException {... |
52 |
1
|
final Content node = getConfigNode(CONFIGNODE2, "/modules/test2/paragraph-renderers"); |
53 |
1
|
final ParagraphRendererManager prm = new ParagraphRendererManager(); |
54 |
1
|
prm.onRegister(node); |
55 |
1
|
assertEquals(2, prm.getRenderers().size()); |
56 |
1
|
assertNotNull(prm.getRenderer("gazonk")); |
57 |
1
|
assertNotNull(prm.getRenderer("baz")); |
58 |
|
} |
59 |
|
|
|
|
| 90% |
Uncovered Elements: 1 (10) |
Complexity: 2 |
Complexity Density: 0.2 |
1
PASS
|
|
60 |
1
|
public void testUnknownParagraphRendererNamesThrowsException() throws IOException, RepositoryException {... |
61 |
1
|
final Content node = getConfigNode(CONFIGNODE1, "/modules/test/paragraph-renderers"); |
62 |
1
|
final ParagraphRendererManager prm = new ParagraphRendererManager(); |
63 |
1
|
prm.onRegister(node); |
64 |
1
|
assertEquals(2, prm.getRenderers().size()); |
65 |
1
|
assertNotNull(prm.getRenderer("foo")); |
66 |
1
|
assertNotNull(prm.getRenderer("bar")); |
67 |
1
|
try { |
68 |
1
|
prm.getRenderer("gazonk"); |
69 |
0
|
fail("Should have thrown an IllegalArgumentException"); |
70 |
|
} catch (IllegalArgumentException e) { |
71 |
1
|
assertEquals("No paragraph renderer registered with name gazonk", e.getMessage()); |
72 |
|
} |
73 |
|
} |
74 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (18) |
Complexity: 1 |
Complexity Density: 0.06 |
1
PASS
|
|
75 |
1
|
public void testParagraphRenderersAreAddedProperly() throws IOException, RepositoryException {... |
76 |
1
|
Content node1 = getConfigNode(CONFIGNODE1, "/modules/test/paragraph-renderers"); |
77 |
1
|
Content node2 = getConfigNode(CONFIGNODE2, "/modules/test2/paragraph-renderers"); |
78 |
|
|
79 |
1
|
final ParagraphRendererManager prm = new ParagraphRendererManager(); |
80 |
1
|
prm.onRegister(node1); |
81 |
1
|
final Map renderers = prm.getRenderers(); |
82 |
1
|
assertEquals(2, renderers.size()); |
83 |
1
|
final ParagraphRenderer foo = (ParagraphRenderer) renderers.get("foo"); |
84 |
1
|
assertEquals(foo, prm.getRenderer("foo")); |
85 |
1
|
assertTrue(renderers.get("bar") instanceof OtherDummyParagraphRenderer); |
86 |
|
|
87 |
1
|
prm.onRegister(node2); |
88 |
1
|
assertEquals(4, prm.getRenderers().size()); |
89 |
1
|
assertEquals(4, renderers.size()); |
90 |
1
|
assertEquals(renderers, prm.getRenderers()); |
91 |
1
|
assertTrue(renderers.get("baz") instanceof DummyParagraphRenderer); |
92 |
1
|
assertTrue(renderers.get("gazonk") instanceof DummyParagraphRenderer); |
93 |
|
|
94 |
1
|
prm.clear(); |
95 |
1
|
assertEquals(0, prm.getRenderers().size()); |
96 |
1
|
assertEquals(0, renderers.size()); |
97 |
|
} |
98 |
|
|
|
|
| 92.3% |
Uncovered Elements: 1 (13) |
Complexity: 2 |
Complexity Density: 0.15 |
1
PASS
|
|
99 |
1
|
public void testCanNotAddParagraphRenderersWithDuplicateNames() throws IOException, RepositoryException {... |
100 |
1
|
Content node1 = getConfigNode(CONFIGNODE1, "/modules/test/paragraph-renderers"); |
101 |
1
|
Content node3 = getConfigNode(CONFIGNODE3, "/modules/test3/paragraph-renderers"); |
102 |
|
|
103 |
1
|
final ParagraphRendererManager prm = new ParagraphRendererManager(); |
104 |
1
|
prm.onRegister(node1); |
105 |
1
|
final Map renderers = prm.getRenderers(); |
106 |
1
|
assertEquals(2, renderers.size()); |
107 |
1
|
final ParagraphRenderer foo = (ParagraphRenderer) renderers.get("foo"); |
108 |
1
|
assertEquals(foo, prm.getRenderer("foo")); |
109 |
1
|
assertTrue(renderers.get("bar") instanceof OtherDummyParagraphRenderer); |
110 |
|
|
111 |
1
|
try { |
112 |
1
|
prm.onRegister(node3); |
113 |
0
|
fail("should have thrown an IllegalStateException"); |
114 |
|
} catch (IllegalStateException e) { |
115 |
1
|
assertEquals("Duplicate paragraph name \"foo\"", e.getMessage()); |
116 |
|
|
117 |
|
} |
118 |
|
} |
119 |
|
|
|
|
| 90.9% |
Uncovered Elements: 1 (11) |
Complexity: 2 |
Complexity Density: 0.18 |
1
PASS
|
|
120 |
1
|
public void testRenderersNamePropertyHasPriorityOverNodeName() throws IOException, RepositoryException {... |
121 |
1
|
Content node3 = getConfigNode(CONFIGNODE3, "/modules/test3/paragraph-renderers"); |
122 |
1
|
final ParagraphRendererManager prm = new ParagraphRendererManager(); |
123 |
1
|
prm.onRegister(node3); |
124 |
1
|
final Map renderers = prm.getRenderers(); |
125 |
1
|
assertEquals(2, renderers.size()); |
126 |
|
|
127 |
1
|
assertTrue(renderers.get("foo") instanceof DummyParagraphRenderer); |
128 |
1
|
try { |
129 |
1
|
prm.getRenderer("foo-node"); |
130 |
0
|
fail("Should have thrown an IllegalArgumentException"); |
131 |
|
} catch (IllegalArgumentException e) { |
132 |
1
|
assertEquals("No paragraph renderer registered with name foo-node", e.getMessage()); |
133 |
|
} |
134 |
|
|
135 |
1
|
assertTrue(renderers.get("bar") instanceof DummyParagraphRenderer); |
136 |
|
} |
137 |
|
|
|
|
| 83.3% |
Uncovered Elements: 1 (6) |
Complexity: 2 |
Complexity Density: 0.33 |
1
PASS
|
|
138 |
1
|
public void testRenderersWithFaultyClassNamesShouldNotBeIgnored() throws IOException, RepositoryException {... |
139 |
1
|
final Content node = getConfigNode(CONFIGNODE4, "/modules/test4/paragraph-renderers"); |
140 |
1
|
final ParagraphRendererManager prm = new ParagraphRendererManager(); |
141 |
|
|
142 |
1
|
try { |
143 |
1
|
prm.onRegister(node); |
144 |
0
|
fail("should have thrown an IllegalStateException"); |
145 |
|
} catch (IllegalStateException e) { |
146 |
1
|
assertEquals("Can't register paragraph renderer with name [foo] and class [com.foo.bar.baz.Gazonk] : java.lang.ClassNotFoundException : com.foo.bar.baz.Gazonk", e.getMessage()); |
147 |
|
} |
148 |
|
} |
149 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (2) |
Complexity: 1 |
Complexity Density: 1 |
|
150 |
|
public static final class DummyParagraphRenderer implements ParagraphRenderer { |
|
|
| 100% |
Uncovered Elements: 0 (1) |
Complexity: 1 |
Complexity Density: 1 |
|
151 |
3
|
public void render(Content content, Paragraph paragraph, Writer out) throws IOException {... |
152 |
3
|
out.write("tralala:" + paragraph.getName()); |
153 |
|
} |
154 |
|
} |
155 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (2) |
Complexity: 1 |
Complexity Density: 1 |
|
156 |
|
public static final class OtherDummyParagraphRenderer implements ParagraphRenderer { |
|
|
| 100% |
Uncovered Elements: 0 (1) |
Complexity: 1 |
Complexity Density: 1 |
|
157 |
1
|
public void render(Content content, Paragraph paragraph, Writer out) throws IOException {... |
158 |
1
|
out.write("trululu:" + paragraph.getName()); |
159 |
|
} |
160 |
|
} |
161 |
|
|
162 |
|
private static final String CONFIGNODE1 = "" + |
163 |
|
"modules.test.paragraph-renderers.foo.@type=mgnl:contentNode\n" + |
164 |
|
"modules.test.paragraph-renderers.foo.name=foo\n" + |
165 |
|
"modules.test.paragraph-renderers.foo.class=info.magnolia.module.templating.ParagraphRendererManagerTest$DummyParagraphRenderer\n" + |
166 |
|
"modules.test.paragraph-renderers.bar.@type=mgnl:contentNode\n" + |
167 |
|
"modules.test.paragraph-renderers.bar.name=bar\n" + |
168 |
|
"modules.test.paragraph-renderers.bar.class=info.magnolia.module.templating.ParagraphRendererManagerTest$OtherDummyParagraphRenderer"; |
169 |
|
|
170 |
|
private static final String CONFIGNODE2 = "" + |
171 |
|
"modules.test2.paragraph-renderers.baz.@type=mgnl:contentNode\n" + |
172 |
|
"modules.test2.paragraph-renderers.baz.name=baz\n" + |
173 |
|
"modules.test2.paragraph-renderers.baz.class=info.magnolia.module.templating.ParagraphRendererManagerTest$DummyParagraphRenderer\n" + |
174 |
|
"modules.test2.paragraph-renderers.gazonk.@type=mgnl:contentNode\n" + |
175 |
|
|
176 |
|
"modules.test2.paragraph-renderers.gazonk.class=info.magnolia.module.templating.ParagraphRendererManagerTest$DummyParagraphRenderer"; |
177 |
|
|
178 |
|
private static final String CONFIGNODE3 = "" + |
179 |
|
"modules.test3.paragraph-renderers.foo-node.@type=mgnl:contentNode\n" + |
180 |
|
"modules.test3.paragraph-renderers.foo-node.name=foo\n" + |
181 |
|
"modules.test3.paragraph-renderers.foo-node.class=info.magnolia.module.templating.ParagraphRendererManagerTest$DummyParagraphRenderer\n" + |
182 |
|
"modules.test3.paragraph-renderers.bar.@type=mgnl:contentNode\n" + |
183 |
|
"modules.test3.paragraph-renderers.bar.name=bar\n" + |
184 |
|
"modules.test3.paragraph-renderers.bar.class=info.magnolia.module.templating.ParagraphRendererManagerTest$DummyParagraphRenderer"; |
185 |
|
|
186 |
|
private static final String CONFIGNODE4 = "" + |
187 |
|
"modules.test4.paragraph-renderers.foo.@type=mgnl:contentNode\n" + |
188 |
|
"modules.test4.paragraph-renderers.foo.name=foo\n" + |
189 |
|
"modules.test4.paragraph-renderers.foo.class=com.foo.bar.baz.Gazonk"; |
190 |
|
|
191 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (1) |
Complexity: 1 |
Complexity Density: 1 |
|
192 |
8
|
private Content getConfigNode(String configNode, String path) throws IOException, RepositoryException {... |
193 |
8
|
return MockUtil.createHierarchyManager(configNode).getContent(path); |
194 |
|
} |
195 |
|
|
196 |
|
} |