]> git.basschouten.com Git - openhab-addons.git/blob
fbb4a7ded66326802edabd07c8c7616b304c628f
[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.binding.dbquery.internal.dbimpl;
14
15 import static org.hamcrest.MatcherAssert.assertThat;
16 import static org.hamcrest.Matchers.equalTo;
17
18 import java.util.HashMap;
19 import java.util.Map;
20
21 import org.eclipse.jdt.annotation.NonNullByDefault;
22 import org.eclipse.jdt.annotation.Nullable;
23 import org.junit.jupiter.api.Test;
24 import org.openhab.binding.dbquery.internal.domain.QueryParameters;
25
26 /**
27  *
28  * @author Joan Pujol - Initial contribution
29  */
30 @NonNullByDefault
31 public class StringSubstitutionParamsParserTest {
32
33     @Test
34     public void testMultipleParameters() {
35         String query = "from(bucket:\\\"my-bucket\\\") |> range(start: ${start}) |> fill( value: ${fillValue})";
36         var parser = new StringSubstitutionParamsParser(query);
37         QueryParameters parameters = new QueryParameters(Map.of("start", "0", "fillValue", "1"));
38
39         var result = parser.getQueryWithParametersReplaced(parameters);
40
41         assertThat(result, equalTo("from(bucket:\\\"my-bucket\\\") |> range(start: 0) |> fill( value: 1)"));
42     }
43
44     @Test
45     public void testRepeatedParameter() {
46         String query = "from(bucket:\\\"my-bucket\\\") |> range(start: ${start}) |> limit(n:${start})";
47         var parser = new StringSubstitutionParamsParser(query);
48         QueryParameters parameters = new QueryParameters(Map.of("start", "0"));
49
50         var result = parser.getQueryWithParametersReplaced(parameters);
51
52         assertThat(result, equalTo("from(bucket:\\\"my-bucket\\\") |> range(start: 0) |> limit(n:0)"));
53     }
54
55     @Test
56     public void testNullAndNotDefinedParametersAreSubstitutedByEmptyString() {
57         String query = "from(bucket:\\\"my-bucket\\\") |> range(start: ${start}) |> limit(n:${start})";
58         var parser = new StringSubstitutionParamsParser(query);
59         var paramMap = new HashMap<String, @Nullable Object>();
60         paramMap.put("start", null);
61         QueryParameters parameters = new QueryParameters(paramMap);
62
63         var result = parser.getQueryWithParametersReplaced(parameters);
64
65         assertThat(result, equalTo("from(bucket:\\\"my-bucket\\\") |> range(start: ) |> limit(n:)"));
66     }
67 }