01: /* TestCaseNameUtils.java
02: *
03: * DDSteps - Data Driven JUnit Test Steps
04: * Copyright (C) 2005 Jayway AB
05: * www.ddsteps.org
06: *
07: * This library is free software; you can redistribute it and/or
08: * modify it under the terms of the GNU Lesser General Public
09: * License version 2.1 as published by the Free Software Foundation.
10: *
11: * This library is distributed in the hope that it will be useful,
12: * but WITHOUT ANY WARRANTY; without even the implied warranty of
13: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14: * Lesser General Public License for more details.
15: *
16: * You should have received a copy of the GNU Lesser General Public
17: * License along with this library; if not, visit
18: * http://www.opensource.org/licenses/lgpl-license.php
19: */
20:
21: package org.ddsteps.util;
22:
23: import java.util.regex.Matcher;
24: import java.util.regex.Pattern;
25:
26: import org.apache.commons.lang.Validate;
27:
28: /**
29: * @author adam
30: * @version $Id: TestCaseNameUtils.java,v 1.1 2005/12/03 12:51:41 adamskogman Exp $
31: */
32: public class TestCaseNameUtils {
33:
34: protected static Pattern TEST_CASE_NAME_PATTERN = Pattern
35: .compile("^(test\\w+)(\\[([^\\]]+)\\])?$");
36:
37: /**
38: * @param testCaseName
39: * @return A TestCaseInfo, never null.
40: * @throws IllegalArgumentException If the name cannot be parsed, or is null.
41: */
42: public static TestCaseInfo parseTestCaseName(String testCaseName) {
43:
44: Validate.notNull(testCaseName,
45: "Argument testCaseName must not be null");
46:
47: Matcher matcher = TEST_CASE_NAME_PATTERN.matcher(testCaseName);
48:
49: if (matcher.matches()) {
50: String methodName = matcher.group(1);
51: // null if no match
52: String rowId = matcher.group(3);
53:
54: return new TestCaseInfo(methodName, rowId);
55: }
56:
57: throw new IllegalArgumentException(
58: "Could not parse the test case name: " + testCaseName);
59: }
60:
61: /**
62: * @param methodName
63: * @param rowId
64: * @return Composite testCase name. Never null.
65: */
66: public static String assembleName(String methodName, String rowId) {
67:
68: Validate.notEmpty(methodName,
69: "Argument methodName must not be empty.");
70: Validate.notEmpty(rowId, "Argument rowId must not be empty.");
71:
72: // TODO Use buffer
73: return methodName + "[" + rowId + "]";
74: }
75:
76: }
|