1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3  * This file is part of the LibreOffice project.
4  *
5  * This Source Code Form is subject to the terms of the Mozilla Public
6  * License, v. 2.0. If a copy of the MPL was not distributed with this
7  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8  */
9 
10 #include <com/sun/star/util/XSearchable.hpp>
11 #include <com/sun/star/util/XSearchDescriptor.hpp>
12 #include <com/sun/star/container/XIndexAccess.hpp>
13 #include <cppunit/TestAssert.h>
14 
15 #include <test/util/xsearchable.hxx>
16 
17 using namespace css;
18 using namespace css::uno;
19 
20 namespace apitest
21 {
testFindAll()22 void XSearchable::testFindAll()
23 {
24     uno::Reference<util::XSearchable> xSearchable(init(), UNO_QUERY_THROW);
25     uno::Reference<util::XSearchDescriptor> xSearchDescr = xSearchable->createSearchDescriptor();
26     xSearchDescr->setSearchString(maSearchString);
27 
28     uno::Reference<container::XIndexAccess> xIndex = xSearchable->findAll(xSearchDescr);
29     CPPUNIT_ASSERT(xIndex.is());
30     CPPUNIT_ASSERT_EQUAL(mnCount, xIndex->getCount());
31 }
32 
testFindFirst()33 void XSearchable::testFindFirst()
34 {
35     uno::Reference<util::XSearchable> xSearchable(init(), UNO_QUERY_THROW);
36     uno::Reference<util::XSearchDescriptor> xSearchDescr = xSearchable->createSearchDescriptor();
37     xSearchDescr->setSearchString(maSearchString);
38 
39     uno::Reference<uno::XInterface> xElement = xSearchable->findFirst(xSearchDescr);
40     CPPUNIT_ASSERT(xElement.is());
41 }
42 
testFindNext()43 void XSearchable::testFindNext()
44 {
45     uno::Reference<util::XSearchable> xSearchable(init(), UNO_QUERY_THROW);
46     uno::Reference<util::XSearchDescriptor> xSearchDescr = xSearchable->createSearchDescriptor();
47     xSearchDescr->setSearchString(maSearchString);
48 
49     uno::Reference<uno::XInterface> xElement = xSearchable->findFirst(xSearchDescr);
50     CPPUNIT_ASSERT(xElement.is());
51 
52     if (mnCount > 1)
53     {
54         uno::Reference<uno::XInterface> xElement2 = xSearchable->findNext(xElement, xSearchDescr);
55         CPPUNIT_ASSERT(xElement2.is());
56     }
57 }
58 
~XSearchable()59 XSearchable::~XSearchable() {}
60 }
61 
62 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
63