diff --git a/japicmp/src/main/java/japicmp/versioning/VersionChange.java b/japicmp/src/main/java/japicmp/versioning/VersionChange.java index 4d0bc6777..636ae0092 100644 --- a/japicmp/src/main/java/japicmp/versioning/VersionChange.java +++ b/japicmp/src/main/java/japicmp/versioning/VersionChange.java @@ -22,7 +22,7 @@ public VersionChange(List oldVersions, List ne public Optional computeChangeType() throws JApiCmpException { if (this.oldVersions.isEmpty()) { - if (ignoreMissingOldVersion) { + if (!ignoreMissingOldVersion) { throw new JApiCmpException(JApiCmpException.Reason.IllegalArgument, "Could not extract semantic version for at least one old version. Please " + "follow the rules for semantic versioning."); } else { @@ -30,7 +30,7 @@ public Optional computeChangeType() throws JApiCmpEx } } if (this.newVersions.isEmpty()) { - if (ignoreMissingNewVersion) { + if (!ignoreMissingNewVersion) { throw new JApiCmpException(JApiCmpException.Reason.IllegalArgument, "Could not extract semantic version for at least one new version. Please " + "follow the rules for semantic versioning."); } else { diff --git a/japicmp/src/test/java/japicmp/versioning/VersionChangeTest.java b/japicmp/src/test/java/japicmp/versioning/VersionChangeTest.java index 873dbfb80..40316cd33 100644 --- a/japicmp/src/test/java/japicmp/versioning/VersionChangeTest.java +++ b/japicmp/src/test/java/japicmp/versioning/VersionChangeTest.java @@ -74,21 +74,36 @@ public void testTwoVersionsMajorChangeNotAllVersionsTheSameAndDifferentNumberofA fail(); } - @Test + @Test(expected = JApiCmpException.class) public void testMissingOldVersion() { - VersionChange vc = new VersionChange(Collections.singletonList(new SemanticVersion(1, 2, 3)), Collections.singletonList(new SemanticVersion(1, 2, 3)), true, false); - assertThat(vc.computeChangeType().get(), is(SemanticVersion.ChangeType.UNCHANGED)); + VersionChange vc = new VersionChange(Collections.emptyList(), Collections.singletonList(new SemanticVersion(1, 2, 3)), false, false); + vc.computeChangeType(); + fail(); } @Test + public void testIgnoreMissingOldVersion() { + VersionChange vc = new VersionChange(Collections.emptyList(), Collections.singletonList(new SemanticVersion(1, 2, 3)), true, false); + assertThat(vc.computeChangeType().isPresent(), is(false)); + } + + @Test(expected = JApiCmpException.class) public void testMissingNewVersion() { - VersionChange vc = new VersionChange(Collections.singletonList(new SemanticVersion(1, 2, 3)), Collections.singletonList(new SemanticVersion(1, 2, 3)), false, true); - assertThat(vc.computeChangeType().get(), is(SemanticVersion.ChangeType.UNCHANGED)); + VersionChange vc = new VersionChange(Collections.singletonList(new SemanticVersion(1, 2, 3)), Collections.emptyList(), false, false); + vc.computeChangeType(); + fail(); } @Test - public void testNoParameter() { - VersionChange vc = new VersionChange(new ArrayList(), new ArrayList(), false, false); + public void testIgnoreMissingNewVersion() { + VersionChange vc = new VersionChange(Collections.singletonList(new SemanticVersion(1, 2, 3)), Collections.emptyList(), false, true); assertThat(vc.computeChangeType().isPresent(), is(false)); } + + @Test(expected = JApiCmpException.class) + public void testNoParameter() { + VersionChange vc = new VersionChange(Collections.emptyList(), Collections.emptyList(), false, false); + vc.computeChangeType(); + fail(); + } }