How mock jenkins queue

Hi all

I’m working to gerrit-trigger-plugin on already pull request that does not pass anymore but for now I need to know why this code now generate this error:

java.lang.NullPointerException: Cannot invoke “hudson.ExtensionList.isEmpty()” because “strategies” is nullat 
jenkins.model.queue.QueueIdStrategy.get(QueueIdStrategy.java:24)at 
hudson.model.Queue$WaitingItem.(Queue.java:2566)at 
com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTriggerTest$5.answer(GerritTriggerTest.java:2437)at 
com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.GerritTriggerTest$5.answer(GerritTriggerTest.java:2433)at 
org.mockito.internal.stubbing.StubbedInvocationMatcher.answer(StubbedInvocationMatcher.java:42)at 
org.mockito.internal.handler.MockHandlerImpl.handle(MockHandlerImpl.java:103)at 
org.mockito.internal.handler.NullResultGuardian.handle(NullResultGuardian.java:29)at 
org.mockito.internal.handler.InvocationNotifierHandler.handle(InvocationNotifierHandler.java:34)at 
org.mockito.internal.creation.bytebuddy.access.MockMethodInterceptor.doIntercept(MockMethodInterceptor.java:84)at 
org.mockito.internal.creation.bytebuddy.MockMethodAdvice.handle(MockMethodAdvice.java:136)at hudson.model.Queue.schedule2(Queue.java:583)at 
jenkins.model.ParameterizedJobMixIn.scheduleBuild2(ParameterizedJobMixIn.java:162)at 
jenkins.model.ParameterizedJobMixIn.scheduleBuild2(ParameterizedJobMixIn.java:127)at 
com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.EventListener.schedule(EventListener.java:327)at 
com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.EventListener.schedule(EventListener.java:283)at 
com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.EventListener.schedule(EventListener.java:256)at 
com.sonyericsson.hudson.plugins.gerrit.trigger.hudsontrigger.EventListener.gerritEvent(EventListener.java:135)



This the corresponding mock of the queue:

private static Queue mockQueue(Jenkins jenkins) {
     Queue queue = mock(Queue.class);

when(jenkins.getQueue()).thenReturn(queue);

when(queue.schedule2(any(Queue.Task.class), anyInt(), anyList())).thenAnswer(new Answer<ScheduleResult>() {

            @Override

public ScheduleResult answer(InvocationOnMock invocation) throws Throwable {

Object[] arguments = invocation.getArguments();

Queue.WaitingItem i = new Queue.WaitingItem(

new GregorianCalendar(), (Queue.Task)arguments[0], (List<Action>)arguments[2]);

return ScheduleResult.created(i);

            }

        });

return queue;

    }

This was not happen before

This my re-pull:

And this one the original. I have rebased it and add one cleanup

Michael