Adapter VerkkomaksutProcessor
    >>> from getpaid.core.interfaces import IPaymentProcessor
    >>> from getpaid.verkkomaksut.interfaces import IVerkkomaksutProcessor
    >>> issubclass(IVerkkomaksutProcessor, IPaymentProcessor)
    True
    >>> from getpaid.verkkomaksut.adapters.verkkomaksut import VerkkomaksutProcessor
    >>> from zope.component import provideAdapter
    >>> from Products.CMFCore.interfaces import ISiteRoot
    >>> provideAdapter(VerkkomaksutProcessor, provides=IVerkkomaksutProcessor)
    >>> from zope.interface import implements
    >>> class Mock(object):
    ...     def __init__(self, **kwargs):
    ...        for k, v in kwargs.items(): setattr(self, k, v)
    ...     implements(ISiteRoot)
    >>> portal = Mock()
    >>> context = Mock(portal_url=Mock(getPortalObject=lambda: portal))
    >>> verkkomaksut_processor = IVerkkomaksutProcessor(context)
    >>> IVerkkomaksutProcessor.providedBy(verkkomaksut_processor)
    True
    >>> from zope.formlib.form import Fields
    >>> fields = Fields(verkkomaksut_processor.options_interface)
    >>> len(fields)
    2
    >>> [w.__name__ for w in fields]
    ['merchant_id', 'merchant_authentication_code']
    >>> fields['merchant_id'].field
    <zope.schema._field.ASCIILine object at ...
    >>> fields['merchant_id'].field.required
    True
    >>> fields['merchant_authentication_code'].field
    <zope.schema._field.ASCIILine object at ...
    >>> fields['merchant_authentication_code'].field.required
    True
