services:
    oro_paypal.paypal.payflow.host_address_provider:
        class: 'Oro\Bundle\PayPalBundle\Tests\Behat\Mock\PayPal\Payflow\Gateway\Host\HostAddressProviderMock'
        public: false

    oro_paypal.paypal.payflow.client.nvp:
        class: 'Oro\Bundle\PayPalBundle\Tests\Behat\Mock\PayPal\Payflow\Client\NVPClientMock'
        arguments:
            - '@oro_paypal.test.express_payment.cache'
        public: false

    oro_paypal.test.fake_controller_mock.listener:
        class: 'Oro\Bundle\PayPalBundle\Tests\Behat\Mock\EventListener\PayPalOuterRedirectEventListener'
        arguments:
            - '@router'
            - '@oro_entity.doctrine_helper'
            - '@http_kernel'
        tags:
            - { name: kernel.event_listener, event: kernel.request, method: onKernelRequest, priority: 100 }

    oro_paypal.event_listener.ip_check.payflow_gateway.credit_card:
        class: 'Oro\Bundle\PayPalBundle\Tests\Behat\Mock\EventListener\Callback\PayflowIPCheckListenerMock'
        lazy: true
        arguments:
            - '@request_stack'
            - '@oro_paypal.method.provider.payflow_gateway.credit_card'
            - '%oro_paypal.allowed_ips%'
        tags:
            - { name: kernel.event_listener, event: oro_payment.callback.notify, method: onNotify, priority: 255 }
            - { name: kernel.event_listener, event: oro_payment.callback.notify, method: onNotify, priority: 255 }

    oro_paypal.event_listener.ip_check.payments_pro.credit_card:
        class: 'Oro\Bundle\PayPalBundle\Tests\Behat\Mock\EventListener\Callback\PayflowIPCheckListenerMock'
        lazy: true
        arguments:
            - '@request_stack'
            - '@oro_paypal.method.provider.payments_pro.credit_card'
            - '%oro_paypal.allowed_ips%'
        tags:
            - { name: kernel.event_listener, event: oro_payment.callback.notify, method: onNotify, priority: 255 }
            - { name: kernel.event_listener, event: oro_payment.callback.notify, method: onNotify, priority: 255 }

    oro_paypal.method.factory.express_checkout:
        class: 'Oro\Bundle\PayPalBundle\Tests\Behat\Mock\Method\Factory\BasicPayPalExpressCheckoutPaymentMethodFactoryMock'
        public: false
        arguments:
            - '@oro_paypal.paypal.payflow_express_checkout.gateway'
            - '@router'
            - '@property_accessor'
            - '@oro_paypal.options_provider.transaction'

    oro_paypal.test.express_payment.cache:
        parent: oro.data.cache
        public: true
        tags:
            - { name: 'cache.pool', namespace: 'oro_paypal_express' }
