/** * Copyright (C) 2013 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.integration.tool.portfolio; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertTrue; import org.testng.annotations.Test; import com.opengamma.integration.tool.portfolio.xml.SchemaVersion; import com.opengamma.util.test.TestGroup; /** * Test. */ @Test(groups = TestGroup.UNIT) public class SchemaVersionTest { @Test(expectedExceptions = IllegalArgumentException.class) public void testNullVersionIsNotAllowed() { new SchemaVersion(null); } @Test(expectedExceptions = IllegalArgumentException.class) public void testNonNumericVersionIsNotAllowed() { new SchemaVersion("1.a"); } @Test(expectedExceptions = IllegalArgumentException.class) public void testTrailingNonNumericIsNotAllowed() { new SchemaVersion("1.4a"); } @Test(expectedExceptions = IllegalArgumentException.class) public void testLeadingNonNumericIsNotAllowed() { new SchemaVersion("a1.4"); } @Test(expectedExceptions = IllegalArgumentException.class) public void testMajorVersionOnlyIsNotAllowed() { new SchemaVersion("1."); } @Test(expectedExceptions = IllegalArgumentException.class) public void testMinorVersionOnlyIsNotAllowed() { new SchemaVersion(".1"); } @Test(expectedExceptions = IllegalArgumentException.class) public void testDigitsOnlyIsNotAllowed() { new SchemaVersion("1"); } @Test public void testEquality() { SchemaVersion sv1 = new SchemaVersion("3.4"); SchemaVersion sv2 = new SchemaVersion("3.4"); assertEquals(sv1, sv2); } @Test public void testMajorOverridesMinor() { SchemaVersion sv1 = new SchemaVersion("3.4"); SchemaVersion sv2 = new SchemaVersion("4.1"); assertTrue(sv1.compareTo(sv2) < 0); } @Test public void testMinorUsedIfMajorAreSame() { SchemaVersion sv1 = new SchemaVersion("3.4"); SchemaVersion sv2 = new SchemaVersion("3.5"); assertTrue(sv1.compareTo(sv2) < 0); } @Test public void testIdenticalCompareSame() { SchemaVersion sv1 = new SchemaVersion("3.4"); SchemaVersion sv2 = new SchemaVersion("3.4"); assertTrue(sv1.compareTo(sv2) == 0); } @Test public void testLeadingZeroesAreIgnoredForOutput() { SchemaVersion sv = new SchemaVersion("003.00004"); assertEquals(sv.toString(), "3.4"); } @Test public void testLeadingZeroesAreIgnoredForEquality() { SchemaVersion sv1 = new SchemaVersion("003.00004"); SchemaVersion sv2 = new SchemaVersion("3.4"); assertEquals(sv1, sv2); } }