/*! * This program is free software; you can redistribute it and/or modify it under the * terms of the GNU Lesser General Public License, version 2.1 as published by the Free Software * Foundation. * * You should have received a copy of the GNU Lesser General Public License along with this * program; if not, you can obtain a copy at http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html * or from the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * * This program 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. * * Copyright (c) 2002-2013 Pentaho Corporation.. All rights reserved. */ package org.pentaho.marketplace; import org.junit.Assert; import org.junit.Test; import org.pentaho.marketplace.domain.model.entities.VersionData; public class VersionDataTest { @Test public void testVersionData() { VersionData vd = new VersionData("4.5.0-GA"); Assert.assertEquals("4.5.0-GA", vd.getInfo()); Assert.assertEquals(4, vd.getMajor()); Assert.assertEquals(5, vd.getMinor()); Assert.assertEquals(0, vd.getPatch()); vd = new VersionData("4.5.0.GA"); Assert.assertEquals("4.5.0.GA", vd.getInfo()); Assert.assertEquals(4, vd.getMajor()); Assert.assertEquals(5, vd.getMinor()); Assert.assertEquals(0, vd.getPatch()); vd = new VersionData("4.5.0-stable"); Assert.assertEquals("4.5.0-stable", vd.getInfo()); Assert.assertEquals(4, vd.getMajor()); Assert.assertEquals(5, vd.getMinor()); Assert.assertEquals(0, vd.getPatch()); vd = new VersionData("4.5-SNAPSHOT"); Assert.assertEquals(4, vd.getMajor()); Assert.assertEquals(5, vd.getMinor()); Assert.assertEquals(Integer.MAX_VALUE, vd.getPatch()); vd = new VersionData("TRUNK-SNAPSHOT"); Assert.assertEquals(Integer.MAX_VALUE, vd.getMajor()); Assert.assertEquals(Integer.MAX_VALUE, vd.getMinor()); Assert.assertEquals(Integer.MAX_VALUE, vd.getPatch()); vd = new VersionData("SUGAR-SNAPSHOT"); Assert.assertEquals(Integer.MAX_VALUE, vd.getMajor()); Assert.assertEquals(Integer.MAX_VALUE, vd.getMinor()); Assert.assertEquals(Integer.MAX_VALUE, vd.getPatch()); vd = new VersionData("4.5"); Assert.assertEquals(4, vd.getMajor()); Assert.assertEquals(5, vd.getMinor()); Assert.assertEquals(0, vd.getPatch()); vd = new VersionData("4.5.0"); Assert.assertEquals(4, vd.getMajor()); Assert.assertEquals(5, vd.getMinor()); Assert.assertEquals(0, vd.getPatch()); vd = new VersionData("4"); Assert.assertEquals(4, vd.getMajor()); Assert.assertEquals(0, vd.getMinor()); Assert.assertEquals(0, vd.getPatch()); vd = new VersionData("4-SNAPSHOT"); Assert.assertEquals(4, vd.getMajor()); Assert.assertEquals(Integer.MAX_VALUE, vd.getMinor()); Assert.assertEquals(Integer.MAX_VALUE, vd.getPatch()); vd = new VersionData(null); Assert.assertEquals("", vd.getInfo()); Assert.assertEquals(Integer.MAX_VALUE, vd.getMajor()); Assert.assertEquals(Integer.MAX_VALUE, vd.getMinor()); Assert.assertEquals(Integer.MAX_VALUE, vd.getPatch()); Assert.assertTrue("snapshot check failed", new VersionData("4.5.0-GA").within(new VersionData("4.5"), new VersionData("4.5-SNAPSHOT"))); Assert.assertFalse("ga check failed", new VersionData("4.5.0-GA").within(new VersionData("4.5.0-stable"), new VersionData("4.5.0-stable"))); Assert.assertTrue("min version failed", new VersionData("4.5.0-GA").within(new VersionData("4"), new VersionData("TRUNK-SNAPSHOT"))); Assert.assertTrue("max version failed", new VersionData("TRUNK-SNAPSHOT").within(new VersionData("4"), new VersionData("TRUNK-SNAPSHOT"))); Assert.assertFalse("too small major failed", new VersionData("3.5.0-GA").within(new VersionData("4"), new VersionData("5"))); Assert.assertFalse("too small minor failed", new VersionData("4.5.0-GA").within(new VersionData("4.6"), new VersionData("4.9"))); Assert.assertFalse("too big patch failed", new VersionData("4.5.0-GA").within(new VersionData("2.5"), new VersionData("3.5.0"))); Assert.assertTrue("patch snapshot failed", new VersionData("5.0.0-stable").within(new VersionData("5.0"), new VersionData("5.0-SNAPSHOT"))); Assert.assertTrue("null check failed", new VersionData("5.0.0-stable").within(new VersionData("5.0"), new VersionData("5.0-SNAPSHOT"))); } }