/* * Copyright 2010 Research Studios Austria Forschungsgesellschaft mBH * * This file is part of easyrec. * * easyrec is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * easyrec 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with easyrec. If not, see <http://www.gnu.org/licenses/>. */ package org.easyrec.plugin.model; import org.junit.Test; import static org.hamcrest.Matchers.*; import static org.junit.Assert.assertThat; import static org.junit.Assert.fail; /** * Tests for {@link org.easyrec.plugin.model.Version}. <p><b>Company: </b> SAT, Research Studios Austria</p> <p><b>Copyright: </b> (c) 2007</p> * <p><b>last modified:</b><br/> $Author$<br/> $Date$<br/> $Revision$</p> * * @author Patrick Marschik */ public class VersionTest { @Test public void stringCtor_shouldThrow() { try { new Version(""); fail(); } catch (IllegalArgumentException ex) { } try { new Version("1"); fail(); } catch (IllegalArgumentException ex) { } try { new Version("0.0"); fail(); } catch (IllegalArgumentException ex) { } try { new Version("0.0.0"); fail(); } catch (IllegalArgumentException ex) { } try { new Version("-1.0"); fail(); } catch (IllegalArgumentException ex) { } try { new Version("-1.0.0"); fail(); } catch (IllegalArgumentException ex) { } try { new Version("0.-1"); fail(); } catch (IllegalArgumentException ex) { } try { new Version("0.-1.0"); fail(); } catch (IllegalArgumentException ex) { } try { new Version("0.0.-1"); fail(); } catch (IllegalArgumentException ex) { } try { new Version(null); fail(); } catch (IllegalArgumentException ex) { } try { new Version("a.0"); fail(); } catch (IllegalArgumentException ex) { } try { new Version("a.0.0"); fail(); } catch (IllegalArgumentException ex) { } try { new Version("0.b"); fail(); } catch (IllegalArgumentException ex) { } try { new Version("0.b.0"); fail(); } catch (IllegalArgumentException ex) { } try { new Version("0.0.c"); fail(); } catch (IllegalArgumentException ex) { } } @Test public void intCtor_shouldThrow() { try { new Version(0, 0); fail(); } catch (IllegalArgumentException ex) { } try { new Version(0, 0, 0); fail(); } catch (IllegalArgumentException ex) { } try { new Version(-1, 0); fail(); } catch (IllegalArgumentException ex) { } try { new Version(0, -1); fail(); } catch (IllegalArgumentException ex) { } try { new Version(-1, 0, 0); fail(); } catch (IllegalArgumentException ex) { } try { new Version(0, -1, 0); fail(); } catch (IllegalArgumentException ex) { } try { new Version(0, 0, -1); fail(); } catch (IllegalArgumentException ex) { } } @Test public void stringCtor_shouldParseCorrectly() { Version version = new Version("1.2.3"); assertThat(version.getMajor(), is(1)); assertThat(version.getMinor(), is(2)); assertThat(version.isMiscAvailable(), is(true)); assertThat(version.getMisc(), is(3)); version = new Version("1.2"); assertThat(version.getMajor(), is(1)); assertThat(version.getMinor(), is(2)); assertThat(version.isMiscAvailable(), is(false)); assertThat(version.getMisc(), is(nullValue())); } @Test public void toString_shouldOutputCorrectly() { String versionStr = "1.2.3"; Version version = new Version(versionStr); assertThat(version.toString(), is(versionStr)); versionStr = "1.2"; version = new Version(versionStr); assertThat(version.toString(), is(versionStr)); } @Test public void valueOf_shouldBeIdenticalToToString() { assertThat(Version.valueOf("1.2.3").toString(), is("1.2.3")); assertThat(Version.valueOf("1.2").toString(), is("1.2")); } @Test public void parseVersion_shouldBeIdenticalToToString() { assertThat(Version.parseVersion("1.2.3").toString(), is("1.2.3")); assertThat(Version.parseVersion("1.2").toString(), is("1.2")); } @Test public void compare_shouldWork() { Version v1 = new Version("0.0.1"); Version v1b = new Version("0.0.2"); Version v2 = new Version("0.1.0"); Version v2b = new Version("0.2.0"); Version v2c = new Version("0.1"); Version v3 = new Version("1.1.0"); Version v3b = new Version("2.1.0"); Version v3c = new Version("1.1"); assertThat(v1, lessThan(v1b)); assertThat(v1b, greaterThan(v1)); assertThat(v2, lessThan(v2b)); assertThat(v2b, greaterThan(v2)); assertThat(v3, lessThan(v3b)); assertThat(v3b, greaterThan(v3)); assertThat(v1, lessThan(v2)); assertThat(v2, lessThan(v3)); assertThat(v1, lessThan(v3)); assertThat(v2, greaterThan(v1)); assertThat(v3, greaterThan(v2)); assertThat(v3, greaterThan(v1)); assertThat(v2c, lessThan(v2)); assertThat(v2, greaterThan(v2c)); assertThat(v3c, lessThan(v3)); assertThat(v3, greaterThan(v3c)); } }