from zope.component import queryUtility
from waeup.ikoba.payments.interfaces import (
    IPaymentGatewayServicesLister, IPaymentGatewayService,
)
from ikobacustom.pcn.testing import FunctionalTestCase, FunctionalLayer
from ikobacustom.pcn.payments import PCNPaymentGatewayServicesLister


class PaymentsTests(FunctionalTestCase):

    layer = FunctionalLayer

    def test_get_filtered_payment_providers(self):
        result = PCNPaymentGatewayServicesLister()()
        assert len(result) >= 0
        for service in result.values():
            assert IPaymentGatewayService.providedBy(service)

    def test_filtered_payment_providers_registered(self):
        util = queryUtility(IPaymentGatewayServicesLister)
        assert util is not None
        assert isinstance(util, PCNPaymentGatewayServicesLister)
