when(project.getFullName()).thenReturn("MockedProject");
ParametersDefinitionProperty parameters = mock(ParametersDefinitionProperty.class);
when(parameters.getParameterDefinitions()).thenReturn(Collections.EMPTY_LIST);
when(project.getProperty(ParametersDefinitionProperty.class)).thenReturn(parameters);
Account owner = new Account("Bobby", "bobby@somewhere.com");
Account uploader = new Account("Nisse", "nisse@acme.org");
PowerMockito.mockStatic(PluginImpl.class);
PluginImpl plugin = PowerMockito.mock(PluginImpl.class);
PowerMockito.when(PluginImpl.getInstance()).thenReturn(plugin);
GerritServer server = mock(GerritServer.class);
when(plugin.getServer(any(String.class))).thenReturn(server);
GerritHandler handler = mock(GerritHandler.class);
when(plugin.getHandler()).thenReturn(handler);
GerritTrigger trigger = Setup.createDefaultTrigger(project);
when(project.getTrigger(GerritTrigger.class)).thenReturn(trigger);
trigger.setEscapeQuotes(false);
PatchsetCreated event = Setup.createPatchsetCreatedWithAccounts(owner, uploader, uploader);
GerritCause gerritCause = new GerritCause(event, true);
gerritCause = spy(gerritCause);
doReturn("http://mock.url").when(gerritCause).getUrl();
IGerritHudsonTriggerConfig config = Setup.createConfig();
config = spy(config);
doReturn("http://mock.url").when(config).getGerritFrontEndUrlFor(any(String.class), any(String.class));
when(plugin.getServer(any(String.class)).getConfig()).thenReturn(config);
trigger.schedule(gerritCause, event);
verify(project).scheduleBuild2(
anyInt(),
same(gerritCause),
isA(Action.class),
isA(Action.class),
isA(Action.class),
isParameterActionWithStringParameterValues(
nameVal(GERRIT_CHANGE_OWNER.name(), owner.getNameAndEmail()),
nameVal(GERRIT_CHANGE_OWNER_NAME.name(), owner.getName()),
nameVal(GERRIT_CHANGE_OWNER_EMAIL.name(), owner.getEmail()),
nameVal(GERRIT_PATCHSET_UPLOADER.name(), uploader.getNameAndEmail()),
nameVal(GERRIT_PATCHSET_UPLOADER_NAME.name(), uploader.getName()),
nameVal(GERRIT_PATCHSET_UPLOADER_EMAIL.name(), uploader.getEmail())));
}