/* dCache - http://www.dcache.org/ * * Copyright (C) 2001 - 2016 Deutsches Elektronen-Synchrotron * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * 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 Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package diskCacheV111.doors; import org.junit.Test; import diskCacheV111.doors.DCapDoorInterpreterV3.Version; import static org.hamcrest.CoreMatchers.*; import static org.junit.Assert.assertThat; /** * Tests for parts of DCapDoorInterpreter */ public class DCapDoorInterpreterV3Tests { @Test public void versionShouldEqual() { Version v1_2 = new Version(1, 2); Version v1_1 = new Version(1, 1); Version v2_2 = new Version(2, 2); Version v1_1_1 = new Version(1,1,1,null); Version v1_1_1_1 = new Version(1,1,1,"1"); assertThat(v1_1, is(equalTo(v1_1))); assertThat(v1_2, is(equalTo(v1_2))); assertThat(v2_2, is(equalTo(v2_2))); assertThat(v1_1_1, is(equalTo(v1_1_1))); assertThat(v1_1_1_1, is(equalTo(v1_1_1_1))); assertThat(new Version(1,1), is(equalTo(v1_1))); assertThat(new Version(1,2), is(equalTo(v1_2))); assertThat(new Version(2,2), is(equalTo(v2_2))); assertThat(new Version(1,1,1,null), is(equalTo(v1_1_1))); assertThat(new Version(1,1,1,"1"), is(equalTo(v1_1_1_1))); assertThat(v1_1, not(equalTo(v1_2))); assertThat(v1_2, not(equalTo(v1_1))); assertThat(v2_2, not(equalTo(v1_2))); assertThat(v1_2, not(equalTo(v2_2))); assertThat(v2_2, not(equalTo(v1_1))); assertThat(v1_1, not(equalTo(v2_2))); assertThat(v1_1, is(not(equalTo(v1_1_1)))); assertThat(v1_1_1, is(not(equalTo(v1_1)))); assertThat(v1_1, is(not(equalTo(v1_1_1_1)))); assertThat(v1_1_1_1, is(not(equalTo(v1_1)))); assertThat(v1_1_1, is(not(equalTo(v1_1_1_1)))); assertThat(v1_1_1_1, is(not(equalTo(v1_1_1)))); } @Test public void versionShouldConstructFromString() { assertThat(new Version("1.2"), is(equalTo(new Version(1,2)))); assertThat(new Version("1.2.3"), is(equalTo(new Version(1,2,3,null)))); assertThat(new Version("1.2.3-4"), is(equalTo(new Version(1,2,3,"4")))); } @Test public void versionShouldMatchTo() { Version v1_2 = new Version(1, 2); Version v1_1 = new Version(1, 1); Version v2_1 = new Version(2, 1); Version v1_1_1 = new Version(1, 1, 1, null); Version v1_1_2 = new Version(1, 1, 2, null); Version v1_1_1_1 = new Version(1, 1, 1, "1"); Version v1_1_1_2 = new Version(1, 1, 1, "2"); assertThat(v1_1.matches(v1_1), is(equalTo(0))); assertThat(v1_2.matches(v1_2), is(equalTo(0))); assertThat(v2_1.matches(v2_1), is(equalTo(0))); assertThat(v1_1_1.matches(v1_1_1), is(equalTo(0))); assertThat(v1_1_2.matches(v1_1_2), is(equalTo(0))); assertThat(v1_1_1_1.matches(v1_1_1_1), is(equalTo(0))); assertThat(v1_1_1_2.matches(v1_1_1_2), is(equalTo(0))); assertThat(v1_1.matches(v1_1_1), is(equalTo(0))); assertThat(v1_1.matches(v1_1_1_1), is(equalTo(0))); assertThat(v1_1_1.matches(v1_1_1_1), is(equalTo(0))); assertThat(v1_1.matches(v1_2), is(equalTo(-1))); assertThat(v1_2.matches(v1_1), is(equalTo(1))); assertThat(v1_1.matches(v1_2), is(equalTo(-1))); assertThat(v2_1.matches(v1_1), is(equalTo(1))); assertThat(v1_2.matches(v2_1), is(equalTo(-1))); assertThat(v2_1.matches(v1_2), is(equalTo(1))); assertThat(v1_1_1.matches(v1_1), is(equalTo(1))); assertThat(v1_1_1.matches(v1_1_2), is(equalTo(-1))); assertThat(v1_1_2.matches(v1_1_1), is(equalTo(1))); assertThat(v1_1_1_1.matches(v1_1_1), is(equalTo(1))); assertThat(v1_1_1_1.matches(v1_1_1_2), is(equalTo(-1))); assertThat(v1_1_1_2.matches(v1_1_1_1), is(equalTo(1))); } }