/* * Copyright (c) 2013 Big Switch Networks, Inc. * * Licensed under the Eclipse Public License, Version 1.0 (the * "License"); you may not use this file except in compliance with the * License. You may obtain a copy of the License at * * http://www.eclipse.org/legal/epl-v10.html * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or * implied. See the License for the specific language governing * permissions and limitations under the License. */ package org.sdnplatform; import static org.junit.Assert.*; import org.junit.Test; import org.sdnplatform.SimpleVersion; public class SimpleVersionTest { @Test public void testParsing() { SimpleVersion v; v = new SimpleVersion(); assertEquals(0, v.getMajor()); assertEquals(0, v.getMinor()); assertEquals(0, v.getBuild()); v.setVersion("1.2.3"); assertEquals(1, v.getMajor()); assertEquals(2, v.getMinor()); assertEquals(3, v.getBuild()); v.clear(); assertEquals(0, v.getMajor()); assertEquals(0, v.getMinor()); assertEquals(0, v.getBuild()); v = new SimpleVersion("1.2.3"); assertEquals(1, v.getMajor()); assertEquals(2, v.getMinor()); assertEquals(3, v.getBuild()); v.setVersion("asdf11.22.33.44.55.66asdf"); assertEquals(11, v.getMajor()); assertEquals(22, v.getMinor()); assertEquals(33, v.getBuild()); v.setVersion("asdf1.2.asdf.11.22.33.asdf"); assertEquals(11, v.getMajor()); assertEquals(22, v.getMinor()); assertEquals(33, v.getBuild()); try { v.setVersion("1.2."); fail("Should have thrown Exception"); } catch (IllegalArgumentException e) { assertEquals(0, v.getMajor()); assertEquals(0, v.getMinor()); assertEquals(0, v.getBuild()); } try { v = new SimpleVersion("asdf"); fail("Should have thrown Exception"); } catch (IllegalArgumentException e) { // expected } try { v.setVersion("12123456789012345678901233.9.9"); fail("Should have thrown Exception"); } catch (IllegalArgumentException e) { // expected } try { v.setVersion("1.123456789012345678901233.2"); fail("Should have thrown Exception"); } catch (IllegalArgumentException e) { // expected } try { v.setVersion("1.2.123456789012345678901233"); fail("Should have thrown Exception"); } catch (IllegalArgumentException e) { // expected } } protected void doOneCompare(String v1, String v2, int expected) { SimpleVersion sv1 = new SimpleVersion(v1); SimpleVersion sv2 = new SimpleVersion(v2); assertEquals(expected, sv1.compareTo(sv2)); assertEquals(-expected, sv2.compareTo(sv1)); if (sv1.compareTo(sv2) == 0) assertEquals(true, sv1.equals(sv2)); if (sv1.equals(sv2)) assertEquals(0, sv1.compareTo(sv2)); } @Test public void testCompareTo() { doOneCompare("1.0.0", "1.0.0", 0); doOneCompare("1.0.1", "1.0.0", 1); doOneCompare("1.1.0", "1.0.0", 1); doOneCompare("2.0.0", "1.0.0", 1); doOneCompare("10.0.0", "2.0.0", 1); doOneCompare("2.0.0", "10.0.0", -1); } }