That's because DefaultDocumentAccessBridge is trying to get the
current user from the XWikiContext which is supposed to be stored in
the ExecutionContext. All that require special setup in your test
because default archetype does not take care of that (thoses thing
don't even exist at its level).
It depends on what exactly you macro is doing and what you want to
test but generally the best is to override the component with role
DocumentAccessBridge with default hint and implement getCurrentUser in
it (and any other thing you require in your macro). You can also setup
the ExecutionContext etc but that's more complex and I doubt you
really need to test that.
You can look at
https://github.com/xwiki/xwiki-platform/blob/master/xwiki-platform-core/xwi…
for an example of how to mock DocumentAccessBridge (you don't need to
do all that, this test is mocking other things too and use many thing
in DocumentAccessBridge)
On Wed, Jun 13, 2012 at 2:15 PM, David Delbecq <david.delbecq(a)meteo.be> wrote:
Hello,
i try to test a macro in a maven project created using maven archetype. It has .test
files and an IntegrationTests class. Where running, it crashed due to nullpointerexception
when trying to, probably, find out current user?
Is ther some configuration i am missing?
java.lang.NullPointerException: null
at
com.xpn.xwiki.doc.DefaultDocumentAccessBridge.getCurrentUser(DefaultDocumentAccessBridge.java:981)
~[xwiki-platform-oldcore-3.2.jar:na]
at org.xwiki.component.internal.UserComponentManager.getKey(UserComponentManager.java:74)
~[xwiki-platform-component-multi-3.2.jar:na]
at
org.xwiki.component.internal.AbstractGenericComponentManager.getComponentManager(AbstractGenericComponentManager.java:72)
~[xwiki-platform-component-multi-3.2.jar:na]
at
org.xwiki.component.internal.DelegateComponentManager.lookup(DelegateComponentManager.java:103)
~[xwiki-platform-component-multi-3.2.jar:na]
at
org.xwiki.component.internal.DelegateComponentManager.lookup(DelegateComponentManager.java:103)
~[xwiki-platform-component-multi-3.2.jar:na]
at
org.xwiki.rendering.internal.macro.DefaultMacroManager.getMacro(DefaultMacroManager.java:132)
~[xwiki-rendering-transformation-macro-3.2.jar:na]
at
org.xwiki.rendering.internal.transformation.macro.MacroTransformation.getHighestPriorityMacro(MacroTransformation.java:232)
~[xwiki-rendering-transformation-macro-3.2.jar:na]
at
org.xwiki.rendering.internal.transformation.macro.MacroTransformation.transformOnce(MacroTransformation.java:152)
~[xwiki-rendering-transformation-macro-3.2.jar:na]
at
org.xwiki.rendering.internal.transformation.macro.MacroTransformation.transform(MacroTransformation.java:141)
~[xwiki-rendering-transformation-macro-3.2.jar:na]
at
org.xwiki.rendering.internal.transformation.DefaultTransformationManager.performTransformations(DefaultTransformationManager.java:81)
~[xwiki-rendering-api-3.2.jar:na]
at
org.xwiki.rendering.test.integration.RenderingTest.runTestInternal(RenderingTest.java:133)
[xwiki-rendering-test-3.2.jar:na]
at org.xwiki.rendering.test.integration.RenderingTest.execute(RenderingTest.java:103)
[xwiki-rendering-test-3.2.jar:na]
David Delbecq
_______________________________________________
devs mailing list
devs(a)xwiki.org
http://lists.xwiki.org/mailman/listinfo/devs
--
Thomas Mortagne