/******************************************************************************* * Copyright (c) 2016 Thomas Wolf <thomas.wolf@paranor.ch> * 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 *******************************************************************************/ package org.eclipse.egit.ui.internal.fetch; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; import org.junit.Test; /** * Tests for determining a Gerrit change number from a string. */ public class FetchGerritChangeTest { @Test public void testChangeStringNull() { assertNull(FetchGerritChangePage.determineChangeFromString(null)); } @Test public void testChangeStringEmpty() { assertNull(FetchGerritChangePage.determineChangeFromString("")); } @Test public void testChangeStringNoDigits() { assertNull(FetchGerritChangePage .determineChangeFromString("Just some string")); } @Test public void testChangeStringZero() { assertNull(FetchGerritChangePage.determineChangeFromString("0")); } @Test public void testChangeStringNegative() { assertNull(FetchGerritChangePage.determineChangeFromString("-17")); } @Test public void testChangeStringOverflow() { assertNull(FetchGerritChangePage .determineChangeFromString("4444444444444444/4")); assertNull(FetchGerritChangePage .determineChangeFromString("4/4444444444444444/")); } @Test public void testChangeStringUriNonsense() { assertNull(FetchGerritChangePage .determineChangeFromString("http://www.example.org/foo/bar")); assertNull(FetchGerritChangePage.determineChangeFromString( "https://git example.org/r/#/c/65510/")); } @Test public void testChangeStringMultiline() { assertNull(FetchGerritChangePage .determineChangeFromString("/10/\n65510/6")); } @Test public void testChangeStringUri() { assertEquals("65510", FetchGerritChangePage.determineChangeFromString( "https://git.example.org/r/#/c/65510")); assertEquals("65510", FetchGerritChangePage.determineChangeFromString( "https://git.example.org/r/#/c/65510/")); assertEquals("65510", FetchGerritChangePage.determineChangeFromString( "https://git.example.org/r/#/c/65510/6")); assertEquals("65510", FetchGerritChangePage.determineChangeFromString( "https://git.example.org/r/#/c/65510/6/")); assertEquals("65510", FetchGerritChangePage.determineChangeFromString( "https://git.example.org/r/#/c/65510/6/some.path/some/File.txt")); assertEquals("65510", FetchGerritChangePage.determineChangeFromString( "https://git.example.org/r/#/c/65510/4..5")); assertEquals("65510", FetchGerritChangePage.determineChangeFromString( "https://git.example.org/r/#/c/65510/4..5/")); assertEquals("65510", FetchGerritChangePage.determineChangeFromString( "https://git.example.org/r/#/c/65510/4..5/some.path/some/File.txt")); assertEquals("65510", FetchGerritChangePage.determineChangeFromString( "https://git.example.org:8080/r/#/c/65510")); } @Test public void testChangeStringSingleNumber() { assertEquals("65510", FetchGerritChangePage.determineChangeFromString("65510")); assertEquals("65510", FetchGerritChangePage.determineChangeFromString("/65510")); assertEquals("65510", FetchGerritChangePage.determineChangeFromString("65510/")); assertEquals("65510", FetchGerritChangePage.determineChangeFromString("/65510/")); } @Test public void testChangeStringTwoNumbers() { assertEquals("65510", FetchGerritChangePage.determineChangeFromString("65510/6")); assertEquals("65510", FetchGerritChangePage.determineChangeFromString("/65510/6")); assertEquals("65510", FetchGerritChangePage.determineChangeFromString("65510/6/")); assertEquals("65510", FetchGerritChangePage.determineChangeFromString("/65510/6/")); assertEquals("65510", FetchGerritChangePage.determineChangeFromString("10/65510")); assertEquals("65510", FetchGerritChangePage.determineChangeFromString("10/65510/")); assertEquals("65510", FetchGerritChangePage.determineChangeFromString("/10/65510")); assertEquals("65510", FetchGerritChangePage.determineChangeFromString("/10/65510/")); assertEquals("10", FetchGerritChangePage.determineChangeFromString("/10/10")); } @Test public void testChangeStringThreeNumbers() { assertEquals("65510", FetchGerritChangePage.determineChangeFromString("10/65510/6")); assertEquals("65510", FetchGerritChangePage.determineChangeFromString("/10/65510/6")); assertEquals("65510", FetchGerritChangePage.determineChangeFromString("10/65510/6/")); assertEquals("65510", FetchGerritChangePage .determineChangeFromString("/10/65510/6/")); assertEquals("10", FetchGerritChangePage.determineChangeFromString("/10/10/6")); assertEquals("10", FetchGerritChangePage.determineChangeFromString("/65510/10/6")); } }