1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.plugins.antrun;
20
21 import java.io.File;
22 import java.io.IOException;
23 import java.nio.file.Files;
24 import java.nio.file.Path;
25
26 import org.codehaus.plexus.configuration.PlexusConfiguration;
27 import org.codehaus.plexus.configuration.xml.XmlPlexusConfiguration;
28 import org.junit.jupiter.api.BeforeEach;
29 import org.junit.jupiter.api.Test;
30 import org.junit.jupiter.api.io.TempDir;
31 import org.xmlunit.builder.Input;
32
33 import static org.hamcrest.MatcherAssert.assertThat;
34 import static org.xmlunit.matchers.CompareMatcher.isIdenticalTo;
35
36
37
38
39
40 public class AntrunXmlPlexusConfigurationWriterTest {
41
42 private static final String TARGET_NAME = "main";
43
44 @TempDir
45 Path folder;
46
47 private AntrunXmlPlexusConfigurationWriter configurationWriter;
48
49 private PlexusConfiguration configuration;
50
51 private File file;
52
53 @BeforeEach
54 void setUp() throws IOException {
55 configurationWriter = new AntrunXmlPlexusConfigurationWriter();
56 configuration = new XmlPlexusConfiguration("target");
57 configuration.setAttribute("name", TARGET_NAME);
58 file = Files.createTempFile(folder, "junit", "antrun").toFile();
59 }
60
61
62
63
64
65
66 @Test
67 public void testBasic() throws IOException {
68 configuration.getChild("echo", true).setAttribute("message", "Hello");
69 configurationWriter.write(configuration, file, "", TARGET_NAME);
70 assertXmlIsExpected("/configuration-writer/basic.xml", file);
71 }
72
73
74
75
76
77
78 @Test
79 public void testEmptyTarget() throws IOException {
80 configurationWriter.write(configuration, file, "", TARGET_NAME);
81 assertXmlIsExpected("/configuration-writer/empty-target.xml", file);
82 }
83
84
85
86
87
88
89 @Test
90 public void testCustomTaskPrefix() throws IOException {
91 PlexusConfiguration child = configuration.getChild("mvn:foo", true);
92 child.setAttribute("attr1", "val1");
93 child.setValue("The first value.");
94 child = configuration.getChild("bar", true);
95 child.setAttribute("attr2", "val2");
96 child.setValue("The second value.");
97 configurationWriter.write(configuration, file, "mvn", TARGET_NAME);
98 assertXmlIsExpected("/configuration-writer/custom-task-prefix.xml", file);
99 }
100
101
102
103
104
105
106
107 @Test
108 public void testCombineAttributes() throws IOException {
109 configuration.setAttribute("combine.children", "append");
110 configuration.setAttribute("description", "foo");
111 configuration.getChild("child", true).setAttribute("combine.self", "override");
112 configurationWriter.write(configuration, file, "", TARGET_NAME);
113 assertXmlIsExpected("/configuration-writer/combine-attributes.xml", file);
114 }
115
116 private void assertXmlIsExpected(String expected, File file) {
117 assertThat(Input.from(file), isIdenticalTo(Input.from(getClass().getResourceAsStream(expected))));
118 }
119 }