Added tests for ignoring changes

This commit is contained in:
Marcin Grzejszczak
2017-03-08 11:58:02 +01:00
parent c3dd3b7586
commit 4d53bcc4d5
3 changed files with 74 additions and 11 deletions

View File

@@ -123,6 +123,7 @@ class PomUpdater {
String rootProjectName = wrapper.projectName();
List<VersionChange> changes = new ArrayList<>(sourceChanges);
if (model.getParent() == null || StringUtils.isEmpty(model.getParent().getVersion())) {
log.debug("Can't set the value for parent... Will return {}", sourceChanges);
return changes;
}
String parentGroupId = model.getParent().getGroupId();
@@ -140,7 +141,7 @@ class PomUpdater {
}
}
if (oldVersion.equals(version)) {
log.debug("Won't update the version of [{}:{}] since you're already using the proper one", parentGroupId, parentArtifactId);
log.debug("Won't update the version of parent [{}:{}] since you're already using the proper one", parentGroupId, parentArtifactId);
return changes;
}
log.info("Setting version of parent [{}] to [{}] for module [{}]", parentArtifactId,
@@ -164,7 +165,7 @@ class PomUpdater {
return changes;
}
if (oldVersion.equals(version)) {
log.debug("Won't update the version of [{}]:[{}] since you're already using the proper one", groupId, artifactId);
log.debug("Won't update the version of module [{}]:[{}] since you're already using the proper one", groupId, artifactId);
return changes;
}
log.info("Setting [{}] version to [{}]", artifactId, version);
@@ -172,6 +173,14 @@ class PomUpdater {
return changes;
}
private boolean relativePathIsSet(Model model) {
return model.getParent() != null && StringUtils.hasText(model.getParent().getRelativePath());
}
private String parentName(Model model) {
return model.getParent() != null ? model.getParent().getArtifactId() : "";
}
private String groupId(Model model) {
if (StringUtils.hasText(model.getGroupId())) {
return model.getGroupId();

View File

@@ -28,6 +28,7 @@ import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;
import org.springframework.boot.test.rule.OutputCapture;
import org.springframework.util.FileSystemUtils;
import static org.springframework.cloud.release.internal.VersionChangeAssertions.then;
@@ -40,6 +41,7 @@ public class PomUpdaterTests {
Versions versions = new Versions("0.0.1", "0.0.2", projects());
PomUpdater pomUpdater = new PomUpdater();
PomReader pomReader = new PomReader();
@Rule public OutputCapture capture = new OutputCapture();
@Rule public TemporaryFolder tmp = new TemporaryFolder();
File temporaryFolder;
@@ -86,7 +88,7 @@ public class PomUpdaterTests {
File storedPom = this.pomUpdater.overwritePomIfDirty(model, this.versions, pomInTemp);
then(asString(originalPom)).isEqualTo(asString(storedPom));
then(asString(storedPom)).isEqualTo(asString(originalPom));
}
@Test
@@ -98,7 +100,7 @@ public class PomUpdaterTests {
File storedPom = this.pomUpdater.overwritePomIfDirty(model, this.versions, pomInTemp);
then(asString(originalPom)).isNotEqualTo(asString(storedPom));
then(asString(storedPom)).isNotEqualTo(asString(originalPom));
Model overriddenPomModel = this.pomReader.readPom(storedPom);
then(overriddenPomModel.getVersion()).isEqualTo("0.0.3.BUILD-SNAPSHOT");
}
@@ -127,7 +129,7 @@ public class PomUpdaterTests {
File storedPom = this.pomUpdater.overwritePomIfDirty(model, this.versions, pomInTemp);
then(asString(originalPom)).isNotEqualTo(asString(storedPom));
then(asString(storedPom)).isNotEqualTo(asString(originalPom));
Model overriddenPomModel = this.pomReader.readPom(storedPom);
then(overriddenPomModel.getVersion()).isEqualTo("0.0.3.BUILD-SNAPSHOT");
then(overriddenPomModel.getParent().getVersion()).isEqualTo("0.0.2");
@@ -156,7 +158,7 @@ public class PomUpdaterTests {
File storedPom = this.pomUpdater.overwritePomIfDirty(model, this.versions, pomInTemp);
then(asString(originalPom)).isNotEqualTo(asString(storedPom));
then(asString(storedPom)).isNotEqualTo(asString(originalPom));
Model overriddenPomModel = this.pomReader.readPom(storedPom);
then(overriddenPomModel.getVersion()).isEqualTo("0.0.3.BUILD-SNAPSHOT");
then(overriddenPomModel.getParent().getVersion()).isEqualTo("0.0.3.BUILD-SNAPSHOT");
@@ -175,7 +177,7 @@ public class PomUpdaterTests {
File storedPom = this.pomUpdater.overwritePomIfDirty(model, this.versions, pomInTemp);
then(asString(originalPom)).isNotEqualTo(asString(storedPom));
then(asString(storedPom)).isNotEqualTo(asString(originalPom));
Model overriddenPomModel = this.pomReader.readPom(storedPom);
then(overriddenPomModel.getVersion()).isEqualTo("0.0.3.BUILD-SNAPSHOT");
then(overriddenPomModel.getParent().getVersion()).isEqualTo("0.0.3.BUILD-SNAPSHOT");
@@ -194,7 +196,7 @@ public class PomUpdaterTests {
File storedPom = this.pomUpdater.overwritePomIfDirty(model, this.versions, pomInTemp);
then(asString(originalPom)).isNotEqualTo(asString(storedPom));
then(asString(storedPom)).isNotEqualTo(asString(originalPom));
Model overriddenPomModel = this.pomReader.readPom(storedPom);
then(overriddenPomModel.getVersion()).isEqualTo("0.0.3.BUILD-SNAPSHOT");
then(overriddenPomModel.getParent().getVersion()).isEqualTo("0.0.3.BUILD-SNAPSHOT");
@@ -211,7 +213,6 @@ public class PomUpdaterTests {
File processedPom = this.pomUpdater.overwritePomIfDirty(model, Versions.EMPTY_VERSION, afterProcessing);
then(processedPom).isSameAs(afterProcessing);
String processedPomText = asString(processedPom);
String beforeProcessingText = asString(beforeProcessing);
then(processedPomText).isNotEqualTo(beforeProcessingText);
@@ -225,7 +226,6 @@ public class PomUpdaterTests {
File processedPom = this.pomUpdater.overwritePomIfDirty(model, Versions.EMPTY_VERSION, afterProcessing);
then(processedPom).isSameAs(afterProcessing);
then(asString(processedPom)).isEqualTo(asString(beforeProcessing));
}
@@ -238,12 +238,27 @@ public class PomUpdaterTests {
File storedPom = this.pomUpdater.overwritePomIfDirty(model, this.versions, pomInTemp);
then(asString(originalPom)).isNotEqualTo(asString(storedPom));
then(asString(storedPom)).isNotEqualTo(asString(originalPom));
Model overriddenPomModel = this.pomReader.readPom(storedPom);
then(overriddenPomModel.getVersion()).isEqualTo("0.0.2.BUILD-SNAPSHOT");
then(overriddenPomModel.getParent().getVersion()).isEqualTo("0.0.2");
}
@Test
public void should_not_update_the_model_when_project_uses_same_version_for_artifact() throws Exception {
File originalPom = pom("/projects/project/", "pom_matching_artifact_same_version.xml");
File pomInTemp = tmpFile("/project/pom_matching_artifact_same_version.xml");
ModelWrapper rootPom = model("spring-cloud-sleuth");
ModelWrapper model = this.pomUpdater.updateModel(rootPom, pomInTemp, this.versions);
File storedPom = this.pomUpdater.overwritePomIfDirty(model, this.versions, pomInTemp);
then(asString(storedPom)).isEqualTo(asString(originalPom));
then(this.capture.toString())
.contains("Won't update the version of parent")
.contains("Won't update the version of module");
}
Set<Project> projects() {
Set<Project> projects = new HashSet<>();
projects.add(new Project("spring-cloud-contract", "0.0.2.BUILD-SNAPSHOT"));

View File

@@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright 2013-2017 the original author or authors.
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
~ You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>spring-cloud-sleuth</artifactId>
<version>0.0.3.BUILD-SNAPSHOT</version>
<packaging>pom</packaging>
<name>foo</name>
<description>foo</description>
<parent>
<groupId>org.springframework</groupId>
<artifactId>spring-cloud-sleuth</artifactId>
<version>0.0.3.BUILD-SNAPSHOT</version>
</parent>
<properties>
<spring-cloud-foo.version>1.3.1.BUILD-SNAPSHOT</spring-cloud-foo.version>
<foo.version>1.2.0.BUILD-SNAPSHOT</foo.version>
</properties>
</project>