⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 metapatterntest.java

📁 Wicket一个开发Java Web应用程序框架。它使得开发web应用程序变得容易而轻松。 Wicket利用一个POJO data beans组件使得它可以与任何持久层技术相结合。
💻 JAVA
字号:
/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements.  See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0 * * 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.apache.wicket.util.parse.metapattern;import java.util.regex.Matcher;import junit.framework.TestCase;import org.apache.wicket.util.parse.metapattern.parsers.CommaSeparatedVariableParser;import org.apache.wicket.util.parse.metapattern.parsers.IntegerVariableAssignmentParser;import org.apache.wicket.util.parse.metapattern.parsers.TagNameParser;import org.apache.wicket.util.parse.metapattern.parsers.VariableAssignmentParser;/** * Test cases for this object *  * @author Jonathan Locke */public final class MetaPatternTest extends TestCase{	/**	 * 	 */	public void testSimple()	{		// Parse "variable = <number>"		final Group variable = new Group(MetaPattern.VARIABLE_NAME);		final IntegerGroup value = new IntegerGroup(MetaPattern.INTEGER);		final MetaPattern variableAssignment = new MetaPattern(new MetaPattern[] { variable,				MetaPattern.OPTIONAL_WHITESPACE, MetaPattern.EQUALS,				MetaPattern.OPTIONAL_WHITESPACE, value });		final Matcher matcher = variableAssignment.matcher("foo = 9");		assertTrue(matcher.matches());		assertEquals("foo", matcher.group(1));		assertEquals("9", matcher.group(2));	}	/**	 * Test assignment of variables.	 */	public void testVariableAssignmentParser()	{		VariableAssignmentParser parser = new VariableAssignmentParser("foo = 9");		assertTrue(parser.matches());		assertEquals("foo", parser.getKey());		assertEquals("9", parser.getValue());		parser = new VariableAssignmentParser("foo=9");		assertTrue(parser.matches());		assertEquals("foo", parser.getKey());		assertEquals("9", parser.getValue());	}	/**	 * Test assignment of integers.	 */	public void testIntegerVariableAssignmentParser()	{		IntegerVariableAssignmentParser parser = new IntegerVariableAssignmentParser("foo = 9");		assertTrue(parser.matches());		assertEquals("foo", parser.getVariable());		assertEquals(9, parser.getIntValue());		assertEquals(9, parser.getLongValue());		parser = new IntegerVariableAssignmentParser("foo=9");		assertTrue(parser.matches());		assertEquals("foo", parser.getVariable());		assertEquals(9, parser.getIntValue());		assertEquals(9, parser.getLongValue());		parser = new IntegerVariableAssignmentParser("foo=a");		assertFalse(parser.matches());	}	/**	 * Test parsing of comma separated variables.	 */	public void testCommaSeparatedVariableParser()	{		CommaSeparatedVariableParser parser = new CommaSeparatedVariableParser("a,b,c");		assertTrue(parser.matches());		assertEquals(3, parser.getValues().size());		assertEquals("a", parser.getValues().get(0));		assertEquals("b", parser.getValues().get(1));		assertEquals("c", parser.getValues().get(2));		// no whitespaces will be removed		parser = new CommaSeparatedVariableParser(" a ,b, c , d ");		assertTrue(parser.matches());		assertEquals(4, parser.getValues().size());		assertEquals(" a ", parser.getValues().get(0));		assertEquals("b", parser.getValues().get(1));		assertEquals(" c ", parser.getValues().get(2));		assertEquals(" d ", parser.getValues().get(3));		// It'll care for "" and '' but it'll not remove them		parser = new CommaSeparatedVariableParser("'a ',\" b\",'c,d'");		assertTrue(parser.matches());		assertEquals(3, parser.getValues().size());		assertEquals("'a '", parser.getValues().get(0));		assertEquals("\" b\"", parser.getValues().get(1));		assertEquals("'c,d'", parser.getValues().get(2));		// But no escapes. Because no separator is following the 2nd "'",		// it'll stop parsing the string.		parser = new CommaSeparatedVariableParser("'a\'b, c");		assertTrue(parser.matches());		assertEquals(1, parser.getValues().size());		assertEquals("'a'", parser.getValues().get(0));		parser = new CommaSeparatedVariableParser("a");		assertTrue(parser.matches());		assertEquals(1, parser.getValues().size());		assertEquals("a", parser.getValues().get(0));		// Empty elements are not supported		parser = new CommaSeparatedVariableParser("a,,");		assertTrue(parser.matches());		assertEquals(1, parser.getValues().size());		assertEquals("a", parser.getValues().get(0));	}	/**	 * Test the tag parser.	 */	public void testTagParser()	{		String tag = "name";		TagNameParser parser = new TagNameParser(tag);		assertEquals(true, parser.matcher().matches());		assertEquals("name", parser.getName());		assertNull(parser.getNamespace());		tag = "namespace:name";		parser = new TagNameParser(tag);		assertEquals(true, parser.matcher().matches());		assertEquals("name", parser.getName());		assertEquals("namespace", parser.getNamespace());		tag = "namespace:";		parser = new TagNameParser(tag);		assertEquals(false, parser.matcher().matches());		tag = ":names";		parser = new TagNameParser(tag);		assertEquals(false, parser.matcher().matches());	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -