+++ /dev/null
-/*
- * Copyright (c) 2017 Cisco Systems, Inc. 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
- */
-
-package org.opendaylight.yangtools.yang.data.jaxen;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-import static org.mockito.Mockito.mock;
-
-import com.google.common.collect.ImmutableList;
-import org.jaxen.Context;
-import org.jaxen.Function;
-import org.jaxen.FunctionCallException;
-import org.junit.Test;
-
-public class ReMatchXPathFunctionTest {
-
- @Test
- public void testRematchFunction() throws Exception {
- // re-match() uses regex processing from yang-parser-impl which has been thoroughly tested within
- // the Bug5410Test unit test class, so here is just a basic test
- final YangFunctionContext yangFunctionContext = YangFunctionContext.getInstance();
- final Function rematchFunction = yangFunctionContext.getFunction(null, null, "re-match");
-
- final Context mockedContext = mock(Context.class);
-
- boolean rematchResult = (boolean) rematchFunction.call(mockedContext, ImmutableList.of("abbc", "[abc]{1,4}"));
- assertTrue(rematchResult);
- rematchResult = (boolean) rematchFunction.call(mockedContext, ImmutableList.of("abbcc", "[abc]{1,4}"));
- assertFalse(rematchResult);
- }
-
- @Test
- public void shouldFailOnInvalidNumberOfArguments() throws Exception {
- final YangFunctionContext yangFunctionContext = YangFunctionContext.getInstance();
- final Function rematchFunction = yangFunctionContext.getFunction(null, null, "re-match");
-
- final Context mockedContext = mock(Context.class);
-
- try {
- rematchFunction.call(mockedContext, ImmutableList.of("abbc", "[abc]{1,4}", "should not be here"));
- fail("Function call should have failed on invalid number of arguments.");
- } catch (final FunctionCallException ex) {
- assertEquals("re-match() takes two arguments: string subject, string pattern.", ex.getMessage());
- }
- }
-
- @Test
- public void shouldFailOnInvalidTypeOfArgument() throws Exception {
- final YangFunctionContext yangFunctionContext = YangFunctionContext.getInstance();
- final Function rematchFunction = yangFunctionContext.getFunction(null, null, "re-match");
-
- final Context mockedContext = mock(Context.class);
-
- try {
- rematchFunction.call(mockedContext, ImmutableList.of(100, "[abc]{1,4}"));
- fail("Function call should have failed on invalid type of the subject argument.");
- } catch (final FunctionCallException ex) {
- assertEquals("First argument of re-match() should be a String.", ex.getMessage());
- }
-
- try {
- rematchFunction.call(mockedContext, ImmutableList.of("abbc", 100));
- fail("Function call should have failed on invalid type of the pattern argument.");
- } catch (final FunctionCallException ex) {
- assertEquals("Second argument of re-match() should be a String.", ex.getMessage());
- }
- }
-}
\ No newline at end of file