    >>> from Acquisition import aq_inner
    >>> from zope.publisher.browser import TestRequest
    >>> request = TestRequest()
    >>> from zope.component import getMultiAdapter
    >>> from Products.CMFCore.utils import getToolByName
    >>> from collective.categorizing.browser.category import CategoryView, CategoryNavViewlet, CategoryNavSelectionViewlet
    >>> from collective.categorizing.interfaces import INavChildren

    >>> portal = self.portal

Create CategoryCantainer
    >>> portal.invokeFactory('CategoryContainer', 'container')
    'container'
    >>> container = portal.container
    >>> container
    <CategoryContainer at /plone/container>

Create Category
    >>> container.invokeFactory('Category', 'category01')
    'category01'
    >>> category01 = container.category01

    >>> category01.title = 'Category01'
    >>> category01.description = 'Description of Category01'
    >>> category01.reindexObject()

CategoryView
    >>> category_view = CategoryView(category01, request)
    >>> category_view.contents()
    []
    >>> category_view.categories()
    []

Creat Document and categorize it
    >>> portal.invokeFactory('Document', 'document01')
    'document01'
    >>> document01 = portal.document01
    >>> document01.title = 'Document01'
    >>> document01.Description = 'Description of Document01'
    >>> document01.reindexObject()
    >>> container.type_categorized = ('Document')
    >>> category01.setContent_categorized([document01.UID()])
    >>> category_view = CategoryView(category01, request)
    >>> category_view.contents() == [{'url': '/plone/document01', 'description': 'Description of Document01', 'title': 'Document01'}]
    True

Add Category under Category01
    >>> category01.invokeFactory('Category', 'category02')
    'category02'
    >>> category02 = category01.category02
    >>> category02.title = 'Category02'
    >>> category02.description = 'Description of Category02'
    >>> category02.reindexObject()

Add Category under CategoryContainer and refer it to Category01
    >>> container.invokeFactory('Category', 'category03')
    'category03'
    >>> category03 = container.category03
    >>> category03.title = 'Category03'
    >>> category03.description = 'Description of Category03'
    >>> category03.reindexObject()
    >>> category01.setSubcategory([category03.UID()])
    >>> category_view = CategoryView(category01, request)
    >>> category_view.categories() == [{'url': '/plone/container/category01/category02', 'description': 'Description of Category02', 'title': 'Category02'}, {'url': '/plone/container/category03', 'description': 'Description of Category03', 'title': 'Category03'}]
    True


CategoryNavViewlet
    >>> view = getMultiAdapter((container, request), name="view")
    >>> manager = getMultiAdapter((container, request, view), name="collective.categorizing.container")
    >>> nav_view = CategoryNavViewlet(container, request, view, manager)
    >>> html = '<ul><li><a href="http://nohost/plone/container/category03" title="Description of Category03">Category03</a></li><li><a href="http://nohost/plone/container/category01/category02" title="Description of Category02">Category02</a></li></ul>'
    >>> html in nav_view.categories()
    True

#    >>> INavChildren(container)(0)
#    >>> nav_view.f()
