Создание соединения с процессором PaymentConnect в APEX Sandbox

Прямо сейчас я программирую контроллер для системы пожертвований, которая использует Payconnect и PayPal.

В целях тестирования я хочу создать образец объекта "Соединение с процессором платежей", используя "new pymt__Processor_Connection_ c". Однако я не могу удалить соединение, потому что отсутствует обязательное поле настройки PaymentConnect (pymt _PaymentConnect_Setup__c).

Я попытался создать новую запись настроек PaymentConnect и новое соединение с процессором PayPal на вкладке PaymentConnect SalesForce, но мой запрос SOQL, похоже, не может его найти. Я подозреваю, что это может быть потому, что я программирую в учетной записи Sandbox. Если это так, то как мне правильно настроить поле pymt__PaymentConnect_Setup__c в моем тестовом соединении с процессором?

Мой запрос:

pymt__Processor_Connection__c connection = [SELECT Id,
   pymt__Test_Mode__c, pymt__Enabled_Card_Types__c
   FROM pymt__Processor_Connection__c
   WHERE pymt__Processor_Id__c = 'PayPal'];

Я все еще новичок в APEX и Stackru, поэтому просим вас попросить разъяснений или дополнительных разделов моего кода.

Спасибо!

1 ответ

Решение

Я не очень хорошо знаю модель данных PaymentConnect, но звучит так, как будто для создания условий тестирования вам необходимо создать соединение с процессором, которое связано с соответствующей родительской записью установки PaymentConnect Setup. У вас есть два варианта здесь:

  1. Рекомендовано: улучшить ваше понимание модели данных PaymentConnect, чтобы вы могли настроить все соответствующие тестовые данные перед выполнением модульных тестов. Для этого необходимо создать как запись настройки PaymentConnect, так и подозреваемое соединение.
  2. Менее идеально: создайте все необходимые данные конфигурации в своей песочнице через пользовательский интерфейс. В ваших модульных тестах, чтобы реально увидеть эти данные (и я подозреваю, что это проблема SOQL, с которой вы столкнулись), вам нужно добавить аннотацию, чтобы увидеть производственные данные:

    @isTest (seeAllData = true)
    

В версии 24 API Salesforce.com производственные данные по умолчанию изолированы от модульных тестов: изоляция тестовых данных от данных организации в модульных тестах. Я предполагаю, что ваш модульный тест не может увидеть что-либо, что вы создали в Песочнице, потому что вы находитесь на v.24 API или выше.

Опять же, тем не менее, всегда более надежный тест, в котором вы сами создаете все свои данные конфигурации и условия тестирования.

Надеюсь это поможет.

Другие вопросы по тегам