EventPayloadIT: Use ExtensionRegistry for RevisionCreatedListener
Add the necessary support in ExtensionRegistry and update the tests to use it. Change-Id: Ib391b9804a12b718eca67eff02ac66f8b1d472c2
This commit is contained in:
@@ -22,6 +22,7 @@ import com.google.gerrit.extensions.events.CommentAddedListener;
|
||||
import com.google.gerrit.extensions.events.GitReferenceUpdatedListener;
|
||||
import com.google.gerrit.extensions.events.GroupIndexedListener;
|
||||
import com.google.gerrit.extensions.events.ProjectIndexedListener;
|
||||
import com.google.gerrit.extensions.events.RevisionCreatedListener;
|
||||
import com.google.gerrit.extensions.registration.DynamicMap;
|
||||
import com.google.gerrit.extensions.registration.DynamicSet;
|
||||
import com.google.gerrit.extensions.registration.PrivateInternals_DynamicMapImpl;
|
||||
@@ -58,6 +59,7 @@ public class ExtensionRegistry {
|
||||
private final DynamicSet<CommentAddedListener> commentAddedListeners;
|
||||
private final DynamicSet<GitReferenceUpdatedListener> refUpdatedListeners;
|
||||
private final DynamicSet<FileHistoryWebLink> fileHistoryWebLinks;
|
||||
private final DynamicSet<RevisionCreatedListener> revisionCreatedListeners;
|
||||
|
||||
@Inject
|
||||
ExtensionRegistry(
|
||||
@@ -77,7 +79,8 @@ public class ExtensionRegistry {
|
||||
DynamicSet<RefOperationValidationListener> refOperationValidationListeners,
|
||||
DynamicSet<CommentAddedListener> commentAddedListeners,
|
||||
DynamicSet<GitReferenceUpdatedListener> refUpdatedListeners,
|
||||
DynamicSet<FileHistoryWebLink> fileHistoryWebLinks) {
|
||||
DynamicSet<FileHistoryWebLink> fileHistoryWebLinks,
|
||||
DynamicSet<RevisionCreatedListener> revisionCreatedListeners) {
|
||||
this.accountIndexedListeners = accountIndexedListeners;
|
||||
this.changeIndexedListeners = changeIndexedListeners;
|
||||
this.groupIndexedListeners = groupIndexedListeners;
|
||||
@@ -95,6 +98,7 @@ public class ExtensionRegistry {
|
||||
this.commentAddedListeners = commentAddedListeners;
|
||||
this.refUpdatedListeners = refUpdatedListeners;
|
||||
this.fileHistoryWebLinks = fileHistoryWebLinks;
|
||||
this.revisionCreatedListeners = revisionCreatedListeners;
|
||||
}
|
||||
|
||||
public Registration newRegistration() {
|
||||
@@ -177,6 +181,10 @@ public class ExtensionRegistry {
|
||||
return add(fileHistoryWebLinks, fileHistoryWebLink);
|
||||
}
|
||||
|
||||
public Registration add(RevisionCreatedListener revisionCreatedListener) {
|
||||
return add(revisionCreatedListeners, revisionCreatedListener);
|
||||
}
|
||||
|
||||
private <T> Registration add(DynamicSet<T> dynamicSet, T extension) {
|
||||
return add(dynamicSet, extension, "gerrit");
|
||||
}
|
||||
|
||||
@@ -17,49 +17,48 @@ package com.google.gerrit.acceptance.server.event;
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import com.google.gerrit.acceptance.AbstractDaemonTest;
|
||||
import com.google.gerrit.acceptance.ExtensionRegistry;
|
||||
import com.google.gerrit.acceptance.ExtensionRegistry.Registration;
|
||||
import com.google.gerrit.acceptance.GerritConfig;
|
||||
import com.google.gerrit.acceptance.NoHttpd;
|
||||
import com.google.gerrit.extensions.events.RevisionCreatedListener;
|
||||
import com.google.gerrit.extensions.registration.DynamicSet;
|
||||
import com.google.gerrit.extensions.registration.RegistrationHandle;
|
||||
import com.google.inject.Inject;
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
@NoHttpd
|
||||
public class EventPayloadIT extends AbstractDaemonTest {
|
||||
@Inject private DynamicSet<RevisionCreatedListener> revisionCreatedListeners;
|
||||
|
||||
private RegistrationHandle eventListenerRegistration;
|
||||
private RevisionCreatedListener.Event lastEvent;
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
eventListenerRegistration = revisionCreatedListeners.add("gerrit", event -> lastEvent = event);
|
||||
}
|
||||
|
||||
@After
|
||||
public void cleanup() {
|
||||
eventListenerRegistration.remove();
|
||||
}
|
||||
@Inject private ExtensionRegistry extensionRegistry;
|
||||
|
||||
@Test
|
||||
public void defaultOptions() throws Exception {
|
||||
createChange();
|
||||
|
||||
assertThat(lastEvent.getChange().submittable).isNotNull();
|
||||
assertThat(lastEvent.getRevision().files).isNotEmpty();
|
||||
RevisionCreatedListener listener =
|
||||
new RevisionCreatedListener() {
|
||||
@Override
|
||||
public void onRevisionCreated(Event event) {
|
||||
assertThat(event.getChange().submittable).isNotNull();
|
||||
assertThat(event.getRevision().files).isNotEmpty();
|
||||
}
|
||||
};
|
||||
try (Registration registration = extensionRegistry.newRegistration().add(listener)) {
|
||||
createChange();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
@GerritConfig(name = "event.payload.listChangeOptions", value = "SKIP_MERGEABLE")
|
||||
public void configuredOptions() throws Exception {
|
||||
createChange();
|
||||
|
||||
assertThat(lastEvent.getChange().submittable).isNull();
|
||||
assertThat(lastEvent.getChange().mergeable).isNull();
|
||||
assertThat(lastEvent.getRevision().files).isNull();
|
||||
assertThat(lastEvent.getChange().subject).isNotEmpty();
|
||||
RevisionCreatedListener listener =
|
||||
new RevisionCreatedListener() {
|
||||
@Override
|
||||
public void onRevisionCreated(Event event) {
|
||||
assertThat(event.getChange().submittable).isNull();
|
||||
assertThat(event.getChange().mergeable).isNull();
|
||||
assertThat(event.getRevision().files).isNull();
|
||||
assertThat(event.getChange().subject).isNotEmpty();
|
||||
}
|
||||
};
|
||||
try (Registration registration = extensionRegistry.newRegistration().add(listener)) {
|
||||
createChange();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user