1 /* 2 * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. 8 * 9 * This code is distributed in the hope that it will be useful, but WITHOUT 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 12 * version 2 for more details (a copy is included in the LICENSE file that 13 * accompanied this code). 14 * 15 * You should have received a copy of the GNU General Public License version 16 * 2 along with this work; if not, write to the Free Software Foundation, 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 18 * 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 20 * or visit www.oracle.com if you need additional information or have any 21 * questions. 22 */ 23 package org.openjdk.skara.vcs.openjdk; 24 25 import org.openjdk.skara.vcs.Tag; 26 27 import org.junit.jupiter.api.Test; 28 29 import static org.junit.jupiter.api.Assertions.*; 30 31 class OpenJDKTagTests { 32 @Test 33 void parseTags() { 34 var tag = new Tag("jdk-10+20"); 35 var jdkTag = OpenJDKTag.create(tag).orElseThrow(); 36 assertEquals(20, jdkTag.buildNum()); 37 var previousTag = jdkTag.previous().orElseThrow(); 38 assertEquals(19, previousTag.buildNum()); 39 } 40 41 @Test 42 void parseSingleDigitTags() { 43 var tag = new Tag("jdk-10+10"); 44 var jdkTag = OpenJDKTag.create(tag).orElseThrow(); 45 assertEquals(10, jdkTag.buildNum()); 46 var previousTag = jdkTag.previous().orElseThrow(); 47 assertEquals("jdk-10+9", previousTag.tag().name()); 48 assertEquals(9, previousTag.buildNum()); 49 } 50 51 @Test 52 void parseLegacyTags() { 53 var tag = new Tag("jdk7-b147"); 54 var jdkTag = OpenJDKTag.create(tag).orElseThrow(); 55 assertEquals(147, jdkTag.buildNum()); 56 var previousTag = jdkTag.previous().orElseThrow(); 57 assertEquals(146, previousTag.buildNum()); 58 } 59 60 @Test 61 void parseSingleDigitLegacyTags() { 62 var tag = new Tag("jdk7-b10"); 63 var jdkTag = OpenJDKTag.create(tag).orElseThrow(); 64 assertEquals(10, jdkTag.buildNum()); 65 var previousTag = jdkTag.previous().orElseThrow(); 66 assertEquals("jdk7-b09", previousTag.tag().name()); 67 assertEquals(9, previousTag.buildNum()); 68 } 69 70 @Test 71 void parseHotspotTags() { 72 var tag = new Tag("hs23.6-b19"); 73 var jdkTag = OpenJDKTag.create(tag).orElseThrow(); 74 assertEquals(19, jdkTag.buildNum()); 75 var previousTag = jdkTag.previous().orElseThrow(); 76 assertEquals(18, previousTag.buildNum()); 77 } 78 79 @Test 80 void parseSingleDigitHotspotTags() { 81 var tag = new Tag("hs23.6-b10"); 82 var jdkTag = OpenJDKTag.create(tag).orElseThrow(); 83 assertEquals(10, jdkTag.buildNum()); 84 var previousTag = jdkTag.previous().orElseThrow(); 85 assertEquals("hs23.6-b09", previousTag.tag().name()); 86 assertEquals(9, previousTag.buildNum()); 87 } 88 89 @Test 90 void noPrevious() { 91 var tag = new Tag("jdk-10+0"); 92 var jdkTag = OpenJDKTag.create(tag).orElseThrow(); 93 assertEquals(0, jdkTag.buildNum()); 94 assertFalse(jdkTag.previous().isPresent()); 95 } 96 97 @Test 98 void parseJfxTags() { 99 var tag = new Tag("12.1.3+14"); 100 var jdkTag = OpenJDKTag.create(tag).orElseThrow(); 101 assertEquals("12.1.3", jdkTag.version()); 102 assertEquals(14, jdkTag.buildNum()); 103 var previousTag = jdkTag.previous().orElseThrow(); 104 assertEquals(13, previousTag.buildNum()); 105 } 106 107 @Test 108 void parseJfxTagsGa() { 109 var tag = new Tag("12.1-ga"); 110 var jdkTag = OpenJDKTag.create(tag).orElseThrow(); 111 assertEquals("12.1", jdkTag.version()); 112 assertEquals(0, jdkTag.buildNum()); 113 } 114 }