Skip to content

Commit 6d24df1

Browse files
committed
Add a test to ensure packaging is preserved during model merging in SmartModelMerger
1 parent a3d6dc5 commit 6d24df1

2 files changed

Lines changed: 40 additions & 0 deletions

File tree

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
4+
<modelVersion>4.0.0</modelVersion>
5+
<groupId>org.acme</groupId>
6+
<artifactId>my-app</artifactId>
7+
<version>1.0.0-SNAPSHOT</version>
8+
<packaging>quarkus</packaging>
9+
<properties>
10+
<property-from-extension>value</property-from-extension>
11+
</properties>
12+
</project>

src/test/java/io/fabric8/maven/merge/SmartModelMergerTest.java

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
import static org.assertj.core.api.Assertions.assertThat;
44

5+
import java.io.StringReader;
6+
import java.io.StringWriter;
57
import java.net.URISyntaxException;
68
import java.nio.file.Path;
79
import java.nio.file.Paths;
@@ -117,4 +119,30 @@ void should_keep_target_indent_4() throws URISyntaxException {
117119
Approvals.verify(targetFile.toFile());
118120
}
119121

122+
@Test
123+
void should_preserve_packaging() {
124+
String basePom = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
125+
"<project>\n" +
126+
" <modelVersion>4.0.0</modelVersion>\n" +
127+
" <groupId>org.acme</groupId>\n" +
128+
" <artifactId>my-app</artifactId>\n" +
129+
" <version>1.0.0-SNAPSHOT</version>\n" +
130+
" <packaging>quarkus</packaging>\n" +
131+
"</project>\n";
132+
133+
String extensionPom = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
134+
"<project>\n" +
135+
" <properties>\n" +
136+
" <property-from-extension>value</property-from-extension>\n" +
137+
" </properties>\n" +
138+
"</project>\n";
139+
140+
ModelMerger merger = new SmartModelMerger();
141+
final Model source = Maven.readModel(new StringReader(basePom));
142+
final Model target = Maven.readModel(new StringReader(extensionPom));
143+
merger.merge(target, source, true, null);
144+
StringWriter writer = new StringWriter();
145+
Maven.writeModel(target, writer);
146+
Approvals.verify(writer.toString());
147+
}
120148
}

0 commit comments

Comments
 (0)