Как вызвать GiftlistSiteFilterDroplet в коммерции Oracle ATG?

Я знаю, как вызвать дроплет ATG со страницы jsp. Фрагмент кода ниже вызывает метод GiftListSiteFilterDroplet.

 <dsp:droplet name="GiftlistSiteFilterDroplet">
    <dsp:param name="collection"  bean="/atg/userprofiling/Profile.giftlists"/>
     <dsp:oparam name="output">
      <dsp:getvalueof var="giftlists" param="filteredCollection" />

Приведенный выше код вызовет GiftlistSiteFilterDroplet. Однако я пытаюсь выяснить, как вызвать ту же каплю из класса java. Существует класс DropletInvoker от ATG DUST. Ниже приведен пример кода для вызова компонента Switch.

Nucleus mNucleus = NucleusTestUtils.startNucleusWithModules(
new String[] {"DAS","DafEar"}, this.getClass(),"/atg/dynamo/droplet/Switch");
DropletInvoker invoker = new DropletInvoker(mNucleus);
DynamoHttpServletRequest request = invoker.getRequest();
DropletResult result = null;
request.setParameter("value", "foo");
result = invoker.invokeDroplet("/atg/dynamo/droplet/Switch");

Однако у GiftListSiteFilterDroplet есть параметр bean. Я хотел бы знать, можем ли мы передать этот параметр компонента с помощью этого DropletInvoker.

Я также хотел бы знать, можем ли мы в любом случае вызвать дроплет без использования компонента ATG DUST. Есть ли какой-либо общий способ вызова любого дроплета и передачи ему входных параметров?


person Buddha    schedule 14.01.2014    source источник
comment
Чего вы пытаетесь достичь? ATG Dust — это платформа для создания тестов JUnit. Вы вызываете это для целей тестирования или хотите вызвать дроплет из другого фрагмента кода по другой причине?   -  person radimpe    schedule 14.01.2014
comment
Именно с целью тестирования. Мы создаем дроплет аналогичной функциональности, я пытаюсь выяснить различные способы тестирования этого нового компонента без создания jsp-страниц.   -  person Buddha    schedule 14.01.2014
comment
Вы можете попробовать использовать Mockito вместо ATG Dust. Пример использования этого для дроплета доступен здесь   -  person radimpe    schedule 14.01.2014
comment
Я согласен с radimpe, Mockito лучше, чем Dust, это более быстрое, более тщательно ориентированное на TDD продолжение EasyMock. Вам не нужно запускать модули ATG для выполнения тестов.   -  person boyintello    schedule 16.01.2014


Ответы (1)


atg.service.collections.filter.droplet.CollectionFilter — класс для компонента /atg/commerce/collections/filter/droplet/GiftlistSiteFilterDroplet

Просто вызовите метод getFilter() в классе

См.: - https://docs.oracle.com/cd/E23095_01/Platform.93/apidoc/atg/service/collections/filter/droplet/CollectionFilter.html

https://docs.oracle.com/cd/E26180_01/Platform.94/ATGCommStoreGuide/html/s1712collectionfilter01.html

Спасибо

person Rahul R Nair    schedule 21.01.2016