Great, glad I could help.

I've found the mock framework pretty invaluable to make sure that processors 
work 
right before trying to test in a real flow. That being said, we are often 
finding ways to improve
the mock framework, especially things like detecting "bad practices". So if you 
hit something that you think
we could add to the mock framework to help catching these things early on, 
please share so we
can make it better!

Thanks
-Mark

----------------------------------------
> Date: Wed, 8 Jul 2015 10:46:53 -0600
> Subject: Re: Problem with Custom Processor Incorrectly Routing FlowFile
> From: [email protected]
> To: [email protected]
>
> Thanks Mark, that got me in the right direction. Silly error on my part.
>
> *Jeremiah Adams*
>
> Senior Software Developer
> Pearson
>
> 2154 East Commons Ave.
> Suite 400
> Centennial, CO 80122
>
>
> Always Learning
> Learn more at www.pearson.com
>
> On Wed, Jul 8, 2015 at 10:24 AM, Mark Payne <[email protected]> wrote:
>
>> Jeremiah,
>>
>> That should be fine. I would recommend you modify the bootstrap.conf file
>> in $NIFI_HOME/conf and uncomment this line:
>>
>>
>> #java.arg.debug=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000
>>
>> That will then allow you to attach a remote debugger (i.e., eclipse or
>> whatever IDE you use) and then you can set a breakpoint and understand
>> what's going on.
>>
>> Thanks
>> -Mark
>>
>> ----------------------------------------
>>> Date: Wed, 8 Jul 2015 10:14:02 -0600
>>> Subject: Problem with Custom Processor Incorrectly Routing FlowFile
>>> From: [email protected]
>>> To: [email protected]
>>>
>>> I am implementing a custom processor based on JSON messages.
>>>
>>> I have unit tests around the processor. These verify the expected
>>> functionality and are similar to:
>>>
>>> ClassLoader loader = Thread.currentThread().getContextClassLoader();
>>> InputStream inputStream =
>>> loader.getResourceAsStream("matched.json");
>>> testRunner.enqueue(inputStream);
>>> testRunner.run();
>>> testRunner.assertTransferCount(JsonRouteProcessor.REL_MATCHED, 1);
>>> testRunner.assertQueueEmpty();
>>>
>>>
>>> Once I drop my processor into the NiFi server and put it in my flow, this
>>> processor does not route messages as expected and as verified in the unit
>>> tests. I can't see into the logic in the logs, just that this processor
>>> routed the message to the wrong downstream processor. I've even taken the
>>> messages the processor rejects in my NiFi flow and ran them through my
>> unit
>>> tests - they behave as expected.
>>>
>>> Do I have a misunderstanding of the correct way to unit test the
>> onTrigger
>>> method for my processor?
>>>
>>>
>>> *Jeremiah Adams*
>>>
>>> Senior Software Developer
>>> Pearson
>>>
>>> 2154 East Commons Ave.
>>> Suite 400
>>> Centennial, CO 80122
>>>
>>>
>>> Always Learning
>>> Learn more at www.pearson.com
>>
                                          

Reply via email to