========================
 An integration doctest
========================

----------------------
Creating Document content types
----------------------
    >>> self.folder.invokeFactory('Document','document01')
    'document01'
    >>> self.folder.invokeFactory('Document','document02')
    'document02'
    >>> self.folder.invokeFactory('Document','document03')
    'document03'
    >>> document01 = self.folder.document01
    >>> document02 = self.folder.document02
    >>> document03 = self.folder.document03
    >>> document01
    <ATDocument at /plone/Members/test_user_1_/document01>
    >>> document01.id
    'document01'
    >>> document01.setTitle('Document01')
    >>> document02.setTitle('Document02')
    >>> document03.setTitle('Document03')
    >>> document01.reindexObject(idxs=['Title'])
    >>> document02.reindexObject(idxs=['Title'])
    >>> document03.reindexObject(idxs=['Title'])
    >>> document01.Title()
    'Document01'
    >>> document02.Title()
    'Document02'
    >>> document03.Title()
    'Document03'
    >>> from Products.CMFCore.utils import getToolByName
    >>> catalog = getToolByName(portal, 'portal_catalog')
    >>> results = catalog(portal_type="Document")
    >>> title_list = [i.Title for i in results]
    >>> title_list.sort()
    >>> title_list
    ['Document01', 'Document02', 'Document03', 'Welcome to Plone']
    >>> catalog(Title='Document01')
    [<Products.ZCatalog.Catalog.mybrains object at ...>]
    >>> catalog(id='document01')[0].Title
    'Document01'

------------------
Create Collection content type
------------------
    >>> self.setRoles(['Manager'])
    >>> self.folder.invokeFactory('Topic','collection')
    'collection'
    >>> collection = self.folder.collection
    >>> collection.id
    'collection'

    >>> type_crit = collection.addCriterion('portal_type', 'ATSimpleStringCriterion')
    >>> type_crit.setValue('Document')
    >>> results = collection.queryCatalog()
    >>> title_list = [i.Title for i in results]
    >>> title_list.sort()
    >>> title_list
    ['Document01', 'Document02', 'Document03', 'Welcome to Plone']
    >>> collection.queryCatalog(SearchableText="Document01")
    [<Products.ZCatalog.Catalog.mybrains object at ...>]
    >>> collection.queryCatalog(SearchableText="Welcome")
    [<Products.ZCatalog.Catalog.mybrains object at ...>]
    >>> collection.queryCatalog(SearchableText="News")
    []


