2 * Licensed to the Apache Software Foundation (ASF) under one or more
3 * contributor license agreements. See the NOTICE file distributed with
4 * this work for additional information regarding copyright ownership.
5 * The ASF licenses this file to You under the Apache License, Version 2.0
6 * (the "License"); you may not use this file except in compliance with
7 * the License. You may obtain a copy of the License at
9 * http://www.apache.org/licenses/LICENSE-2.0
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
17 package org.opendaylight.yangtools.xsd.regex;
19 import static org.junit.Assert.assertEquals;
20 import java.util.regex.Pattern;
21 import org.junit.Test;
23 public class ToPatternStringTest {
25 private static void testPattern(final String xsd, final String java) {
26 final RegularExpression regex = new RegularExpression(xsd, "Xu");
27 final String patternString = regex.toPatternString();
29 final String expected = '^' + java + "$";
30 assertEquals(expected, patternString);
31 Pattern.compile(patternString);
35 public void testCaret() {
36 testPattern("^", "\\^");
40 public void testTextCaret() {
41 testPattern("abc^", "abc\\^");
45 public void testTextDollar() {
46 testPattern("abc$", "abc\\$");
50 public void testCaretCaret() {
51 testPattern("^^", "\\^\\^");
55 public void testCaretDollar() {
56 testPattern("^$", "\\^\\$");
60 public void testDot() {
61 testPattern(".", ".");
65 public void testNotColon() {
66 testPattern("[^:]+", "[\\x00-9;-\\x{10ffff}]+");
70 public void testDollar() {
71 testPattern("$", "\\$");
75 public void testDollarOneDollar() {
76 testPattern("$1$", "\\$1\\$");
80 public void testDollarPercentRange() {
81 testPattern("[$-%]+", "[\\$-%]+");
85 public void testDollarRange() {
86 testPattern("[$$]+", "[\\$]+");
90 public void testDollarCaretRange() {
91 testPattern("[$^]+", "[\\$\\^]+");
95 public void testSimple() {
96 testPattern("abc", "abc");
100 public void testDotPlus() {
101 testPattern(".+", ".+");
105 public void testDotStar() {
106 testPattern(".*", ".*");
110 public void testSimpleOptional() {
111 testPattern("a?", "a?");
115 public void testRangeOptional() {
116 testPattern("[a-z]?", "[a-z]?");