2 * ============LICENSE_START=======================================================
3 * ONAP : ccsdk features
4 * ================================================================================
5 * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property.
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
12 * http://www.apache.org/licenses/LICENSE-2.0
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=========================================================
22 package org.onap.ccsdk.features.sdnr.wt.dataprovider.dblib.test;
24 import static org.junit.Assert.assertTrue;
25 import java.util.HashMap;
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;
35 public class TestQuerySyntax {
38 private static final String TABLENAME1 = "table1";
39 private static final String CONTROLLERID = "controllerid1";
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'"));
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'"));
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'"));
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'"));
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'"));
99 public void testTimestampFilter6() {
100 Map<FilterKey, Filter> filterMap = new HashMap<>();
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'"));
111 public void testTimestampFilter8() {
112 Map<FilterKey, Filter> filterMap = new HashMap<>();
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'"));
123 public void testTimestampFilter9() {
124 Map<FilterKey, Filter> filterMap = new HashMap<>();
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'"));
135 public void testTimestampFilter10() {
136 Map<FilterKey, Filter> filterMap = new HashMap<>();
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'"));
147 public void testTimestampFilter11() {
148 Map<FilterKey, Filter> filterMap = new HashMap<>();
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'"));