1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.tools.plugin.extractor.annotations.converter;
20
21 import java.net.URI;
22 import java.util.HashMap;
23 import java.util.Map;
24
25 import org.apache.maven.tools.plugin.extractor.annotations.converter.tag.block.JavadocBlockTagToHtmlConverter;
26 import org.apache.maven.tools.plugin.extractor.annotations.converter.tag.block.SeeTagConverter;
27 import org.apache.maven.tools.plugin.javadoc.FullyQualifiedJavadocReference;
28 import org.apache.maven.tools.plugin.javadoc.JavadocReference;
29 import org.junit.jupiter.api.Test;
30
31 import static org.junit.jupiter.api.Assertions.assertEquals;
32
33 class JavadocBlockTagsToXhtmlConverterTest {
34 private final ConverterContext context;
35 private final JavadocBlockTagsToXhtmlConverter converter;
36 private final JavadocInlineTagsToXhtmlConverter inlineTagsConverter;
37
38 public JavadocBlockTagsToXhtmlConverterTest() {
39 URI baseUrl = URI.create("https://javadoc.example.com/");
40 context = new SimpleConverterContext("my.package", baseUrl);
41 inlineTagsConverter = JavadocInlineTagsToXhtmlConverterTest.createInlineTagConverter();
42 Map<String, JavadocBlockTagToHtmlConverter> blockTagConverters = new HashMap<>();
43 blockTagConverters.put("see", new SeeTagConverter());
44 converter = new JavadocBlockTagsToXhtmlConverter(inlineTagsConverter, blockTagConverters);
45 }
46
47 @Test
48 void testSee() {
49 assertEquals(
50 "<br /><strong>See also:</strong> \"Some reference\"",
51 converter.convert("see", "\"Some reference\"", context));
52 assertEquals(
53 ", <a href=\"example.com\">Example</a>",
54 converter.convert("see", "<a href=\"example.com\">Example</a>", context));
55
56
57 ConverterContext context2 =
58 new SimpleConverterContext("my.package", URI.create("https://javadoc.example.com/"));
59 assertEquals(
60 "<br /><strong>See also:</strong> <a href=\"example.com\">Example</a>",
61 converter.convert("see", "<a href=\"example.com\">Example</a>", context2));
62 }
63
64 @Test
65 void testExceptionInTag() {
66 URI baseUrl = URI.create("https://javadoc.example.com/");
67 ConverterContext context = new SimpleConverterContext("my.package", baseUrl) {
68 @Override
69 public FullyQualifiedJavadocReference resolveReference(JavadocReference reference) {
70 throw new IllegalArgumentException("Some exception");
71 }
72 };
73 Map<String, JavadocBlockTagToHtmlConverter> blockTagConverters = new HashMap<>();
74 blockTagConverters.put("example", new JavadocBlockTagToHtmlConverter() {
75 @Override
76 public String convert(String text, ConverterContext context) {
77 throw new IllegalArgumentException("Some exception");
78 }
79 });
80 JavadocBlockTagsToXhtmlConverter converter =
81 new JavadocBlockTagsToXhtmlConverter(inlineTagsConverter, blockTagConverters);
82 String test = "Class#field";
83 assertEquals(
84 "@example Class#field<!-- error processing javadoc tag 'example': Some exception-->",
85 converter.convert("example", test, context));
86 }
87 }