diff options
author | Jon Bratseth <bratseth@yahoo-inc.com> | 2016-06-15 23:09:44 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@yahoo-inc.com> | 2016-06-15 23:09:44 +0200 |
commit | 72231250ed81e10d66bfe70701e64fa5fe50f712 (patch) | |
tree | 2728bba1131a6f6e5bdf95afec7d7ff9358dac50 /component/src/test/java |
Publish
Diffstat (limited to 'component/src/test/java')
-rw-r--r-- | component/src/test/java/com/yahoo/component/VersionSpecificationTestCase.java | 142 | ||||
-rw-r--r-- | component/src/test/java/com/yahoo/component/VersionTestCase.java | 81 |
2 files changed, 223 insertions, 0 deletions
diff --git a/component/src/test/java/com/yahoo/component/VersionSpecificationTestCase.java b/component/src/test/java/com/yahoo/component/VersionSpecificationTestCase.java new file mode 100644 index 00000000000..6a8d0c569e7 --- /dev/null +++ b/component/src/test/java/com/yahoo/component/VersionSpecificationTestCase.java @@ -0,0 +1,142 @@ +// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.component; + +import org.junit.Test; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +/** + * @author bratseth + */ +public class VersionSpecificationTestCase { + + @Test + public void testPrimitiveCreation() { + VersionSpecification version=new VersionSpecification(1,2,3,"qualifier"); + assertEquals(1, (int)version.getSpecifiedMajor()); + assertEquals(2, (int)version.getSpecifiedMinor()); + assertEquals(3, (int)version.getSpecifiedMicro()); + assertEquals("qualifier",version.getSpecifiedQualifier()); + assertEquals(1, version.getMajor()); + assertEquals(2, version.getMinor()); + assertEquals(3, version.getMicro()); + assertEquals("qualifier",version.getQualifier()); + } + + @Test + public void testUnderspecifiedPrimitiveCreation() { + VersionSpecification version=new VersionSpecification(1); + assertEquals(1,(int)version.getSpecifiedMajor()); + assertEquals(null,version.getSpecifiedMinor()); + assertEquals(null,version.getSpecifiedMicro()); + assertEquals(null,version.getSpecifiedQualifier()); + assertEquals(1, version.getMajor()); + assertEquals(0, version.getMinor()); + assertEquals(0, version.getMicro()); + assertEquals("",version.getQualifier()); + } + + @Test + public void testStringCreation() { + VersionSpecification version=new VersionSpecification("1.2.3.qualifier"); + assertEquals(1,(int)version.getSpecifiedMajor()); + assertEquals(2,(int)version.getSpecifiedMinor()); + assertEquals(3,(int)version.getSpecifiedMicro()); + assertEquals("qualifier",version.getSpecifiedQualifier()); + } + + @Test + public void testUnderspecifiedStringCreation() { + VersionSpecification version=new VersionSpecification("1"); + assertEquals(1,(int)version.getSpecifiedMajor()); + assertEquals(null,version.getSpecifiedMinor()); + assertEquals(null,version.getSpecifiedMicro()); + assertEquals(null,version.getSpecifiedQualifier()); + assertEquals(1, version.getMajor()); + assertEquals(0, version.getMinor()); + assertEquals(0, version.getMicro()); + assertEquals("",version.getQualifier()); + } + + @Test + public void testEquality() { + assertEquals(new VersionSpecification(),VersionSpecification.emptyVersionSpecification); + assertEquals(new VersionSpecification(),new VersionSpecification("")); + assertEquals(new VersionSpecification(1),new VersionSpecification("1")); + assertEquals(new VersionSpecification(1,2),new VersionSpecification("1.2")); + assertEquals(new VersionSpecification(1,2,3),new VersionSpecification("1.2.3")); + assertEquals(new VersionSpecification(1,2,3,"qualifier"),new VersionSpecification("1.2.3.qualifier")); + } + + @Test + public void testToString() { + assertEquals("",new VersionSpecification().toString()); + assertEquals("1",new VersionSpecification(1).toString()); + assertEquals("1.2",new VersionSpecification(1,2).toString()); + assertEquals("1.2.3",new VersionSpecification(1,2,3).toString()); + assertEquals("1.2.3.qualifier",new VersionSpecification(1,2,3,"qualifier").toString()); + } + + @Test + public void testMatches() { + assertTrue(new VersionSpecification("").matches(new Version("1"))); + assertTrue(new VersionSpecification("1").matches(new Version("1"))); + assertFalse(new VersionSpecification("1").matches(new Version("2"))); + assertTrue(new VersionSpecification("").matches(new Version("1.2.3"))); + assertFalse(new VersionSpecification("").matches(new Version("1.2.3.qualifier"))); // qualifier requires exact match + + assertTrue(new VersionSpecification("1.2").matches(new Version("1.2"))); + assertTrue(new VersionSpecification("1").matches(new Version("1.2"))); + assertFalse(new VersionSpecification("1.2").matches(new Version("1.3"))); + assertFalse(new VersionSpecification("1.2").matches(new Version("2"))); + + assertTrue(new VersionSpecification("1.2.3").matches(new Version("1.2.3"))); + assertTrue(new VersionSpecification("1.2").matches(new Version("1.2.3"))); + assertTrue(new VersionSpecification("1").matches(new Version("1.2.3"))); + assertFalse(new VersionSpecification("1.2.3").matches(new Version("1.2.4"))); + assertFalse(new VersionSpecification("1.3").matches(new Version("1.2.3"))); + assertFalse(new VersionSpecification("2").matches(new Version("1.2.3"))); + + assertTrue(new VersionSpecification("1.2.3.qualifier").matches(new Version("1.2.3.qualifier"))); + assertFalse(new VersionSpecification("1.2.3.qualifier1").matches(new Version("1.2.3.qualifier2"))); + assertFalse(new VersionSpecification("1.2.3.qualifier").matches(new Version("1.2.3"))); + assertFalse(new VersionSpecification("1.2.3.qualifier").matches(new Version("1.2"))); + assertFalse(new VersionSpecification("1.2.3.qualifier").matches(new Version("1"))); + assertFalse(new VersionSpecification("1.2.3.qualifier").matches(new Version(""))); + + assertFalse(new VersionSpecification(1, null, null, null).matches(new Version("1.2.3.qualifier"))); + assertFalse(new VersionSpecification(1, 2, 0, "qualifier").matches(new Version("1.2.3.qualifier"))); + assertFalse(new VersionSpecification(1, 2, 3).matches(new Version("1.2.3.qualifier"))); + } + + @Test + public void testOrder() { + assertTrue(new VersionSpecification("1.2.3").compareTo(new VersionSpecification("1.2.3"))==0); + assertTrue(new VersionSpecification("1.2.3").compareTo(new VersionSpecification("1.2.4"))<0); + assertTrue(new VersionSpecification("1.2.3").compareTo(new VersionSpecification("1.2.2"))>0); + + assertTrue(new VersionSpecification("1.2.3").compareTo(new VersionSpecification("2"))<0); + assertTrue(new VersionSpecification("1.2.3").compareTo(new VersionSpecification("1.3"))<0); + + assertTrue(new VersionSpecification("1.0.0").compareTo(new VersionSpecification("1"))==0); + } + + @Test + public void testValidIntersect() { + VersionSpecification mostSpecific = new VersionSpecification(4, 2, 1); + VersionSpecification leastSpecific = new VersionSpecification(4, 2); + + assertEquals(mostSpecific, + mostSpecific.intersect(leastSpecific)); + assertEquals(mostSpecific, + leastSpecific.intersect(mostSpecific)); + } + + @Test(expected=RuntimeException.class) + public void testInvalidIntersect() { + new VersionSpecification(4, 1).intersect( + new VersionSpecification(4, 2)); + } +} diff --git a/component/src/test/java/com/yahoo/component/VersionTestCase.java b/component/src/test/java/com/yahoo/component/VersionTestCase.java new file mode 100644 index 00000000000..1d28de853a8 --- /dev/null +++ b/component/src/test/java/com/yahoo/component/VersionTestCase.java @@ -0,0 +1,81 @@ +// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.component; + +import com.yahoo.text.Utf8Array; +import com.yahoo.text.Utf8String; + +/** + * @author bratseth + */ +public class VersionTestCase extends junit.framework.TestCase { + + public void testPrimitiveCreation() { + Version version=new Version(1,2,3,"qualifier"); + assertEquals(1,version.getMajor()); + assertEquals(2,version.getMinor()); + assertEquals(3,version.getMicro()); + assertEquals("qualifier",version.getQualifier()); + } + + public void testUnderspecifiedPrimitiveCreation() { + Version version=new Version(1); + assertEquals(1,version.getMajor()); + assertEquals(1,version.getMajor()); + assertEquals(0,version.getMinor()); + assertEquals(0,version.getMicro()); + assertEquals("",version.getQualifier()); + } + + public void testStringCreation() { + Version version=new Version("1.2.3.qualifier"); + assertEquals(1,version.getMajor()); + assertEquals(2,version.getMinor()); + assertEquals(3,version.getMicro()); + assertEquals("qualifier",version.getQualifier()); + } + public void testUtf8StringCreation() { + Version version=new Version((Utf8Array)new Utf8String("1.2.3.qualifier")); + assertEquals(1,version.getMajor()); + assertEquals(2,version.getMinor()); + assertEquals(3,version.getMicro()); + assertEquals("qualifier",version.getQualifier()); + } + + public void testUnderspecifiedStringCreation() { + Version version=new Version("1"); + assertEquals(1,version.getMajor()); + assertEquals(0,version.getMinor()); + assertEquals(0,version.getMicro()); + assertEquals("",version.getQualifier()); + } + + public void testEquality() { + assertEquals(new Version(),Version.emptyVersion); + assertEquals(new Version(),new Version("")); + assertEquals(new Version(0,0,0),Version.emptyVersion); + assertEquals(new Version(1),new Version("1")); + assertEquals(new Version(1,2),new Version("1.2")); + assertEquals(new Version(1,2,3),new Version("1.2.3")); + assertEquals(new Version(1,2,3,"qualifier"),new Version("1.2.3.qualifier")); + } + + public void testToString() { + assertEquals("",new Version().toString()); + assertEquals("1",new Version(1).toString()); + assertEquals("1.2",new Version(1,2).toString()); + assertEquals("1.2.3",new Version(1,2,3).toString()); + assertEquals("1.2.3.qualifier",new Version(1,2,3,"qualifier").toString()); + } + + public void testOrder() { + assertTrue(new Version("1.2.3").compareTo(new Version("1.2.3"))==0); + assertTrue(new Version("1.2.3").compareTo(new Version("1.2.4"))<0); + assertTrue(new Version("1.2.3").compareTo(new Version("1.2.2"))>0); + + assertTrue(new Version("1.2.3").compareTo(new Version("2"))<0); + assertTrue(new Version("1.2.3").compareTo(new Version("1.3"))<0); + + assertTrue(new Version("1.0.0").compareTo(new Version("1"))==0); + } + +} |