Source Code Cross Referenced for AbstractQuery2Test.java in  » Content-Management-System » daisy » org » outerj » daisy » repository » test » Java Source Code / Java DocumentationJava Source Code and Java Documentation

Java Source Code / Java Documentation
1. 6.0 JDK Core
2. 6.0 JDK Modules
3. 6.0 JDK Modules com.sun
4. 6.0 JDK Modules com.sun.java
5. 6.0 JDK Modules sun
6. 6.0 JDK Platform
7. Ajax
8. Apache Harmony Java SE
9. Aspect oriented
10. Authentication Authorization
11. Blogger System
12. Build
13. Byte Code
14. Cache
15. Chart
16. Chat
17. Code Analyzer
18. Collaboration
19. Content Management System
20. Database Client
21. Database DBMS
22. Database JDBC Connection Pool
23. Database ORM
24. Development
25. EJB Server geronimo
26. EJB Server GlassFish
27. EJB Server JBoss 4.2.1
28. EJB Server resin 3.1.5
29. ERP CRM Financial
30. ESB
31. Forum
32. GIS
33. Graphic Library
34. Groupware
35. HTML Parser
36. IDE
37. IDE Eclipse
38. IDE Netbeans
39. Installer
40. Internationalization Localization
41. Inversion of Control
42. Issue Tracking
43. J2EE
44. JBoss
45. JMS
46. JMX
47. Library
48. Mail Clients
49. Net
50. Parser
51. PDF
52. Portal
53. Profiler
54. Project Management
55. Report
56. RSS RDF
57. Rule Engine
58. Science
59. Scripting
60. Search Engine
61. Security
62. Sevlet Container
63. Source Control
64. Swing Library
65. Template Engine
66. Test Coverage
67. Testing
68. UML
69. Web Crawler
70. Web Framework
71. Web Mail
72. Web Server
73. Web Services
74. Web Services apache cxf 2.0.1
75. Web Services AXIS2
76. Wiki Engine
77. Workflow Engines
78. XML
79. XML UI
Java
Java Tutorial
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
Photoshop Tutorials
Maya Tutorials
Flash Tutorials
3ds-Max Tutorials
Illustrator Tutorials
GIMP Tutorials
C# / C Sharp
C# / CSharp Tutorial
C# / CSharp Open Source
ASP.Net
ASP.NET Tutorial
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Ruby
PHP
Python
Python Tutorial
Python Open Source
SQL Server / T-SQL
SQL Server / T-SQL Tutorial
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
Flash / Flex / ActionScript
VBA / Excel / Access / Word
XML
XML Tutorial
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
Java Source Code / Java Documentation » Content Management System » daisy » org.outerj.daisy.repository.test 
Source Cross Referenced  Class Diagram Java Document (Java Doc) 


0001:        /*
0002:         * Copyright 2004 Outerthought bvba and Schaubroeck nv
0003:         *
0004:         * Licensed under the Apache License, Version 2.0 (the "License");
0005:         * you may not use this file except in compliance with the License.
0006:         * You may obtain a copy of the License at
0007:         *
0008:         *     http://www.apache.org/licenses/LICENSE-2.0
0009:         *
0010:         * Unless required by applicable law or agreed to in writing, software
0011:         * distributed under the License is distributed on an "AS IS" BASIS,
0012:         * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
0013:         * See the License for the specific language governing permissions and
0014:         * limitations under the License.
0015:         */
0016:        package org.outerj.daisy.repository.test;
0017:
0018:        import org.outerj.daisy.repository.testsupport.AbstractDaisyTestCase;
0019:        import org.outerj.daisy.repository.*;
0020:        import org.outerj.daisy.repository.variant.Language;
0021:        import org.outerj.daisy.repository.query.QueryManager;
0022:        import org.outerj.daisy.repository.query.QueryHelper;
0023:        import org.outerj.daisy.repository.query.EvaluationContext;
0024:        import org.outerj.daisy.repository.user.UserManager;
0025:        import org.outerj.daisy.repository.user.User;
0026:        import org.outerj.daisy.repository.user.Role;
0027:        import org.outerj.daisy.repository.schema.RepositorySchema;
0028:        import org.outerj.daisy.repository.schema.PartType;
0029:        import org.outerj.daisy.repository.schema.FieldType;
0030:        import org.outerj.daisy.repository.schema.DocumentType;
0031:        import org.outerx.daisy.x10.SearchResultDocument;
0032:        import org.outerx.daisy.x10.LinkValueType;
0033:
0034:        import java.math.BigDecimal;
0035:        import java.util.*;
0036:        import java.text.DateFormat;
0037:
0038:        /**
0039:         * Additional query tests: test of all identifiers, functions, other constructs.
0040:         */
0041:        public abstract class AbstractQuery2Test extends AbstractDaisyTestCase {
0042:
0043:            public void testQuery() throws Exception {
0044:                RepositoryManager repositoryManager = getRepositoryManager();
0045:                Repository repository = repositoryManager
0046:                        .getRepository(new Credentials("testuser", "testuser"));
0047:                repository.switchRole(Role.ADMINISTRATOR);
0048:
0049:                UserManager userManager = repository.getUserManager();
0050:                User user1 = userManager.createUser("user1");
0051:                user1.setPassword("user1");
0052:                user1.setFirstName("User1First");
0053:                user1.setLastName("User1Last");
0054:                user1.addToRole(userManager.getRole(1, false));
0055:                user1.save();
0056:                User user2 = userManager.createUser("user2");
0057:                user2.setPassword("user2");
0058:                user2.setFirstName("User2First");
0059:                user2.setLastName("User2Last");
0060:                user2.addToRole(userManager.getRole(1, false));
0061:                user2.save();
0062:
0063:                CollectionManager collectionManager = repository
0064:                        .getCollectionManager();
0065:                DocumentCollection collection1 = collectionManager
0066:                        .createCollection("collection 1");
0067:                collection1.save();
0068:                DocumentCollection collection2 = collectionManager
0069:                        .createCollection("collection 2");
0070:                collection2.save();
0071:
0072:                RepositorySchema schema = repository.getRepositorySchema();
0073:                PartType partType = schema.createPartType("HtmlPart", "");
0074:                partType.setDaisyHtml(true);
0075:                partType.save();
0076:
0077:                FieldType fieldType1 = schema.createFieldType("StringField",
0078:                        ValueType.STRING);
0079:                fieldType1.save();
0080:                FieldType fieldType2 = schema.createFieldType("DecimalField1",
0081:                        ValueType.DECIMAL);
0082:                fieldType2.save();
0083:                FieldType fieldType2b = schema.createFieldType("DecimalField2",
0084:                        ValueType.DECIMAL);
0085:                fieldType2b.save();
0086:                FieldType fieldType3 = schema.createFieldType("MVField",
0087:                        ValueType.STRING, true);
0088:                fieldType3.save();
0089:                FieldType fieldType4 = schema.createFieldType("LinkField",
0090:                        ValueType.LINK);
0091:                fieldType4.save();
0092:                FieldType fieldType5 = schema.createFieldType("MVLinkField",
0093:                        ValueType.LINK, true);
0094:                fieldType5.save();
0095:                FieldType fieldType6 = schema.createFieldType("HStringField",
0096:                        ValueType.STRING, false, true);
0097:                fieldType6.save();
0098:                FieldType fieldType7 = schema.createFieldType("MVHLinkField",
0099:                        ValueType.LINK, true, true);
0100:                fieldType7.save();
0101:
0102:                DocumentType docType = schema.createDocumentType("DocType");
0103:                docType.addPartType(partType, false);
0104:                docType.addFieldType(fieldType1, false);
0105:                docType.addFieldType(fieldType2, false);
0106:                docType.addFieldType(fieldType2b, false);
0107:                docType.addFieldType(fieldType3, false);
0108:                docType.addFieldType(fieldType4, false);
0109:                docType.addFieldType(fieldType5, false);
0110:                docType.addFieldType(fieldType6, false);
0111:                docType.addFieldType(fieldType7, false);
0112:                docType.save();
0113:
0114:                Language nlLanguage = repository.getVariantManager()
0115:                        .createLanguage("nl");
0116:                nlLanguage.save();
0117:
0118:                Repository user1Repo = repositoryManager
0119:                        .getRepository(new Credentials("user1", "user1"));
0120:                Repository user2Repo = repositoryManager
0121:                        .getRepository(new Credentials("user2", "user2"));
0122:
0123:                Document document = user1Repo.createDocument("My Document",
0124:                        "DocType");
0125:                document.setPart("HtmlPart", "text/xml",
0126:                        "<html><body><p>hello!</p></body></html>"
0127:                                .getBytes("UTF-8"));
0128:                document.setField("StringField", "abc");
0129:                document.setField("DecimalField1", new BigDecimal("123.45"));
0130:                document.setField("DecimalField2", new BigDecimal("300.89"));
0131:                document.setField("MVField", new String[] { "aaa", "bbb" });
0132:                document.setField("LinkField", new VariantKey("5", -1, -1));
0133:                document.setField("MVLinkField",
0134:                        new VariantKey[] { new VariantKey("20", 1, 1),
0135:                                new VariantKey("21", 1, -1) });
0136:                document.setField("HStringField", new HierarchyPath(
0137:                        new Object[] { "ABC", "DEF", "GHI" }));
0138:                document.setField("MVHLinkField", new Object[] {
0139:                        new HierarchyPath(new Object[] {
0140:                                new VariantKey("50", 1, 1),
0141:                                new VariantKey("51-DSYTEST", 1, 1) }),
0142:                        new HierarchyPath(new Object[] {
0143:                                new VariantKey("52", 1, 1),
0144:                                new VariantKey("53-DSYTEST", 1, 1) }) });
0145:                document.addToCollection(collection1);
0146:                document.setNewChangeComment("my change comment 1");
0147:                document.save();
0148:
0149:                // create a draft last version
0150:                document = user2Repo.getDocument(document.getId(), true);
0151:                document.setName("My Document updated");
0152:                document.setPart("HtmlPart", "text/xml",
0153:                        "<html><body><p>hello, world!</p></body></html>"
0154:                                .getBytes("UTF-8"));
0155:                document.setField("StringField", "uyt");
0156:                document.setField("DecimalField1", new BigDecimal("100"));
0157:                document.setField("DecimalField2", new BigDecimal("200"));
0158:                document.setField("MVField",
0159:                        new String[] { "aaa", "bbb", "ccc" });
0160:                document.addToCollection(collection2);
0161:                document.setNewVersionState(VersionState.DRAFT);
0162:                document.setNewChangeComment("my change comment 2");
0163:                document.save();
0164:
0165:                // create test docs for synced with
0166:                Document syncDoc = user1Repo.createDocument("Sync test doc",
0167:                        "DocType");
0168:                syncDoc.save();
0169:                syncDoc.setName("Sync test doc new name");
0170:                syncDoc.setNewVersionState(VersionState.DRAFT);
0171:                syncDoc.save();
0172:                syncDoc.setName("Sync test doc new name 2");
0173:                syncDoc.setNewChangeType(ChangeType.MINOR);
0174:                syncDoc.save();
0175:
0176:                Document syncVariant = user1Repo.createVariant(syncDoc.getId(),
0177:                        "main", "default", -1, "main", "nl", false);
0178:                syncVariant.setNewSyncedWith("default", 1);
0179:                syncVariant.save();
0180:
0181:                document.lock(1000000, LockType.PESSIMISTIC);
0182:
0183:                //
0184:                //
0185:                // Test all identifiers
0186:                //   - for live and last version
0187:                //   - in the 'select' part (evaluated by the repository server) and the where clause (evaluated by the SQL engine)
0188:                //
0189:                //
0190:                QueryManager queryManager = repository.getQueryManager();
0191:                SearchResultDocument result;
0192:                DateFormat dateTimeFormat = DateFormat.getDateTimeInstance(
0193:                        DateFormat.SHORT, DateFormat.MEDIUM, Locale.US);
0194:                DateFormat dateFormat = DateFormat.getDateInstance(
0195:                        DateFormat.SHORT, Locale.US);
0196:
0197:                // id
0198:                result = queryManager.performQuery("select id where id = '"
0199:                        + document.getId() + "'", Locale.US);
0200:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0201:                        .getValueArray(0), String.valueOf(document.getId()));
0202:
0203:                result = queryManager.performQuery("select id where id = '"
0204:                        + document.getId()
0205:                        + "' option search_last_version = 'true'", Locale.US);
0206:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0207:                        .getValueArray(0), String.valueOf(document.getId()));
0208:
0209:                // if the document ID contains a namespace that does not exist in the repo, it should not fail but return 0 docs
0210:                result = queryManager.performQuery("select id where id = '"
0211:                        + document.getSeqId() + "-foo_bar'", Locale.US);
0212:                assertEquals(0, result.getSearchResult().getRows()
0213:                        .getRowArray().length);
0214:
0215:                // namespace
0216:                result = queryManager.performQuery(
0217:                        "select namespace where namespace = 'DSYTEST' and id = '"
0218:                                + document.getId() + "'", Locale.US);
0219:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0220:                        .getValueArray(0), String.valueOf(document
0221:                        .getNamespace()));
0222:
0223:                // searching on a non-registered namespace should not fail
0224:                result = queryManager.performQuery(
0225:                        "select namespace where namespace = 'foo_bar'",
0226:                        Locale.US);
0227:                assertEquals(0, result.getSearchResult().getRows()
0228:                        .getRowArray().length);
0229:
0230:                // documentType
0231:                result = queryManager.performQuery(
0232:                        "select documentType where documentType = 'DocType' and id = '"
0233:                                + document.getId() + "'", Locale.US);
0234:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0235:                        .getValueArray(0), "DocType");
0236:
0237:                result = queryManager.performQuery(
0238:                        "select documentType where documentType = 'DocType' and id = '"
0239:                                + document.getId()
0240:                                + "' option search_last_version = 'true'",
0241:                        Locale.US);
0242:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0243:                        .getValueArray(0), "DocType");
0244:
0245:                // name
0246:                result = queryManager.performQuery(
0247:                        "select name where name = 'My Document' and id = '"
0248:                                + document.getId() + "'", Locale.US);
0249:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0250:                        .getValueArray(0), "My Document");
0251:
0252:                result = queryManager.performQuery(
0253:                        "select name where name = 'My Document updated' and id = '"
0254:                                + document.getId()
0255:                                + "' option search_last_version = 'true'",
0256:                        Locale.US);
0257:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0258:                        .getValueArray(0), "My Document updated");
0259:
0260:                // creationTime
0261:                result = queryManager.performQuery(
0262:                        "select creationTime where creationTime = "
0263:                                + QueryHelper.formatDateTime(document
0264:                                        .getCreated()) + " and id = '"
0265:                                + document.getId() + "'", Locale.US);
0266:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0267:                        .getValueArray(0), dateTimeFormat.format(document
0268:                        .getCreated()));
0269:
0270:                result = queryManager.performQuery(
0271:                        "select creationTime where creationTime = "
0272:                                + QueryHelper.formatDateTime(document
0273:                                        .getCreated()) + " and id = '"
0274:                                + document.getId()
0275:                                + "' option search_last_version = 'true'",
0276:                        Locale.US);
0277:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0278:                        .getValueArray(0), dateTimeFormat.format(document
0279:                        .getCreated()));
0280:
0281:                // summary (not version dependent)
0282:                result = queryManager.performQuery(
0283:                        "select summary where id = '" + document.getId() + "'",
0284:                        Locale.US);
0285:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0286:                        .getValueArray(0), "hello!");
0287:
0288:                result = queryManager.performQuery(
0289:                        "select summary where id = '" + document.getId()
0290:                                + "' option search_last_version = 'true'",
0291:                        Locale.US);
0292:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0293:                        .getValueArray(0), "hello!");
0294:
0295:                // versionCreationTime
0296:                result = queryManager.performQuery(
0297:                        "select versionCreationTime where versionCreationTime = "
0298:                                + QueryHelper.formatDateTime(document
0299:                                        .getLiveVersion().getCreated())
0300:                                + " and id = '" + document.getId() + "'",
0301:                        Locale.US);
0302:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0303:                        .getValueArray(0), dateTimeFormat.format(document
0304:                        .getLiveVersion().getCreated()));
0305:
0306:                result = queryManager.performQuery(
0307:                        "select versionCreationTime where versionCreationTime = "
0308:                                + QueryHelper.formatDateTime(document
0309:                                        .getLastVersion().getCreated())
0310:                                + " and id = '" + document.getId()
0311:                                + "' option search_last_version = 'true'",
0312:                        Locale.US);
0313:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0314:                        .getValueArray(0), dateTimeFormat.format(document
0315:                        .getLastVersion().getCreated()));
0316:
0317:                // versionCreatorId
0318:                result = queryManager.performQuery(
0319:                        "select versionCreatorId where versionCreatorId = "
0320:                                + user1.getId() + " and id = '"
0321:                                + document.getId() + "'", Locale.US);
0322:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0323:                        .getValueArray(0), String.valueOf(user1.getId()));
0324:
0325:                result = queryManager.performQuery(
0326:                        "select versionCreatorId where versionCreatorId = "
0327:                                + user2.getId() + " and id = '"
0328:                                + document.getId()
0329:                                + "' option search_last_version = 'true'",
0330:                        Locale.US);
0331:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0332:                        .getValueArray(0), String.valueOf(user2.getId()));
0333:
0334:                // versionCreatorName
0335:                result = queryManager.performQuery(
0336:                        "select versionCreatorName where id = '"
0337:                                + document.getId() + "'", Locale.US);
0338:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0339:                        .getValueArray(0), "User1First User1Last");
0340:
0341:                result = queryManager.performQuery(
0342:                        "select versionCreatorName where id = '"
0343:                                + document.getId()
0344:                                + "' option search_last_version = 'true'",
0345:                        Locale.US);
0346:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0347:                        .getValueArray(0), "User2First User2Last");
0348:
0349:                // versionCreatorLogin
0350:                result = queryManager.performQuery(
0351:                        "select versionCreatorLogin where versionCreatorLogin = 'user1' and id = '"
0352:                                + document.getId() + "'", Locale.US);
0353:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0354:                        .getValueArray(0), "user1");
0355:
0356:                result = queryManager.performQuery(
0357:                        "select versionCreatorLogin where versionCreatorLogin = 'user2' and id = '"
0358:                                + document.getId()
0359:                                + "' option search_last_version = 'true'",
0360:                        Locale.US);
0361:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0362:                        .getValueArray(0), "user2");
0363:
0364:                // versionState
0365:                result = queryManager.performQuery(
0366:                        "select versionState where versionState = 'publish' and id = '"
0367:                                + document.getId() + "'", Locale.US);
0368:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0369:                        .getValueArray(0), "publish");
0370:
0371:                result = queryManager.performQuery(
0372:                        "select versionState where versionState = 'publish' and id = '"
0373:                                + document.getId()
0374:                                + "' option search_last_version = 'true'",
0375:                        Locale.US);
0376:                assertEquals(
0377:                        result.getSearchResult().getRows().getRowArray().length,
0378:                        0);
0379:
0380:                result = queryManager.performQuery(
0381:                        "select versionState where versionState = 'draft' and id = '"
0382:                                + document.getId()
0383:                                + "' option search_last_version = 'true'",
0384:                        Locale.US);
0385:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0386:                        .getValueArray(0), "draft");
0387:
0388:                // totalSizeOfParts
0389:                result = queryManager.performQuery(
0390:                        "select totalSizeOfParts where totalSizeOfParts < 1000 and id = '"
0391:                                + document.getId() + "'", Locale.US);
0392:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0393:                        .getValueArray(0), "39");
0394:
0395:                result = queryManager.performQuery(
0396:                        "select totalSizeOfParts where totalSizeOfParts < 1000 and id = '"
0397:                                + document.getId()
0398:                                + "' option search_last_version = 'true'",
0399:                        Locale.US);
0400:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0401:                        .getValueArray(0), "46");
0402:
0403:                // versionLastModified
0404:                result = queryManager.performQuery(
0405:                        "select versionLastModified where versionLastModified <= "
0406:                                + QueryHelper.formatDateTime(new Date())
0407:                                + " and id = '" + document.getId() + "'",
0408:                        Locale.US);
0409:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0410:                        .getValueArray(0), dateTimeFormat.format(document
0411:                        .getLiveVersion().getLastModified()));
0412:
0413:                result = queryManager.performQuery(
0414:                        "select versionLastModified where versionLastModified <= "
0415:                                + QueryHelper.formatDateTime(new Date())
0416:                                + " and id = '" + document.getId()
0417:                                + "' option search_last_version = 'true'",
0418:                        Locale.US);
0419:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0420:                        .getValueArray(0), dateTimeFormat.format(document
0421:                        .getLastVersion().getLastModified()));
0422:
0423:                // retired
0424:                result = queryManager.performQuery(
0425:                        "select retired where retired = 'false' and id = '"
0426:                                + document.getId() + "'", Locale.US);
0427:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0428:                        .getValueArray(0), "false");
0429:
0430:                result = queryManager.performQuery(
0431:                        "select retired where retired = 'false' and id = '"
0432:                                + document.getId()
0433:                                + "' option search_last_version = 'true'",
0434:                        Locale.US);
0435:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0436:                        .getValueArray(0), "false");
0437:
0438:                // private
0439:                result = queryManager.performQuery(
0440:                        "select private where private = 'false' and id = '"
0441:                                + document.getId() + "'", Locale.US);
0442:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0443:                        .getValueArray(0), "false");
0444:
0445:                result = queryManager.performQuery(
0446:                        "select private where private = 'false' and id = '"
0447:                                + document.getId()
0448:                                + "' option search_last_version = 'true'",
0449:                        Locale.US);
0450:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0451:                        .getValueArray(0), "false");
0452:
0453:                // lockType
0454:                result = queryManager.performQuery(
0455:                        "select lockType where lockType = 'pessimistic' and id = '"
0456:                                + document.getId() + "'", Locale.US);
0457:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0458:                        .getValueArray(0), "pessimistic");
0459:
0460:                result = queryManager.performQuery(
0461:                        "select lockType where lockType = 'pessimistic' and id = '"
0462:                                + document.getId()
0463:                                + "' option search_last_version = 'true'",
0464:                        Locale.US);
0465:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0466:                        .getValueArray(0), "pessimistic");
0467:
0468:                // lockOwnerId
0469:                result = queryManager.performQuery(
0470:                        "select lockOwnerId where lockOwnerId = "
0471:                                + user2.getId() + " and id = '"
0472:                                + document.getId() + "'", Locale.US);
0473:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0474:                        .getValueArray(0), String.valueOf(user2.getId()));
0475:
0476:                result = queryManager.performQuery(
0477:                        "select lockOwnerId where lockOwnerId = "
0478:                                + user2.getId() + " and id = '"
0479:                                + document.getId()
0480:                                + "' option search_last_version = 'true'",
0481:                        Locale.US);
0482:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0483:                        .getValueArray(0), String.valueOf(user2.getId()));
0484:
0485:                // lockOwnerLogin
0486:                result = queryManager.performQuery(
0487:                        "select lockOwnerLogin where lockOwnerLogin = 'user2' and id = '"
0488:                                + document.getId() + "'", Locale.US);
0489:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0490:                        .getValueArray(0), "user2");
0491:
0492:                result = queryManager.performQuery(
0493:                        "select lockOwnerLogin where lockOwnerLogin = 'user2' and id = '"
0494:                                + document.getId()
0495:                                + "' option search_last_version = 'true'",
0496:                        Locale.US);
0497:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0498:                        .getValueArray(0), "user2");
0499:
0500:                // lockOwnerName
0501:                result = queryManager.performQuery(
0502:                        "select lockOwnerName where lockOwnerLogin = 'user2' and id = '"
0503:                                + document.getId() + "'", Locale.US);
0504:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0505:                        .getValueArray(0), "User2First User2Last");
0506:
0507:                result = queryManager.performQuery(
0508:                        "select lockOwnerName where lockOwnerLogin = 'user2' and id = '"
0509:                                + document.getId()
0510:                                + "' option search_last_version = 'true'",
0511:                        Locale.US);
0512:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0513:                        .getValueArray(0), "User2First User2Last");
0514:
0515:                // lockDuration
0516:                result = queryManager.performQuery(
0517:                        "select lockDuration where lockDuration = 1000000 and id = '"
0518:                                + document.getId() + "'", Locale.US);
0519:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0520:                        .getValueArray(0), "1000000");
0521:
0522:                result = queryManager.performQuery(
0523:                        "select lockDuration where lockDuration = 1000000 and id = '"
0524:                                + document.getId()
0525:                                + "' option search_last_version = 'true'",
0526:                        Locale.US);
0527:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0528:                        .getValueArray(0), "1000000");
0529:
0530:                // lockTimeAcquired
0531:                queryManager.performQuery(
0532:                        "select lockTimeAcquired where lockTimeAcquired <= "
0533:                                + QueryHelper.formatDateTime(new Date())
0534:                                + " and id = '" + document.getId() + "'",
0535:                        Locale.US);
0536:                queryManager.performQuery(
0537:                        "select lockTimeAcquired where lockTimeAcquired <= "
0538:                                + QueryHelper.formatDateTime(new Date())
0539:                                + " and id = '" + document.getId()
0540:                                + "' option search_last_version = 'true'",
0541:                        Locale.US);
0542:
0543:                // ownerId
0544:                result = queryManager.performQuery(
0545:                        "select ownerId where ownerId = " + user1.getId()
0546:                                + " and id = '" + document.getId() + "'",
0547:                        Locale.US);
0548:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0549:                        .getValueArray(0), String.valueOf(user1.getId()));
0550:
0551:                result = queryManager.performQuery(
0552:                        "select ownerId where ownerId = " + user1.getId()
0553:                                + " and id = '" + document.getId()
0554:                                + "' option search_last_version = 'true'",
0555:                        Locale.US);
0556:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0557:                        .getValueArray(0), String.valueOf(user1.getId()));
0558:
0559:                // ownerLogin
0560:                result = queryManager.performQuery(
0561:                        "select ownerLogin where ownerLogin = 'user1' and id = '"
0562:                                + document.getId() + "'", Locale.US);
0563:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0564:                        .getValueArray(0), "user1");
0565:
0566:                result = queryManager.performQuery(
0567:                        "select ownerLogin where ownerLogin = 'user1' and id = '"
0568:                                + document.getId()
0569:                                + "' option search_last_version = 'true'",
0570:                        Locale.US);
0571:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0572:                        .getValueArray(0), "user1");
0573:
0574:                // ownerName
0575:                result = queryManager.performQuery(
0576:                        "select ownerName where id = '" + document.getId()
0577:                                + "'", Locale.US);
0578:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0579:                        .getValueArray(0), "User1First User1Last");
0580:
0581:                result = queryManager.performQuery(
0582:                        "select ownerName where id = '" + document.getId()
0583:                                + "' option search_last_version = 'true'",
0584:                        Locale.US);
0585:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0586:                        .getValueArray(0), "User1First User1Last");
0587:
0588:                // lastModifierId
0589:                result = queryManager.performQuery(
0590:                        "select lastModifierId where lastModifierId = "
0591:                                + user1.getId() + " and id = '"
0592:                                + document.getId() + "'", Locale.US);
0593:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0594:                        .getValueArray(0), String.valueOf(user1.getId()));
0595:
0596:                result = queryManager.performQuery(
0597:                        "select lastModifierId where lastModifierId = "
0598:                                + user1.getId() + " and id = '"
0599:                                + document.getId()
0600:                                + "' option search_last_version = 'true'",
0601:                        Locale.US);
0602:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0603:                        .getValueArray(0), String.valueOf(user1.getId()));
0604:
0605:                // lastModifierLogin
0606:                result = queryManager.performQuery(
0607:                        "select lastModifierLogin where lastModifierLogin = 'user1' and id = '"
0608:                                + document.getId() + "'", Locale.US);
0609:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0610:                        .getValueArray(0), "user1");
0611:
0612:                result = queryManager.performQuery(
0613:                        "select lastModifierLogin where lastModifierLogin = 'user1' and id = '"
0614:                                + document.getId()
0615:                                + "' option search_last_version = 'true'",
0616:                        Locale.US);
0617:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0618:                        .getValueArray(0), "user1");
0619:
0620:                // lastModifierName
0621:                result = queryManager.performQuery(
0622:                        "select lastModifierName where id = '"
0623:                                + document.getId() + "'", Locale.US);
0624:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0625:                        .getValueArray(0), "User1First User1Last");
0626:
0627:                result = queryManager.performQuery(
0628:                        "select lastModifierName where id = '"
0629:                                + document.getId()
0630:                                + "' option search_last_version = 'true'",
0631:                        Locale.US);
0632:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0633:                        .getValueArray(0), "User1First User1Last");
0634:
0635:                // branchId
0636:                result = queryManager.performQuery(
0637:                        "select branchId where branchId = 1 and id = '"
0638:                                + document.getId() + "'", Locale.US);
0639:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0640:                        .getValueArray(0), "1");
0641:
0642:                result = queryManager.performQuery(
0643:                        "select branchId where branchId = 1 and id = '"
0644:                                + document.getId()
0645:                                + "' option search_last_version = 'true'",
0646:                        Locale.US);
0647:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0648:                        .getValueArray(0), "1");
0649:
0650:                // branchName
0651:                result = queryManager.performQuery(
0652:                        "select branch where branch = 'main' and id = '"
0653:                                + document.getId() + "'", Locale.US);
0654:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0655:                        .getValueArray(0), "main");
0656:
0657:                result = queryManager.performQuery(
0658:                        "select branch where branch = 'main' and id = '"
0659:                                + document.getId()
0660:                                + "' option search_last_version = 'true'",
0661:                        Locale.US);
0662:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0663:                        .getValueArray(0), "main");
0664:
0665:                // languageId
0666:                result = queryManager.performQuery(
0667:                        "select languageId where languageId = 1 and id = '"
0668:                                + document.getId() + "'", Locale.US);
0669:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0670:                        .getValueArray(0), "1");
0671:
0672:                result = queryManager.performQuery(
0673:                        "select languageId where languageId = 1 and id = '"
0674:                                + document.getId()
0675:                                + "' option search_last_version = 'true'",
0676:                        Locale.US);
0677:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0678:                        .getValueArray(0), "1");
0679:
0680:                // languageName
0681:                result = queryManager.performQuery(
0682:                        "select language where language = 'default' and id = '"
0683:                                + document.getId() + "'", Locale.US);
0684:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0685:                        .getValueArray(0), "default");
0686:
0687:                result = queryManager.performQuery(
0688:                        "select language where language = 'default' and id = '"
0689:                                + document.getId()
0690:                                + "' option search_last_version = 'true'",
0691:                        Locale.US);
0692:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0693:                        .getValueArray(0), "default");
0694:
0695:                // variantLastModified
0696:                result = queryManager.performQuery(
0697:                        "select variantLastModified where variantLastModified = "
0698:                                + QueryHelper.formatDateTime(document
0699:                                        .getVariantLastModified())
0700:                                + " and id = '" + document.getId() + "'",
0701:                        Locale.US);
0702:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0703:                        .getValueArray(0), dateTimeFormat.format(document
0704:                        .getVariantLastModified()));
0705:
0706:                result = queryManager.performQuery(
0707:                        "select variantLastModified where variantLastModified = "
0708:                                + QueryHelper.formatDateTime(document
0709:                                        .getVariantLastModified())
0710:                                + " and id = '" + document.getId()
0711:                                + "' option search_last_version = 'true'",
0712:                        Locale.US);
0713:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0714:                        .getValueArray(0), dateTimeFormat.format(document
0715:                        .getVariantLastModified()));
0716:
0717:                // variantLastMofifierId
0718:                result = queryManager.performQuery(
0719:                        "select variantLastModifierId where variantLastModifierId = "
0720:                                + user2.getId() + " and id = '"
0721:                                + document.getId() + "'", Locale.US);
0722:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0723:                        .getValueArray(0), String.valueOf(user2.getId()));
0724:
0725:                result = queryManager.performQuery(
0726:                        "select variantLastModifierId where variantLastModifierId = "
0727:                                + user2.getId() + " and id = '"
0728:                                + document.getId()
0729:                                + "' option search_last_version = 'true'",
0730:                        Locale.US);
0731:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0732:                        .getValueArray(0), String.valueOf(user2.getId()));
0733:
0734:                // variantLastModifierLogin
0735:                result = queryManager
0736:                        .performQuery(
0737:                                "select variantLastModifierLogin where variantLastModifierLogin = 'user2' and id = '"
0738:                                        + document.getId() + "'", Locale.US);
0739:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0740:                        .getValueArray(0), "user2");
0741:
0742:                result = queryManager
0743:                        .performQuery(
0744:                                "select variantLastModifierLogin where variantLastModifierLogin = 'user2' and id = '"
0745:                                        + document.getId()
0746:                                        + "' option search_last_version = 'true'",
0747:                                Locale.US);
0748:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0749:                        .getValueArray(0), "user2");
0750:
0751:                // variantLastModifierName
0752:                result = queryManager.performQuery(
0753:                        "select variantLastModifierName where id = '"
0754:                                + document.getId() + "'", Locale.US);
0755:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0756:                        .getValueArray(0), "User2First User2Last");
0757:
0758:                result = queryManager.performQuery(
0759:                        "select variantLastModifierName where id = '"
0760:                                + document.getId()
0761:                                + "' option search_last_version = 'true'",
0762:                        Locale.US);
0763:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0764:                        .getValueArray(0), "User2First User2Last");
0765:
0766:                // version comment
0767:                result = queryManager.performQuery(
0768:                        "select versionComment where versionComment = 'my change comment 1' and id = '"
0769:                                + document.getId() + "'", Locale.US);
0770:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0771:                        .getValueArray(0), "my change comment 1");
0772:
0773:                // version change type
0774:                result = queryManager.performQuery(
0775:                        "select versionChangeType where versionChangeType = 'major' and id = '"
0776:                                + document.getId() + "'", Locale.US);
0777:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0778:                        .getValueArray(0), "major");
0779:
0780:                // live major change version
0781:                result = queryManager.performQuery(
0782:                        "select liveMajorChangeVersionId where liveMajorChangeVersionId = "
0783:                                + document.getLiveVersionId() + " and id = '"
0784:                                + document.getId() + "'", Locale.US);
0785:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0786:                        .getValueArray(0), String.valueOf(document
0787:                        .getLiveVersionId()));
0788:
0789:                // last major change version
0790:                result = queryManager.performQuery(
0791:                        "select lastMajorChangeVersionId where lastMajorChangeVersionId = "
0792:                                + document.getLastVersionId() + " and id = '"
0793:                                + document.getId() + "'", Locale.US);
0794:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0795:                        .getValueArray(0), String.valueOf(document
0796:                        .getLastVersionId()));
0797:
0798:                // syncedWith
0799:                result = queryManager
0800:                        .performQuery(
0801:                                "select syncedWith, syncedWith.versionId, syncedWith.languageId, syncedWith.language, syncedWith=>lastMajorChangeVersionId, syncedWith=>liveMajorChangeVersionId where syncedWith is not null and id = '"
0802:                                        + syncVariant.getId() + "'", Locale.US);
0803:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0804:                        .getLinkValueArray(0).getLanguageId(), 1);
0805:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0806:                        .getValueArray(0), "1");
0807:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0808:                        .getValueArray(1), "1");
0809:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0810:                        .getValueArray(2), "default");
0811:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0812:                        .getValueArray(3), "2");
0813:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0814:                        .getValueArray(4), "1");
0815:
0816:                // syncedWith.versionId
0817:                result = queryManager.performQuery(
0818:                        "select syncedWith.versionId where syncedWith.versionId = 1 and id = '"
0819:                                + syncVariant.getId() + "'", Locale.US);
0820:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0821:                        .getValueArray(0), "1");
0822:
0823:                // syncedWith.languageId
0824:                result = queryManager.performQuery(
0825:                        "select syncedWith.languageId where syncedWith.languageId = 1 and id = '"
0826:                                + syncVariant.getId() + "'", Locale.US);
0827:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0828:                        .getValueArray(0), "1");
0829:
0830:                // syncedWith.language
0831:                result = queryManager.performQuery(
0832:                        "select syncedWith.language where syncedWith.language = 'default' and id = '"
0833:                                + syncVariant.getId() + "'", Locale.US);
0834:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0835:                        .getValueArray(0), "default");
0836:
0837:                // syncedWith dereferencing
0838:                result = queryManager
0839:                        .performQuery(
0840:                                "select syncedWith=>lastMajorChangeVersionId where syncedWith=>lastMajorChangeVersionId = 2 and id = '"
0841:                                        + syncVariant.getId() + "'", Locale.US);
0842:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0843:                        .getValueArray(0), "2");
0844:
0845:                // collections
0846:                result = queryManager
0847:                        .performQuery(
0848:                                "select collections where collections has exactly ('collection 1', 'collection 2') and id = '"
0849:                                        + document.getId() + "'", Locale.US);
0850:                List<String> foundCollections = new ArrayList<String>();
0851:                for (String collection : result.getSearchResult().getRows()
0852:                        .getRowArray(0).getMultiValueArray(0).getValueArray()) {
0853:                    foundCollections.add(collection);
0854:                }
0855:                assertTrue(foundCollections.contains("collection 1"));
0856:                assertTrue(foundCollections.contains("collection 2"));
0857:
0858:                result = queryManager
0859:                        .performQuery(
0860:                                "select collections where collections has exactly ('collection 1', 'collection 2') and id = '"
0861:                                        + document.getId()
0862:                                        + "' option search_last_version = 'true'",
0863:                                Locale.US);
0864:                foundCollections = new ArrayList<String>();
0865:                for (String collection : result.getSearchResult().getRows()
0866:                        .getRowArray(0).getMultiValueArray(0).getValueArray()) {
0867:                    foundCollections.add(collection);
0868:                }
0869:                assertTrue(foundCollections.contains("collection 1"));
0870:                assertTrue(foundCollections.contains("collection 2"));
0871:
0872:                // collections.valueCount
0873:                result = queryManager.performQuery(
0874:                        "select collections.valueCount where collections.valueCount = 2 and id = '"
0875:                                + document.getId() + "'", Locale.US);
0876:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0877:                        .getValueArray(0), "2");
0878:
0879:                result = queryManager.performQuery(
0880:                        "select collections.valueCount where collections.valueCount = 2 and id = '"
0881:                                + document.getId()
0882:                                + "' option search_last_version = 'true'",
0883:                        Locale.US);
0884:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0885:                        .getValueArray(0), "2");
0886:
0887:                // versionId
0888:                result = queryManager.performQuery(
0889:                        "select versionId where versionId = 1 and id = '"
0890:                                + document.getId() + "'", Locale.US);
0891:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0892:                        .getValueArray(0), "1");
0893:
0894:                result = queryManager.performQuery(
0895:                        "select versionId where versionId = 2 and id = '"
0896:                                + document.getId()
0897:                                + "' option search_last_version = 'true'",
0898:                        Locale.US);
0899:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0900:                        .getValueArray(0), "2");
0901:
0902:                // link field identifiers
0903:                result = queryManager
0904:                        .performQuery(
0905:                                "select $LinkField.documentId, $LinkField.namespace, $LinkField.branch, $LinkField.branchId, $LinkField.language, $LinkField.languageId where $LinkField.documentId = '5-DSYTEST' and $LinkField.branchId = 1 and $LinkField.branch = 'main' and $LinkField.languageId = 1 and $LinkField.language = 'default' and $LinkField.namespace = 'DSYTEST'",
0906:                                Locale.US);
0907:                assertEquals(
0908:                        result.getSearchResult().getRows().getRowArray().length,
0909:                        1);
0910:
0911:                result = queryManager
0912:                        .performQuery(
0913:                                "select $MVLinkField.documentId, $MVLinkField.namespace, $MVLinkField.branch, $MVLinkField.branchId, $MVLinkField.language, $MVLinkField.languageId where $MVLinkField.documentId = 20 and $MVLinkField.branchId = 1 and $MVLinkField.branch = 'main' and $MVLinkField.languageId = 1 and $MVLinkField.language = 'default' and $MVLinkField.namespace = 'DSYTEST'",
0914:                                Locale.US);
0915:                assertEquals(
0916:                        result.getSearchResult().getRows().getRowArray().length,
0917:                        1);
0918:
0919:                result = queryManager
0920:                        .performQuery(
0921:                                "select $LinkField, $MVLinkField where $LinkField = 'daisy:5@1:1' and $LinkField = 'daisy:5@main:default' and $LinkField = 'daisy:5' and $MVLinkField has all ('daisy:20', 'daisy:21')",
0922:                                Locale.US);
0923:                assertEquals(
0924:                        result.getSearchResult().getRows().getRowArray().length,
0925:                        1);
0926:                LinkValueType linkResult = result.getSearchResult().getRows()
0927:                        .getRowArray(0).getLinkValueArray(0);
0928:                assertEquals("5-DSYTEST", linkResult.getDocumentId());
0929:                assertEquals(1, linkResult.getBranchId());
0930:                assertEquals(1, linkResult.getLanguageId());
0931:
0932:                result = queryManager.performQuery(
0933:                        "select link where link = 'daisy:1@1:1'", Locale.US);
0934:                assertEquals(1, result.getSearchResult().getRows()
0935:                        .getRowArray().length);
0936:
0937:                // hierarchical string identifier
0938:                result = queryManager.performQuery(
0939:                        "select $HStringField, $MVHLinkField where id='"
0940:                                + document.getId() + "'", Locale.US);
0941:                assertEquals(1, result.getSearchResult().getRows().getRowArray(
0942:                        0).getHierarchyValueArray().length);
0943:                assertEquals("ABC", result.getSearchResult().getRows()
0944:                        .getRowArray(0).getHierarchyValueArray(0)
0945:                        .getValueArray(0));
0946:                assertEquals("DEF", result.getSearchResult().getRows()
0947:                        .getRowArray(0).getHierarchyValueArray(0)
0948:                        .getValueArray(1));
0949:                assertEquals("GHI", result.getSearchResult().getRows()
0950:                        .getRowArray(0).getHierarchyValueArray(0)
0951:                        .getValueArray(2));
0952:                assertEquals("52-DSYTEST", result.getSearchResult().getRows()
0953:                        .getRowArray(0).getMultiValueArray(0)
0954:                        .getHierarchyValueArray(1).getLinkValueArray(0)
0955:                        .getDocumentId());
0956:
0957:                //
0958:                // Test functions
0959:                //
0960:
0961:                // basic math functions
0962:                result = queryManager
0963:                        .performQuery(
0964:                                "select $DecimalField1 + $DecimalField2 where $DecimalField1 + $DecimalField2 = 424.34 and id = '"
0965:                                        + document.getId() + "'", Locale.US);
0966:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0967:                        .getValueArray(0), "424.34");
0968:
0969:                result = queryManager
0970:                        .performQuery(
0971:                                "select $DecimalField1 - $DecimalField2 where $DecimalField1 - $DecimalField2 = -177.44 and id = '"
0972:                                        + document.getId() + "'", Locale.US);
0973:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0974:                        .getValueArray(0), "-177.44");
0975:
0976:                result = queryManager
0977:                        .performQuery(
0978:                                "select $DecimalField1 / $DecimalField2 where $DecimalField1 / $DecimalField2 > 0.410 and $DecimalField1 / $DecimalField2 < 0.411 and id = '"
0979:                                        + document.getId() + "'", Locale.US);
0980:                assertTrue("division function", result.getSearchResult()
0981:                        .getRows().getRowArray(0).getValueArray(0).startsWith(
0982:                                "0.41"));
0983:
0984:                result = queryManager
0985:                        .performQuery(
0986:                                "select $DecimalField1 * $DecimalField2 where $DecimalField1 * $DecimalField2 > 37144.85 and $DecimalField1 * $DecimalField2 < 37144.95 and id = '"
0987:                                        + document.getId() + "'", Locale.US);
0988:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0989:                        .getValueArray(0), "37,144.87");
0990:
0991:                // precedence of operations and grouping
0992:                result = queryManager.performQuery(
0993:                        "select 2 * 3 + 5 where 2 * 3 + 5 = 11 and id = '"
0994:                                + document.getId() + "'", Locale.US);
0995:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
0996:                        .getValueArray(0), "11");
0997:
0998:                result = queryManager.performQuery(
0999:                        "select 5 + 3 * 2 where 5 + 3 * 2 = 11 and id = '"
1000:                                + document.getId() + "'", Locale.US);
1001:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
1002:                        .getValueArray(0), "11");
1003:
1004:                result = queryManager.performQuery(
1005:                        "select 2 * (3 + 5) where 2 * (3 + 5) = 16 and id = '"
1006:                                + document.getId() + "'", Locale.US);
1007:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
1008:                        .getValueArray(0), "16");
1009:
1010:                result = queryManager.performQuery(
1011:                        "select (5 + 3) * 2 where (5 + 3) * 2 = 16 and id = '"
1012:                                + document.getId() + "'", Locale.US);
1013:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
1014:                        .getValueArray(0), "16");
1015:
1016:                result = queryManager.performQuery(
1017:                        "select 5 + 4 + 3 + 2 where 5 + 4 + 3 + 2 = 14 and id = '"
1018:                                + document.getId() + "'", Locale.US);
1019:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
1020:                        .getValueArray(0), "14");
1021:
1022:                // Random function
1023:                result = queryManager.performQuery(
1024:                        "select Random(), Random() where Random() != Random() and id = '"
1025:                                + document.getId() + "'", Locale.US);
1026:                assertFalse(result.getSearchResult().getRows().getRowArray(0)
1027:                        .getValueArray(0).equals(
1028:                                result.getSearchResult().getRows().getRowArray(
1029:                                        0).getValueArray(1)));
1030:
1031:                // Mod function
1032:                result = queryManager.performQuery(
1033:                        "select Mod(10, 4) where Mod(10, 4) = 2 and id = '"
1034:                                + document.getId() + "'", Locale.US);
1035:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
1036:                        .getValueArray(0), "2");
1037:
1038:                // Abs function
1039:                result = queryManager.performQuery(
1040:                        "select Abs(-5) where Abs(-5) = 5 and id = '"
1041:                                + document.getId() + "'", Locale.US);
1042:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
1043:                        .getValueArray(0), "5");
1044:
1045:                // Floor function
1046:                result = queryManager.performQuery(
1047:                        "select Floor(5.22) where Floor(5.22) = 5 and id = '"
1048:                                + document.getId() + "'", Locale.US);
1049:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
1050:                        .getValueArray(0), "5");
1051:
1052:                // Ceiling function
1053:                result = queryManager.performQuery(
1054:                        "select Ceiling(5.22) where Ceiling(5.22) = 6 and id = '"
1055:                                + document.getId() + "'", Locale.US);
1056:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
1057:                        .getValueArray(0), "6");
1058:
1059:                // Round function
1060:                result = queryManager
1061:                        .performQuery(
1062:                                "select Round(5.22, 1), Round(5.28, 1), Round(5.25, 1) where Round(5.22, 1) = 5.2 and Round(5.28, 1) = 5.3 and Round(5.25, 1) = 5.2 and id = '"
1063:                                        + document.getId() + "'", Locale.US);
1064:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
1065:                        .getValueArray(0), "5.2");
1066:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
1067:                        .getValueArray(1), "5.3");
1068:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
1069:                        .getValueArray(2), "5.2");
1070:
1071:                // Length function
1072:                result = queryManager.performQuery(
1073:                        "select Length(name) where Length(name) = 11 and id = '"
1074:                                + document.getId() + "'", Locale.US);
1075:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
1076:                        .getValueArray(0), "11");
1077:
1078:                // Concat function
1079:                result = queryManager
1080:                        .performQuery(
1081:                                "select Length(Concat(name, 'abc')), Concat(name, 'abc') where Length(Concat(name, 'abc')) = 14 and id = '"
1082:                                        + document.getId() + "'", Locale.US);
1083:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
1084:                        .getValueArray(0), "14");
1085:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
1086:                        .getValueArray(1), "My Documentabc");
1087:
1088:                // Left function
1089:                result = queryManager.performQuery(
1090:                        "select Left(name, 2) where id = '" + document.getId()
1091:                                + "'", Locale.US);
1092:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
1093:                        .getValueArray(0), "My");
1094:
1095:                result = queryManager.performQuery(
1096:                        "select Left(name, 200) where id = '"
1097:                                + document.getId() + "'", Locale.US);
1098:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
1099:                        .getValueArray(0), "My Document");
1100:
1101:                result = queryManager.performQuery(
1102:                        "select Left(name, 0) where id = '" + document.getId()
1103:                                + "'", Locale.US);
1104:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
1105:                        .getValueArray(0), "");
1106:
1107:                result = queryManager.performQuery(
1108:                        "select name where Left(name, 2) = 'My' and id = '"
1109:                                + document.getId() + "'", Locale.US);
1110:                assertEquals(result.getSearchResult().getRows()
1111:                        .sizeOfRowArray(), 1);
1112:
1113:                // Right function
1114:                result = queryManager.performQuery(
1115:                        "select Right(name, 2) where id = '" + document.getId()
1116:                                + "'", Locale.US);
1117:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
1118:                        .getValueArray(0), "nt");
1119:
1120:                result = queryManager.performQuery(
1121:                        "select Right(name, 200) where id = '"
1122:                                + document.getId() + "'", Locale.US);
1123:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
1124:                        .getValueArray(0), "My Document");
1125:
1126:                result = queryManager.performQuery(
1127:                        "select name where Right(name, 2) = 'nt' and id = '"
1128:                                + document.getId() + "'", Locale.US);
1129:                assertEquals(result.getSearchResult().getRows()
1130:                        .sizeOfRowArray(), 1);
1131:
1132:                result = queryManager.performQuery(
1133:                        "select name where Left(Right(name, 2), 1) = 'n' and id = '"
1134:                                + document.getId() + "'", Locale.US);
1135:                assertEquals(result.getSearchResult().getRows()
1136:                        .sizeOfRowArray(), 1);
1137:
1138:                // Substring function
1139:                result = queryManager.performQuery(
1140:                        "select Substring(name, 4, 4) where id = '"
1141:                                + document.getId() + "'", Locale.US);
1142:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
1143:                        .getValueArray(0), "Docu");
1144:
1145:                result = queryManager.performQuery(
1146:                        "select Substring(name, 1, 5000) where id = '"
1147:                                + document.getId() + "'", Locale.US);
1148:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
1149:                        .getValueArray(0), "My Document");
1150:
1151:                result = queryManager.performQuery(
1152:                        "select name where Substring(name, 4, 4) = 'Docu' and id = '"
1153:                                + document.getId() + "'", Locale.US);
1154:                assertEquals(result.getSearchResult().getRows()
1155:                        .sizeOfRowArray(), 1);
1156:
1157:                // UpperCase function
1158:                result = queryManager.performQuery(
1159:                        "select UpperCase(name) where id = '"
1160:                                + document.getId() + "'", Locale.US);
1161:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
1162:                        .getValueArray(0), "MY DOCUMENT");
1163:
1164:                // note: SQL doesn't search case sensitive so this just tests the SQL generation works ok
1165:                result = queryManager.performQuery(
1166:                        "select name where UpperCase(name) = 'MY DOCUMENT' and id = '"
1167:                                + document.getId() + "'", Locale.US);
1168:                assertEquals(result.getSearchResult().getRows()
1169:                        .sizeOfRowArray(), 1);
1170:
1171:                // LowerCase function
1172:                result = queryManager.performQuery(
1173:                        "select LowerCase(name) where id = '"
1174:                                + document.getId() + "'", Locale.US);
1175:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
1176:                        .getValueArray(0), "my document");
1177:
1178:                // note: SQL doesn't search case sensitive so this just tests the SQL generation works ok
1179:                result = queryManager.performQuery(
1180:                        "select name where LowerCase(name) = 'my document' and id = '"
1181:                                + document.getId() + "'", Locale.US);
1182:                assertEquals(result.getSearchResult().getRows()
1183:                        .sizeOfRowArray(), 1);
1184:
1185:                // CurrentDate function
1186:                Date nowDate = getDate();
1187:                result = queryManager.performQuery(
1188:                        "select CurrentDate() where CurrentDate() = CurrentDate() and id = '"
1189:                                + document.getId() + "'", Locale.US);
1190:                assertTrue(dateFormat.parse(
1191:                        result.getSearchResult().getRows().getRowArray(0)
1192:                                .getValueArray(0)).compareTo(nowDate) == 0);
1193:
1194:                // CurrentDateTime function
1195:                Date nowDateTime = getDateTime();
1196:                result = queryManager.performQuery(
1197:                        "select CurrentDateTime() where lastModified < CurrentDateTime() and id = '"
1198:                                + document.getId() + "'", Locale.US);
1199:                System.out.println(dateTimeFormat.parse(result
1200:                        .getSearchResult().getRows().getRowArray(0)
1201:                        .getValueArray(0))
1202:                        + " and " + nowDateTime);
1203:                assertTrue(dateTimeFormat.parse(
1204:                        result.getSearchResult().getRows().getRowArray(0)
1205:                                .getValueArray(0)).compareTo(nowDateTime) >= 0);
1206:
1207:                // ContextDoc function
1208:                final Document contextDoc = document;
1209:                final Version contextVersion = document.getLiveVersion();
1210:                EvaluationContext evaluationContext = new EvaluationContext();
1211:                evaluationContext
1212:                        .setContextDocument(contextDoc, contextVersion);
1213:                result = queryManager
1214:                        .performQuery(
1215:                                "select ContextDoc(branch), ContextDoc(language) where ContextDoc(branch) = branch and ContextDoc(language) = language and id = '"
1216:                                        + document.getId() + "'", Locale.US,
1217:                                evaluationContext);
1218:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
1219:                        .getValueArray(0), "main");
1220:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
1221:                        .getValueArray(1), "default");
1222:
1223:                evaluationContext = new EvaluationContext();
1224:                evaluationContext.pushContextDocument(contextDoc,
1225:                        contextVersion);
1226:                evaluationContext.pushContextDocument(contextDoc, document
1227:                        .getLastVersion());
1228:                result = queryManager.performQuery(
1229:                        "select ContextDoc(name, 1), ContextDoc(name, 2) where id = '"
1230:                                + document.getId() + "'", Locale.US,
1231:                        evaluationContext);
1232:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
1233:                        .getValueArray(0), "My Document updated");
1234:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
1235:                        .getValueArray(1), "My Document");
1236:
1237:                result = queryManager.performQuery(
1238:                        "select id where $MVField has some ( ContextDoc($MVField) ) and id = '"
1239:                                + document.getId() + "'", Locale.US,
1240:                        evaluationContext);
1241:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
1242:                        .getValueArray(0), document.getId());
1243:
1244:                // Year function
1245:                String currentYear = String.valueOf(new GregorianCalendar(
1246:                        Locale.US).get(Calendar.YEAR));
1247:                result = queryManager.performQuery(
1248:                        "select Year(CurrentDate()) where Year(CurrentDate()) = "
1249:                                + currentYear + " and id = '"
1250:                                + document.getId() + "'", Locale.US);
1251:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
1252:                        .getValueArray(0), currentYear);
1253:
1254:                // Month function
1255:                String currentMonth = String.valueOf(new GregorianCalendar(
1256:                        Locale.US).get(Calendar.MONTH) + 1);
1257:                result = queryManager.performQuery(
1258:                        "select Month(CurrentDate()) where Month(CurrentDate()) = "
1259:                                + currentMonth + " and id = '"
1260:                                + document.getId() + "'", Locale.US);
1261:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
1262:                        .getValueArray(0), currentMonth);
1263:
1264:                // Week function
1265:                String currentWeek = String.valueOf(new GregorianCalendar(
1266:                        Locale.US).get(Calendar.WEEK_OF_YEAR));
1267:                result = queryManager.performQuery(
1268:                        "select Week(CurrentDate()) where Week(CurrentDate()) = "
1269:                                + currentWeek + " and id = '"
1270:                                + document.getId() + "'", Locale.US);
1271:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
1272:                        .getValueArray(0), currentWeek);
1273:
1274:                // DayOfWeek function
1275:                String currentDayOfWeek = String.valueOf(new GregorianCalendar(
1276:                        Locale.US).get(Calendar.DAY_OF_WEEK));
1277:                result = queryManager.performQuery(
1278:                        "select DayOfWeek(CurrentDate()) where DayOfWeek(CurrentDate()) = "
1279:                                + currentDayOfWeek + " and id = '"
1280:                                + document.getId() + "'", Locale.US);
1281:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
1282:                        .getValueArray(0), currentDayOfWeek);
1283:
1284:                // DayOfMonth function
1285:                String currentDayOfMonth = String
1286:                        .valueOf(new GregorianCalendar(Locale.US)
1287:                                .get(Calendar.DAY_OF_MONTH));
1288:                result = queryManager.performQuery(
1289:                        "select DayOfMonth(CurrentDate()) where DayOfMonth(CurrentDate()) = "
1290:                                + currentDayOfMonth + " and id = '"
1291:                                + document.getId() + "'", Locale.US);
1292:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
1293:                        .getValueArray(0), currentDayOfMonth);
1294:
1295:                // DayOfYear function
1296:                String currentDayOfYear = String.valueOf(new GregorianCalendar(
1297:                        Locale.US).get(Calendar.DAY_OF_YEAR));
1298:                result = queryManager.performQuery(
1299:                        "select DayOfYear(CurrentDate()) where DayOfYear(CurrentDate()) = "
1300:                                + currentDayOfYear + " and id = '"
1301:                                + document.getId() + "'", Locale.US);
1302:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
1303:                        .getValueArray(0), currentDayOfYear);
1304:
1305:                // CurrentDate function with argument
1306:                Calendar tenYearsAgo = new GregorianCalendar();
1307:                tenYearsAgo.set(Calendar.HOUR_OF_DAY, 0);
1308:                tenYearsAgo.set(Calendar.MINUTE, 0);
1309:                tenYearsAgo.set(Calendar.SECOND, 0);
1310:                tenYearsAgo.set(Calendar.MILLISECOND, 0);
1311:                tenYearsAgo.add(Calendar.YEAR, -10);
1312:                result = queryManager.performQuery(
1313:                        "select CurrentDate('- 10 years') where CurrentDate('- 10 years') = "
1314:                                + QueryHelper.formatDate(tenYearsAgo.getTime())
1315:                                + " and id = '" + document.getId() + "'",
1316:                        Locale.US);
1317:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
1318:                        .getValueArray(0), dateFormat.format(tenYearsAgo
1319:                        .getTime()));
1320:
1321:                // CurrentDateTime function
1322:                result = queryManager.performQuery(
1323:                        "select CurrentDateTime('+1hours') where CurrentDateTime('+    1  hours') > "
1324:                                + QueryHelper.formatDateTime(new Date())
1325:                                + " and id = '" + document.getId() + "'",
1326:                        Locale.US);
1327:                assertTrue(dateTimeFormat.parse(
1328:                        result.getSearchResult().getRows().getRowArray(0)
1329:                                .getValueArray(0)).compareTo(new Date()) > 0);
1330:
1331:                result = queryManager
1332:                        .performQuery(
1333:                                "select RelativeDate('start next week') where RelativeDate('start next week') > "
1334:                                        + QueryHelper.formatDate(new Date())
1335:                                        + " and id = '"
1336:                                        + document.getId()
1337:                                        + "'", Locale.US);
1338:                assertTrue(dateFormat.parse(
1339:                        result.getSearchResult().getRows().getRowArray(0)
1340:                                .getValueArray(0)).compareTo(new Date()) > 0);
1341:
1342:                result = queryManager
1343:                        .performQuery(
1344:                                "select RelativeDateTime('start this week') where RelativeDateTime('start this week') < "
1345:                                        + QueryHelper
1346:                                                .formatDateTime(new Date())
1347:                                        + " and id = '"
1348:                                        + document.getId()
1349:                                        + "'", Locale.US);
1350:                assertTrue(dateTimeFormat.parse(
1351:                        result.getSearchResult().getRows().getRowArray(0)
1352:                                .getValueArray(0)).compareTo(new Date()) < 0);
1353:
1354:                // Test Year function with datetime arguments
1355:                Calendar lastModCal = new GregorianCalendar();
1356:                lastModCal.setTime(document.getLastModified());
1357:                String lastModYear = String.valueOf(lastModCal
1358:                        .get(Calendar.YEAR));
1359:                result = queryManager.performQuery(
1360:                        "select Year(lastModified), Year("
1361:                                + QueryHelper.formatDateTime(document
1362:                                        .getLastModified())
1363:                                + ") where Year(lastModified) = " + lastModYear
1364:                                + " and id = '" + document.getId() + "'",
1365:                        Locale.US);
1366:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
1367:                        .getValueArray(0), lastModYear);
1368:                assertEquals(result.getSearchResult().getRows().getRowArray(0)
1369:                        .getValueArray(1), lastModYear);
1370:
1371:                // UserId function
1372:                result = user1Repo.getQueryManager().performQuery(
1373:                        "select UserId() where ownerId = UserId()", Locale.US);
1374:                assertEquals(String.valueOf(user1Repo.getUserId()), result
1375:                        .getSearchResult().getRows().getRowArray(0)
1376:                        .getValueArray(0));
1377:                assertTrue(result.getSearchResult().getRows().getRowArray().length > 0);
1378:
1379:                // multivalue index
1380:                result = queryManager.performQuery(
1381:                        "select id where $MVField[1] = 'aaa' and $MVField[1 + 1] = 'bbb' and id = '"
1382:                                + document.getId() + "'", Locale.US,
1383:                        evaluationContext);
1384:                assertEquals(document.getId(), result.getSearchResult()
1385:                        .getRows().getRowArray(0).getValueArray(0));
1386:
1387:                result = queryManager.performQuery(
1388:                        "select id where $MVField[1] = 'aaa' and $MVField[-1] = 'bbb' and id = '"
1389:                                + document.getId() + "'", Locale.US,
1390:                        evaluationContext);
1391:                assertEquals(document.getId(), result.getSearchResult()
1392:                        .getRows().getRowArray(0).getValueArray(0));
1393:
1394:                result = queryManager.performQuery(
1395:                        "select id where $MVField[1] = 'aaa' and $MVField[-38] = 'bbb' and id = '"
1396:                                + document.getId() + "'", Locale.US,
1397:                        evaluationContext);
1398:                assertEquals(0, result.getSearchResult().getRows()
1399:                        .getRowArray().length);
1400:
1401:                result = queryManager.performQuery(
1402:                        "select id where $MVField[234342] = 'aaa' and $MVField[-1] = 'bbb' and id = '"
1403:                                + document.getId() + "'", Locale.US,
1404:                        evaluationContext);
1405:                assertEquals(0, result.getSearchResult().getRows()
1406:                        .getRowArray().length);
1407:
1408:                result = queryManager.performQuery(
1409:                        "select id where $MVHLinkField[*][1] = 'daisy:50' and id = '"
1410:                                + document.getId() + "'", Locale.US,
1411:                        evaluationContext);
1412:                assertEquals(document.getId(), result.getSearchResult()
1413:                        .getRows().getRowArray(0).getValueArray(0));
1414:
1415:                result = queryManager.performQuery(
1416:                        "select id where $MVHLinkField[*][1] = 'daisy:52' and id = '"
1417:                                + document.getId() + "'", Locale.US,
1418:                        evaluationContext);
1419:                assertEquals(document.getId(), result.getSearchResult()
1420:                        .getRows().getRowArray(0).getValueArray(0));
1421:
1422:                result = queryManager
1423:                        .performQuery(
1424:                                "select id, $MVHLinkField[*][1], $MVHLinkField[1][1], $MVHLinkField[*][2], $MVHLinkField[*][3], $MVHLinkField[2], $MVHLinkField[*][2].branch where id = '"
1425:                                        + document.getId() + "'", Locale.US,
1426:                                evaluationContext);
1427:                assertEquals("main", result.getSearchResult().getRows()
1428:                        .getRowArray(0).getMultiValueArray(3).getValueArray(0));
1429:                assertEquals("main", result.getSearchResult().getRows()
1430:                        .getRowArray(0).getMultiValueArray(3).getValueArray(1));
1431:
1432:                result = queryManager
1433:                        .performQuery(
1434:                                "select id where $MVHLinkField[*][1] has exactly('daisy:50', 'daisy:52') and id = '"
1435:                                        + document.getId() + "'", Locale.US,
1436:                                evaluationContext);
1437:                assertEquals(document.getId(), result.getSearchResult()
1438:                        .getRows().getRowArray(0).getValueArray(0));
1439:
1440:                result = queryManager
1441:                        .performQuery(
1442:                                "select id where $MVHLinkField[*][2] has exactly('daisy:50', 'daisy:52') and id = '"
1443:                                        + document.getId() + "'", Locale.US,
1444:                                evaluationContext);
1445:                assertEquals(0, result.getSearchResult().getRows()
1446:                        .getRowArray().length);
1447:
1448:                result = queryManager.performQuery(
1449:                        "select id where $MVHLinkField[2] matchesPath('daisy:52/daisy:53') and id = '"
1450:                                + document.getId() + "'", Locale.US,
1451:                        evaluationContext);
1452:                assertEquals(document.getId(), result.getSearchResult()
1453:                        .getRows().getRowArray(0).getValueArray(0));
1454:
1455:                result = queryManager
1456:                        .performQuery(
1457:                                "select id, $MVHLinkField[1] where $MVHLinkField[1] matchesPath('daisy:52/daisy:53') and id = '"
1458:                                        + document.getId() + "'", Locale.US,
1459:                                evaluationContext);
1460:                assertEquals(0, result.getSearchResult().getRows()
1461:                        .getRowArray().length);
1462:            }
1463:
1464:            private Date getDate() {
1465:                Calendar calendar = new GregorianCalendar();
1466:                calendar.set(Calendar.HOUR_OF_DAY, 0);
1467:                calendar.set(Calendar.MINUTE, 0);
1468:                calendar.set(Calendar.SECOND, 0);
1469:                calendar.set(Calendar.MILLISECOND, 0);
1470:                return calendar.getTime();
1471:            }
1472:
1473:            private Date getDateTime() {
1474:                Calendar calendar = new GregorianCalendar();
1475:                calendar.set(Calendar.MILLISECOND, 0);
1476:                return calendar.getTime();
1477:            }
1478:
1479:            protected abstract RepositoryManager getRepositoryManager()
1480:                    throws Exception;
1481:
1482:            protected boolean resetDataStores() {
1483:                return true;
1484:            }
1485:        }
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.