blob: b06c69ea2ac5677475ceb7515af7b71d8dfa1411 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2004, 2008 Eugene Kuleshov 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:
* Eugene Kuleshov - initial API and implementation
*******************************************************************************/
package org.eclipse.mylyn.tasks.tests.web;
import java.util.regex.Matcher;
import junit.framework.TestCase;
import org.eclipse.mylyn.internal.web.tasks.NamedPattern;
/**
* @author Eugene Kuleshov
*/
public class NamedPatternTest extends TestCase {
public void testNamedGroups() {
NamedPattern p = new NamedPattern("({Hour}\\d\\d):({Minute}\\d\\d):({Second}\\d\\d)", 0);
assertEquals("(\\d\\d):(\\d\\d):(\\d\\d)", p.getPattern().pattern());
assertEquals(3, p.getGroups().size());
assertEquals("Hour", p.groupName(0));
assertEquals("Minute", p.groupName(1));
assertEquals("Second", p.groupName(2));
Matcher m = p.matcher("01:02:03");
assertTrue(m.find());
assertEquals("01", p.group("Hour", m));
assertEquals("02", p.group("Minute", m));
assertEquals("03", p.group("Second", m));
}
public void testUnnamedGroups() {
NamedPattern p = new NamedPattern("(\\d\\d):(\\d\\d):(\\d\\d)", 0);
assertEquals("(\\d\\d):(\\d\\d):(\\d\\d)", p.getPattern().pattern());
assertEquals(0, p.getGroups().size());
Matcher m = p.matcher("01:02:03");
assertTrue(m.find());
assertEquals("01", m.group(1));
assertEquals("02", m.group(2));
assertEquals("03", m.group(3));
}
public void testNestedGroups() {
NamedPattern p = new NamedPattern(":({a}:({b}:({c}foo)boo)doo)", 0);
assertEquals(":(:(:(foo)boo)doo)", p.getPattern().pattern());
assertEquals(3, p.getGroups().size());
Matcher m = p.matcher(":::fooboodoo");
assertTrue(m.find());
assertEquals("::fooboodoo", p.group("a", m));
assertEquals(":fooboo", p.group("b", m));
assertEquals("foo", p.group("c", m));
}
}