This project has retired. For details please refer to its
Attic page.
QueryStatementTest xref
1/*2 * Licensed to the Apache Software Foundation (ASF) under one3 * or more contributor license agreements. See the NOTICE file4 * distributed with this work for additional information5 * regarding copyright ownership. The ASF licenses this file6 * to you under the Apache License, Version 2.0 (the7 * "License"); you may not use this file except in compliance8 * with the License. You may obtain a copy of the License at9 *10 * http://www.apache.org/licenses/LICENSE-2.011 *12 * Unless required by applicable law or agreed to in writing,13 * software distributed under the License is distributed on an14 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY15 * KIND, either express or implied. See the License for the16 * specific language governing permissions and limitations17 * under the License.18 */19package org.apache.chemistry.opencmis.client.runtime;
2021importstatic org.junit.Assert.assertEquals;
2223import java.util.GregorianCalendar;
24import java.util.HashMap;
25import java.util.TimeZone;
2627import org.apache.chemistry.opencmis.client.api.QueryStatement;
28import org.apache.chemistry.opencmis.client.api.Session;
29import org.junit.Test;
3031publicclassQueryStatementTest {
3233 @Test
34publicvoid testStaticQueries() {
35 Session session = new SessionImpl(new HashMap<String, String>(), null, null, null);
36 String query;
37 QueryStatement st;
3839 query = "SELECT cmis:name FROM cmis:folder";
40 st = new QueryStatementImpl(session, query);
41 assertEquals(query, st.toQueryString());
4243 query = "SELECT * FROM cmis:document WHERE cmis:createdBy = \'admin\' AND abc:int = 42";
44 st = new QueryStatementImpl(session, query);
45 assertEquals(query, st.toQueryString());
4647 query = "SELECT * FROM cmis:document WHERE abc:test = 'x?z'";
48 st = new QueryStatementImpl(session, query);
49 st.setString(1, "y");
50 assertEquals(query, st.toQueryString());
51 }
5253 @Test
54publicvoid testWherePlacholder() {
55 Session session = new SessionImpl(new HashMap<String, String>(), null, null, null);
56 String query;
57 QueryStatement st;
5859// strings60 query = "SELECT * FROM cmis:document WHERE abc:string = ?";
61 st = new QueryStatementImpl(session, query);
62 st.setString(1, "test");
63 assertEquals("SELECT * FROM cmis:document WHERE abc:string = 'test'", st.toQueryString());
6465 query = "SELECT * FROM cmis:document WHERE abc:string = ?";
66 st = new QueryStatementImpl(session, query);
67 st.setString(1, "te'st");
68 assertEquals("SELECT * FROM cmis:document WHERE abc:string = 'te\\'st'", st.toQueryString());
6970// likes71 query = "SELECT * FROM cmis:document WHERE abc:string LIKE ?";
72 st = new QueryStatementImpl(session, query);
73 st.setStringLike(1, "%test%");
74 assertEquals("SELECT * FROM cmis:document WHERE abc:string LIKE '%test%'", st.toQueryString());
7576 query = "SELECT * FROM cmis:document WHERE abc:string LIKE ?";
77 st = new QueryStatementImpl(session, query);
78 st.setStringLike(1, "\\_test\\%blah\\\\blah");
79 assertEquals("SELECT * FROM cmis:document WHERE abc:string LIKE '\\_test\\%blah\\\\\\\\blah'",
80 st.toQueryString());
8182// ids83 query = "SELECT * FROM cmis:document WHERE abc:id = ?";
84 st = new QueryStatementImpl(session, query);
85 st.setId(1, new ObjectIdImpl("123"));
86 assertEquals("SELECT * FROM cmis:document WHERE abc:id = '123'", st.toQueryString());
8788// booleans89 query = "SELECT * FROM cmis:document WHERE abc:bool = ?";
90 st = new QueryStatementImpl(session, query);
91 st.setBoolean(1, true);
92 assertEquals("SELECT * FROM cmis:document WHERE abc:bool = TRUE", st.toQueryString());
9394// numbers95 query = "SELECT * FROM cmis:document WHERE abc:int = ? AND abc:int2 = 123";
96 st = new QueryStatementImpl(session, query);
97 st.setNumber(1, 42);
98 assertEquals("SELECT * FROM cmis:document WHERE abc:int = 42 AND abc:int2 = 123", st.toQueryString());
99100// dateTime101 query = "SELECT * FROM cmis:document WHERE abc:dateTime = TIMESTAMP ?";
102 GregorianCalendar cal = new GregorianCalendar(TimeZone.getTimeZone("GMT"));
103 cal.clear();
104 cal.set(2012, 1, 2, 3, 4, 5);
105106 st = new QueryStatementImpl(session, query);
107 st.setDateTime(1, cal);
108 assertEquals("SELECT * FROM cmis:document WHERE abc:dateTime = TIMESTAMP '2012-02-02T03:04:05.000Z'",
109 st.toQueryString());
110111 st = new QueryStatementImpl(session, query);
112 st.setDateTime(1, cal.getTimeInMillis());
113 assertEquals("SELECT * FROM cmis:document WHERE abc:dateTime = TIMESTAMP '2012-02-02T03:04:05.000Z'",
114 st.toQueryString());
115 }
116 }