;-*-Doctest-*-
===================================
archetypes.schemaextender migration
===================================

This tests migration of items that have been extended with extra
fields by archetypes.schemaextender.

    >>> from Products.CMFCore.permissions import ModifyPortalContent
    >>> from Products.CMFPlone.utils import _createObjectByType  
    >>> portal = layer['portal']
    >>> portal.manage_permission(
    ...     ModifyPortalContent, ['Manager', 'Owner'], acquire=0)

    >>> foo_doc = _createObjectByType(
    ...     'Document', portal, id='foo', title='Foo', extensive_text='Extra foo')
    >>> foo_doc.portal_type, foo_doc.getId(), foo_doc.Title()
    ('Document', 'foo', 'Foo')
    >>> foo_doc.getField('extensive_text').get(foo_doc)
    'Extra foo'

    >>> bar_doc = _createObjectByType(
    ...     'Document', portal, id='bar', title='Bar', extensive_text='Extra bar')
    >>> bar_doc.portal_type, bar_doc.getId(), bar_doc.Title()
    ('Document', 'bar', 'Bar')
    >>> bar_doc.getField('extensive_text').get(bar_doc)
    'Extra bar'

    >>> from transaction import commit
    >>> commit()

    >>> from Products.contentmigration.archetypes import ATItemMigrator
    >>> foo_migrator = ATItemMigrator(foo_doc)
    >>> foo_migrator.dst_portal_type = 'Document'
    >>> foo_migrator.dst_meta_type = 'ATDocument'
    >>> foo_migrator.migrate()
    >>> foo_new = portal.foo
    >>> foo_new.portal_type, foo_new.getId(), foo_new.Title()
    ('Document', 'foo', 'Foo')
    >>> foo_new.getField('extensive_text').get(foo_new)
    'Extra foo'

    >>> from Products.contentmigration.archetypes import InplaceATItemMigrator
    >>> bar_migrator = InplaceATItemMigrator(bar_doc)
    >>> bar_migrator.dst_portal_type = 'Document'
    >>> bar_migrator.dst_meta_type = 'ATDocument'
    >>> bar_migrator.migrate()
    >>> bar_new = portal.bar
    >>> bar_new.portal_type, bar_new.getId(), bar_new.Title()
    ('Document', 'bar', 'Bar')
    >>> bar_new.getField('extensive_text').get(bar_new)
    'Extra bar'
