/******************************************************************************* * 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)); } }