2014-01-14 1 views
0

Я знаю, как вызвать капсюль ATG со страницы jsp. Ниже фрагмента кода вызывает параметр GiftListSiteFilterDroplet.Как вызвать GiftlistSiteFilterDroplet в Oracle ATG commerce?

<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. Я хотел бы знать, можем ли мы передать этот параметр bean, используя этот DropletInvoker.

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

+0

Wh вы пытаетесь достичь? [ATG Dust] (http://atgdust.sourceforge.net/) является основой для построения тестов JUnit. Вы называете это для целей тестирования или хотите ли вы назвать Droplet из другой части кода по другой причине? – radimpe

+0

Он предназначен для тестирования. Мы создаем капельку аналогичной функциональности, я пытаюсь выяснить различные способы тестирования этого нового компонента без создания jsp-страниц. – Buddha

+1

Вы можете попробовать использовать [Mockito] (https://code.google.com/p/mockito/) вместо ATG Dust. Существует пример использования этого для Droplet, доступного [здесь] (http://stackoverflow.com/questions/17523741/using-mockito-for-writing-atg-test -case) – radimpe

ответ

2

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

Благодаря