]> git.basschouten.com Git - openhab-addons.git/blob
9e291a0261b5065699726f1cd0ae0f6076ad8e8d
[openhab-addons.git] /
1 /**
2  * Copyright (c) 2010-2023 Contributors to the openHAB project
3  *
4  * See the NOTICE file(s) distributed with this work for additional
5  * information.
6  *
7  * This program and the accompanying materials are made available under the
8  * terms of the Eclipse Public License 2.0 which is available at
9  * http://www.eclipse.org/legal/epl-2.0
10  *
11  * SPDX-License-Identifier: EPL-2.0
12  */
13 package org.openhab.transform.regex.internal;
14
15 import static org.junit.jupiter.api.Assertions.*;
16
17 import org.junit.jupiter.api.BeforeEach;
18 import org.junit.jupiter.api.Test;
19 import org.openhab.core.transform.TransformationException;
20
21 /**
22  * @author Thomas.Eichstaedt-Engelen - Initial contribution
23  */
24 public class RegExTransformationServiceTest extends AbstractTransformationServiceTest {
25
26     private RegExTransformationService processor;
27
28     @BeforeEach
29     public void init() {
30         processor = new RegExTransformationService();
31     }
32
33     @Test
34     public void testTransformByRegex() throws TransformationException {
35         // method under test
36         String transformedResponse = processor.transform(".*?<current_conditions>.*?<temp_c data=\"(.*?)\".*", source);
37
38         // Asserts
39         assertEquals("8", transformedResponse);
40     }
41
42     @Test
43     public void testTransformByRegex_noGroup() throws TransformationException {
44         // method under test
45         String transformedResponse = processor.transform(".*", source);
46
47         // Asserts
48         assertEquals("", transformedResponse);
49     }
50
51     @Test
52     public void testTransformByRegex_moreThanOneGroup() throws TransformationException {
53         // method under test
54         String transformedResponse = processor.transform(".*?<current_conditions>.*?<temp_c data=\"(.*?)\"(.*)",
55                 source);
56
57         // Asserts
58         assertEquals("8", transformedResponse);
59     }
60
61     @Test
62     public void testTransformByRegex_substituteFirst() throws TransformationException {
63         // method under test
64         String transformedResponse = processor.transform("s/^OP:(.*?),ARG:(.*)$/$1($2)/", "OP:SetMode,ARG:42");
65
66         // Asserts
67         assertEquals("SetMode(42)", transformedResponse);
68     }
69
70     @Test
71     public void testTransformByRegex_substituteAll() throws TransformationException {
72         // method under test
73         String transformedResponse = processor.transform("s/([A-Z]+)([0-9]+),*/var$1=$2 /g", "X12,Y54");
74
75         // Asserts
76         assertEquals("varX=12 varY=54 ", transformedResponse);
77     }
78 }