758b72f9cebc1ace073a1a2063c98dbb10fb2354
[ccsdk/features.git] /
1 /*
2  * ============LICENSE_START=======================================================
3  * ONAP : ccsdk features
4  * ================================================================================
5  * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
6  * All rights reserved.
7  * ================================================================================
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  *     http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  * ============LICENSE_END=========================================================
20  *
21  */
22 package org.onap.ccsdk.features.sdnr.wt.dataprovider.dblib.test;
23
24 import static org.junit.Assert.assertTrue;
25 import java.util.HashMap;
26 import java.util.Map;
27 import org.junit.Test;
28 import org.onap.ccsdk.features.sdnr.wt.dataprovider.database.sqldb.query.SelectQuery;
29 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.EntityInput;
30 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ReadEventlogListInputBuilder;
31 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.entity.input.Filter;
32 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.entity.input.FilterBuilder;
33 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.entity.input.FilterKey;
34
35 public class TestQuerySyntax {
36
37
38     private static final String TABLENAME1 = "table1";
39     private static final String CONTROLLERID = "controllerid1";
40
41     @Test
42     public void testTimestampFilter() {
43         Map<FilterKey, Filter> filterMap = new HashMap<>();
44         Filter filter = new FilterBuilder().setProperty("timestamp").setFiltervalue("2021*").build();
45         filterMap.put(filter.key(), filter);
46         EntityInput input = new ReadEventlogListInputBuilder().setFilter(filterMap).build();
47         SelectQuery query = new SelectQuery(TABLENAME1, input, CONTROLLERID);
48         final String sql = query.toSql();
49         assertTrue(sql.contains("`timestamp`>='2021-01-01 00:00:00.000'"));
50         assertTrue(sql.contains("`timestamp`<'2022-01-01 00:00:00.0'"));
51     }
52
53     @Test
54     public void testTimestampFilter2() {
55         Map<FilterKey, Filter> filterMap = new HashMap<>();
56         Filter filter = new FilterBuilder().setProperty("timestamp").setFiltervalue(">2021").build();
57         filterMap.put(filter.key(), filter);
58         EntityInput input = new ReadEventlogListInputBuilder().setFilter(filterMap).build();
59         SelectQuery query = new SelectQuery(TABLENAME1, input, CONTROLLERID);
60         final String sql = query.toSql();
61         assertTrue(sql.contains("`timestamp`>='2022-01-01 00:00:00.0'"));
62     }
63
64     @Test
65     public void testTimestampFilter3() {
66         Map<FilterKey, Filter> filterMap = new HashMap<>();
67         Filter filter = new FilterBuilder().setProperty("timestamp").setFiltervalue(">=2021").build();
68         filterMap.put(filter.key(), filter);
69         EntityInput input = new ReadEventlogListInputBuilder().setFilter(filterMap).build();
70         SelectQuery query = new SelectQuery(TABLENAME1, input, CONTROLLERID);
71         final String sql = query.toSql();
72         assertTrue(sql.contains("`timestamp`>='2021-01-01 00:00:00.000'"));
73
74     }
75
76     @Test
77     public void testTimestampFilter4() {
78         Map<FilterKey, Filter> filterMap = new HashMap<>();
79         Filter filter = new FilterBuilder().setProperty("timestamp").setFiltervalue("<2021").build();
80         filterMap.put(filter.key(), filter);
81         EntityInput input = new ReadEventlogListInputBuilder().setFilter(filterMap).build();
82         SelectQuery query = new SelectQuery(TABLENAME1, input, CONTROLLERID);
83         final String sql = query.toSql();
84         assertTrue(sql.contains("`timestamp`<'2021-01-01 00:00:00.000'"));
85     }
86
87     @Test
88     public void testTimestampFilter5() {
89         Map<FilterKey, Filter> filterMap = new HashMap<>();
90         Filter filter = new FilterBuilder().setProperty("timestamp").setFiltervalue("<=2021").build();
91         filterMap.put(filter.key(), filter);
92         EntityInput input = new ReadEventlogListInputBuilder().setFilter(filterMap).build();
93         SelectQuery query = new SelectQuery(TABLENAME1, input, CONTROLLERID);
94         final String sql = query.toSql();
95         assertTrue(sql.contains("`timestamp`<'2022-01-01 00:00:00.0'"));
96     }
97
98     @Test
99     public void testTimestampFilter6() {
100         Map<FilterKey, Filter> filterMap = new HashMap<>();
101         Filter filter =
102                 new FilterBuilder().setProperty("timestamp").setFiltervalue(">=2022-01-01T00:00:00.000Z").build();
103         filterMap.put(filter.key(), filter);
104         EntityInput input = new ReadEventlogListInputBuilder().setFilter(filterMap).build();
105         SelectQuery query = new SelectQuery(TABLENAME1, input, CONTROLLERID);
106         final String sql = query.toSql();
107         assertTrue(sql.contains("`timestamp`>='2022-01-01 00:00:00.000'"));
108     }
109
110     @Test
111     public void testTimestampFilter8() {
112         Map<FilterKey, Filter> filterMap = new HashMap<>();
113         Filter filter =
114                 new FilterBuilder().setProperty("timestamp").setFiltervalue(">2022-01-01T00:00:00.000Z").build();
115         filterMap.put(filter.key(), filter);
116         EntityInput input = new ReadEventlogListInputBuilder().setFilter(filterMap).build();
117         SelectQuery query = new SelectQuery(TABLENAME1, input, CONTROLLERID);
118         final String sql = query.toSql();
119         assertTrue(sql.contains("`timestamp`>'2022-01-01 00:00:00.000'"));
120     }
121
122     @Test
123     public void testTimestampFilter9() {
124         Map<FilterKey, Filter> filterMap = new HashMap<>();
125         Filter filter =
126                 new FilterBuilder().setProperty("timestamp").setFiltervalue("<2022-01-01T00:00:00.000Z").build();
127         filterMap.put(filter.key(), filter);
128         EntityInput input = new ReadEventlogListInputBuilder().setFilter(filterMap).build();
129         SelectQuery query = new SelectQuery(TABLENAME1, input, CONTROLLERID);
130         final String sql = query.toSql();
131         assertTrue(sql.contains("`timestamp`<'2022-01-01 00:00:00.000'"));
132     }
133
134     @Test
135     public void testTimestampFilter10() {
136         Map<FilterKey, Filter> filterMap = new HashMap<>();
137         Filter filter =
138                 new FilterBuilder().setProperty("timestamp").setFiltervalue("<=2022-01-01T00:00:00.000Z").build();
139         filterMap.put(filter.key(), filter);
140         EntityInput input = new ReadEventlogListInputBuilder().setFilter(filterMap).build();
141         SelectQuery query = new SelectQuery(TABLENAME1, input, CONTROLLERID);
142         final String sql = query.toSql();
143         assertTrue(sql.contains("`timestamp`<='2022-01-01 00:00:00.000'"));
144     }
145
146     @Test
147     public void testTimestampFilter11() {
148         Map<FilterKey, Filter> filterMap = new HashMap<>();
149         Filter filter =
150                 new FilterBuilder().setProperty("timestamp").setFiltervalue("<=2022-01-01T00:00:00.000222Z").build();
151         filterMap.put(filter.key(), filter);
152         EntityInput input = new ReadEventlogListInputBuilder().setFilter(filterMap).build();
153         SelectQuery query = new SelectQuery(TABLENAME1, input, CONTROLLERID);
154         final String sql = query.toSql();
155         assertTrue(sql.contains("`timestamp`<='2022-01-01 00:00:00.000'"));
156     }
157 }