/* * A Gradle plugin for the creation of Minecraft mods and MinecraftForge plugins. * Copyright (C) 2013 Minecraft Forge * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 * USA */ package net.minecraftforge.gradle.versions; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import net.minecraftforge.gradle.user.patcherUser.forge.ForgeExtension; import net.minecraftforge.gradle.user.patcherUser.forge.ForgePlugin; import net.minecraftforge.gradle.util.GradleConfigurationException; import org.gradle.api.Project; import org.gradle.testfixtures.ProjectBuilder; import org.junit.Before; import org.junit.Test; import com.google.common.collect.ImmutableMap; public class ExtensionForgeVersionTest { private Project testProject; private ForgeExtension ext; @Before public void setupProject() { this.testProject = ProjectBuilder.builder().build(); assertNotNull(this.testProject); this.testProject.apply(ImmutableMap.of("plugin", ForgePlugin.class)); this.ext = this.testProject.getExtensions().findByType(ForgeExtension.class); // unlike getByType(), does not throw exception assertNotNull(this.ext); } // Invalid version notation! The following are valid notations. BuildNumber, version, version-branch, mcversion-version-branch, and pomotion (sic) @Test public void testValidBuildNumber() { // buildnumber this.ext.setVersion("965"); assertEquals(this.ext.getVersion(), "1.6.4"); assertEquals(this.ext.getForgeVersion(), "9.11.1.965"); } @Test public void testValidPromotion() { // promotion this.ext.setVersion("1.6.4-recommended"); assertEquals(this.ext.getVersion(), "1.6.4"); assertEquals(this.ext.getForgeVersion(), "9.11.1.1345"); } @Test public void testValidBuildNumberNoBranch() { // buildnumber (no branch) this.ext.setVersion("1256"); assertEquals(this.ext.getVersion(), "1.7.10"); assertEquals(this.ext.getForgeVersion(), "10.13.2.1256"); } @Test public void testValidBuildNumberWithBranch() { // buildnumber (with branch) this.ext.setVersion("1257"); assertEquals(this.ext.getVersion(), "1.8"); assertEquals(this.ext.getForgeVersion(), "11.14.0.1257-1.8"); } @Test public void testValidVersion() { // version this.ext.setVersion("10.13.2.1256"); assertEquals(this.ext.getVersion(), "1.7.10"); assertEquals(this.ext.getForgeVersion(), "10.13.2.1256"); } @Test public void testValidMcVersionWithVersion() { // mcversion-version this.ext.setVersion("1.7.10-10.13.2.1256"); assertEquals(this.ext.getVersion(), "1.7.10"); assertEquals(this.ext.getForgeVersion(), "10.13.2.1256"); } @Test public void testValidVersionWithBranch() { // version-branch this.ext.setVersion("11.14.0.1257-1.8"); assertEquals(this.ext.getVersion(), "1.8"); assertEquals(this.ext.getForgeVersion(), "11.14.0.1257-1.8"); } @Test public void testValidMcVersionWithVersionAndBranch() { // mcversion-version-branch this.ext.setVersion("1.8-11.14.0.1257-1.8"); assertEquals(this.ext.getVersion(), "1.8"); assertEquals(this.ext.getForgeVersion(), "11.14.0.1257-1.8"); } // Invalid formats @Test(expected = GradleConfigurationException.class) public void testInvalidBuild() { // 1.8 build skipped due to 1.7.10 this.ext.setVersion("11.14.0.1256-1.8"); } @Test(expected = GradleConfigurationException.class) public void testInvalidBuildWithMcVersion() { // 1.8 build skipped due to 1.7.10 (with MC version) this.ext.setVersion("1.8-11.14.0.1256-1.8"); } @Test(expected = GradleConfigurationException.class) public void testInvalidMcVersion() { // invalid MC version this.ext.setVersion("1.7.10-9.11.1.965"); } @Test(expected = GradleConfigurationException.class) public void testInvalidMcVersionWithBranch() { // invalid MC version (with branch) this.ext.setVersion("1.7.10-11.14.0.1257-1.8"); } @Test(expected = GradleConfigurationException.class) public void testInvalidBranch() { // invalid branch this.ext.setVersion("1.7.10-11.14.0.1256-1.8"); } }