Создание соединения с процессором 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. У вас есть два варианта здесь:
- Рекомендовано: улучшить ваше понимание модели данных PaymentConnect, чтобы вы могли настроить все соответствующие тестовые данные перед выполнением модульных тестов. Для этого необходимо создать как запись настройки PaymentConnect, так и подозреваемое соединение.
Менее идеально: создайте все необходимые данные конфигурации в своей песочнице через пользовательский интерфейс. В ваших модульных тестах, чтобы реально увидеть эти данные (и я подозреваю, что это проблема SOQL, с которой вы столкнулись), вам нужно добавить аннотацию, чтобы увидеть производственные данные:
@isTest (seeAllData = true)
В версии 24 API Salesforce.com производственные данные по умолчанию изолированы от модульных тестов: изоляция тестовых данных от данных организации в модульных тестах. Я предполагаю, что ваш модульный тест не может увидеть что-либо, что вы создали в Песочнице, потому что вы находитесь на v.24 API или выше.
Опять же, тем не менее, всегда более надежный тест, в котором вы сами создаете все свои данные конфигурации и условия тестирования.
Надеюсь это поможет.