Path: blob/master/test/jdk/java/lang/module/VersionTest.java
41149 views
/*1* Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.2* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.3*4* This code is free software; you can redistribute it and/or modify it5* under the terms of the GNU General Public License version 2 only, as6* published by the Free Software Foundation.7*8* This code is distributed in the hope that it will be useful, but WITHOUT9* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or10* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License11* version 2 for more details (a copy is included in the LICENSE file that12* accompanied this code).13*14* You should have received a copy of the GNU General Public License version15* 2 along with this work; if not, write to the Free Software Foundation,16* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.17*18* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA19* or visit www.oracle.com if you need additional information or have any20* questions.21*/2223/**24* @test25* @run testng VersionTest26* @summary Basic tests for java.lang.module.ModuleDescriptor.Version.27*/2829import java.lang.module.ModuleDescriptor.Version;3031import org.testng.annotations.Test;32import org.testng.annotations.DataProvider;33import static org.testng.Assert.*;3435@Test36public class VersionTest {3738// valid version strings39@DataProvider(name = "validVersions")40public Object[][] validVersions() {41return new Object[][]{4243{ "1.0", null },44{ "1.0.0", null },45{ "1.0.0.0", null },4647{ "99", null },48{ "99.99", null },49{ "99.99.99", null },5051{ "1-SNAPSHOT", null },52{ "1.0-SNAPSHOT", null },53{ "1.0.0-SNAPSHOT", null },5455{ "9-ea", null },56{ "9-ea+110", null },57{ "9.3.2.1+42-8839942", null}5859};60}6162// invalid version strings63@DataProvider(name = "invalidVersions")64public Object[][] invalidVersions() {65return new Object[][]{6667{ null, null },68{ "", null },69{ "A1", null }, // does not start with number70{ "1.0-", null }, // empty branch7172};73}7475// Test parsing valid version strings76@Test(dataProvider = "validVersions")77public void testParseValidVersions(String vs, String ignore) {78Version v = Version.parse(vs);79assertEquals(v.toString(), vs);80}8182// Test parsing an invalid version strings83@Test(dataProvider = "invalidVersions",84expectedExceptions = IllegalArgumentException.class )85public void testParseInvalidVersions(String vs, String ignore) {86Version.parse(vs);87}8889// Test equals and hashCode90@Test(dataProvider = "validVersions")91public void testEqualsAndHashCode(String vs, String ignore) {9293Version v1 = Version.parse(vs);94Version v2 = Version.parse(vs);95assertEquals(v1, v2);96assertEquals(v2, v1);97assertEquals(v1.hashCode(), v2.hashCode());9899Version v3 = Version.parse("1.0-rhubarb");100assertNotEquals(v1, v3);101assertNotEquals(v2, v3);102assertNotEquals(v3, v1);103assertNotEquals(v3, v2);104105}106107// ordered version strings108@DataProvider(name = "orderedVersions")109public Object[][] orderedVersions() {110return new Object[][]{111112{ "1.0", "2.0" },113{ "1.0-SNAPSHOT", "1.0" },114{ "1.0-SNAPSHOT2", "1.0" },115{ "1.2.3-ea", "1.2.3" },116{ "1.2.3-ea+104", "1.2.3-ea+105" },117{ "1.2.3-ea+104-4084552", "1.2.3-ea+104-4084552+8849330" },118{ "1+104", "1+105" },119{ "1.0-alpha1", "1.0-alpha2" }120121};122}123124/**125* Test compareTo with ordered versions.126*/127@Test(dataProvider = "orderedVersions")128public void testCompareOrderedVersions(String vs1, String vs2) {129130Version v1 = Version.parse(vs1);131assertTrue(v1.compareTo(v1) == 0);132133Version v2 = Version.parse(vs2);134assertTrue(v2.compareTo(v2) == 0);135136// v1 < v2137assertTrue(v1.compareTo(v2) < 0);138assertTrue(v2.compareTo(v1) > 0);139140}141142// equal version strings143@DataProvider(name = "equalVersions")144public Object[][] equalVersions() {145return new Object[][]{146147{ "1", "1.0.0" },148{ "1.0", "1.0.0" },149{ "1.0-beta", "1.0.0-beta" },150151};152}153154/**155* Test compareTo with equal versions.156*/157@Test(dataProvider = "equalVersions")158public void testCompareEqualsVersions(String vs1, String vs2) {159160Version v1 = Version.parse(vs1);161assertTrue(v1.compareTo(v1) == 0);162163Version v2 = Version.parse(vs2);164assertTrue(v2.compareTo(v2) == 0);165166assertTrue(v1.compareTo(v2) == 0);167assertTrue(v2.compareTo(v1) == 0);168assertEquals(v1, v2);169assertEquals(v2, v1);170171}172173}174175176