| /******************************************************************************* |
| * Copyright (c) 2009 Cloudsmith Inc. and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * Cloudsmith Inc. - initial API and implementation |
| *******************************************************************************/ |
| |
| package org.eclipse.equinox.p2.tests.omniVersion; |
| |
| import junit.framework.TestCase; |
| import org.eclipse.equinox.internal.provisional.p2.core.Version; |
| |
| /** |
| * Tests format(n) and format(N) |
| * |
| */ |
| public class FormatNTest extends TestCase { |
| public void testNonNegative() { |
| Version v = Version.parseVersion("format(n):1"); |
| assertNotNull(v); |
| assertEquals(Version.parseVersion("raw:1"), v); |
| |
| assertNotNull(v = Version.parseVersion("format(n):0")); |
| assertEquals(Version.parseVersion("raw:0"), v); |
| |
| try { |
| Version.parseVersion("format(n):-1"); |
| fail("Uncaught exception: negative number in 'n' format"); |
| } catch (IllegalArgumentException e) { |
| assertTrue(true); |
| } |
| } |
| |
| public void testNegativeValues() { |
| Version v = Version.parseVersion("format(N):-1"); |
| assertNotNull(v); |
| assertEquals(Version.parseVersion("raw:-1"), v); |
| |
| assertNotNull(v = Version.parseVersion("format(N):1")); |
| assertEquals(Version.parseVersion("raw:1"), v); |
| |
| assertNotNull(v = Version.parseVersion("format(N):0")); |
| assertEquals(Version.parseVersion("raw:0"), v); |
| } |
| |
| public void testLeadingZeros() { |
| Version v = Version.parseVersion("format(n):000001"); |
| assertNotNull(v); |
| assertEquals(Version.parseVersion("raw:1"), v); |
| |
| assertNotNull(v = Version.parseVersion("format(N):-000001")); |
| assertEquals(Version.parseVersion("raw:-1"), v); |
| } |
| |
| public void testExact() { |
| Version v = Version.parseVersion("format(n={2};n={2};):1122"); |
| assertNotNull(v); |
| assertEquals(Version.parseVersion("raw:11.22"), v); |
| |
| assertNotNull(v = Version.parseVersion("format(N={4};N={1};):-1234")); |
| assertEquals(Version.parseVersion("raw:-123.4"), v); |
| |
| assertNotNull(v = Version.parseVersion("format(N={4};N={3};):-001234")); |
| assertEquals(Version.parseVersion("raw:-1.234"), v); |
| |
| try { |
| v = Version.parseVersion("format(n={2};.;n={2};):1.2"); |
| fail(); |
| } catch (IllegalArgumentException e) { |
| assertTrue(true); |
| } |
| try { |
| v = Version.parseVersion("format(n={2};.;n={2};):111.2222"); |
| fail(); |
| } catch (IllegalArgumentException e) { |
| assertTrue(true); |
| } |
| } |
| |
| public void testAtLeast() { |
| Version v = Version.parseVersion("format(n={2,};.n={2,};):111.22222"); |
| assertNotNull(v); |
| assertEquals(Version.parseVersion("raw:111.22222"), v); |
| try { |
| v = Version.parseVersion("format(n={2,};.;n={2};):111.2"); |
| fail(); |
| } catch (IllegalArgumentException e) { |
| assertTrue(true); |
| } |
| } |
| |
| public void testAtMost() { |
| Version v = Version.parseVersion("format(n={2,3};.n={2,3};):111.22"); |
| assertNotNull(v); |
| assertEquals(Version.parseVersion("raw:111.22"), v); |
| try { |
| v = Version.parseVersion("format(n={2,3};.n={2,3};):111.2222"); |
| fail(); |
| } catch (IllegalArgumentException e) { |
| assertTrue(true); |
| } |
| try { |
| v = Version.parseVersion("format(n={2,3};.n={2,3};):1.222"); |
| fail(); |
| } catch (IllegalArgumentException e) { |
| assertTrue(true); |
| } |
| } |
| |
| public void testNIsGreedy() { |
| try { |
| Version.parseVersion("format(nn):1010"); |
| fail(); |
| } catch (IllegalArgumentException e) { |
| assertTrue(true); |
| } |
| } |
| } |