Remove ArtifactGroupNamer from BuildEventTransport#sendBuildEvent.

Turns out we're always passing the same instance of the ArtifactGroupNamer so
there's no need to pass it as a parameter in sendBuildEvent. In fact,
the only ArtifactGroupNamer that ever exists is a CountingArtifactGroupNamer,
however it's pretty hard to delete ArtifactGroupNamer due to package boundaries.

PiperOrigin-RevId: 233693969
diff --git a/src/test/java/com/google/devtools/build/lib/runtime/BuildEventStreamerTest.java b/src/test/java/com/google/devtools/build/lib/runtime/BuildEventStreamerTest.java
index 06545df..5be246d 100644
--- a/src/test/java/com/google/devtools/build/lib/runtime/BuildEventStreamerTest.java
+++ b/src/test/java/com/google/devtools/build/lib/runtime/BuildEventStreamerTest.java
@@ -75,6 +75,7 @@
 import java.util.Set;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.locks.LockSupport;
+import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -85,6 +86,25 @@
 /** Tests {@link BuildEventStreamer}. */
 @RunWith(JUnit4.class)
 public class BuildEventStreamerTest extends FoundationTestCase {
+  private CountingArtifactGroupNamer artifactGroupNamer;
+  private RecordingBuildEventTransport transport;
+  private BuildEventStreamer streamer;
+
+  @Before
+  public void setUp() {
+    artifactGroupNamer = new CountingArtifactGroupNamer();
+    transport = new RecordingBuildEventTransport(artifactGroupNamer);
+    streamer =
+        new BuildEventStreamer(
+            ImmutableSet.<BuildEventTransport>of(transport), reporter, artifactGroupNamer);
+  }
+
+  @After
+  public void tearDown() {
+    artifactGroupNamer = null;
+    transport = null;
+    streamer = null;
+  }
 
   private static final ActionExecutedEvent SUCCESSFUL_ACTION_EXECUTED_EVENT =
       new ActionExecutedEvent(
@@ -99,6 +119,11 @@
   private static class RecordingBuildEventTransport implements BuildEventTransport {
     private final List<BuildEvent> events = new ArrayList<>();
     private final List<BuildEventStreamProtos.BuildEvent> eventsAsProtos = new ArrayList<>();
+    private ArtifactGroupNamer artifactGroupNamer;
+
+    RecordingBuildEventTransport(ArtifactGroupNamer namer) {
+      this.artifactGroupNamer = namer;
+    }
 
     @Override
     public String name() {
@@ -106,14 +131,14 @@
     }
 
     @Override
-    public void sendBuildEvent(BuildEvent event, final ArtifactGroupNamer namer) {
+    public void sendBuildEvent(BuildEvent event) {
       events.add(event);
       eventsAsProtos.add(
           event.asStreamProto(
               new BuildEventContext() {
                 @Override
                 public ArtifactGroupNamer artifactGroupNamer() {
-                  return namer;
+                  return artifactGroupNamer;
                 }
 
                 @Override
@@ -308,10 +333,6 @@
     eventBus.register(handler);
     assertThat(handler.transportSet).isNull();
 
-    RecordingBuildEventTransport transport = new RecordingBuildEventTransport();
-    BuildEventStreamer streamer =
-        new BuildEventStreamer(ImmutableSet.<BuildEventTransport>of(transport), reporter);
-
     BuildEvent startEvent =
         new GenericBuildEvent(
             testId("Initial"), ImmutableSet.of(ProgressEvent.INITIAL_PROGRESS_UPDATE,
@@ -348,11 +369,6 @@
   public void testChaining() {
     // Verify that unannounced events are linked in with progress update events, assuming
     // a correctly formed initial event.
-
-    RecordingBuildEventTransport transport = new RecordingBuildEventTransport();
-    BuildEventStreamer streamer =
-        new BuildEventStreamer(ImmutableSet.<BuildEventTransport>of(transport), reporter);
-
     BuildEvent startEvent =
         new GenericBuildEvent(
             testId("Initial"), ImmutableSet.of(ProgressEvent.INITIAL_PROGRESS_UPDATE));
@@ -379,11 +395,6 @@
     // Verify that, if the initial event does not announce the initial progress update event,
     // the initial progress event is used instead to chain that event; in this way, new
     // progress updates can always be chained in.
-
-    RecordingBuildEventTransport transport = new RecordingBuildEventTransport();
-    BuildEventStreamer streamer =
-        new BuildEventStreamer(ImmutableSet.<BuildEventTransport>of(transport), reporter);
-
     BuildEvent unexpectedStartEvent =
         new GenericBuildEvent(testId("unexpected start"), ImmutableSet.<BuildEventId>of());
 
@@ -423,10 +434,6 @@
   public void testReferPastEvent() {
     // Verify that, if an event is refers to a previously done event, that duplicated
     // late-referenced event is not expected again.
-    RecordingBuildEventTransport transport = new RecordingBuildEventTransport();
-    BuildEventStreamer streamer =
-        new BuildEventStreamer(ImmutableSet.<BuildEventTransport>of(transport), reporter);
-
     BuildEvent startEvent =
         new GenericBuildEvent(
             testId("Initial"),
@@ -457,11 +464,6 @@
   @Test
   public void testReordering() {
     // Verify that an event requiring to be posted after another one is indeed.
-
-    RecordingBuildEventTransport transport = new RecordingBuildEventTransport();
-    BuildEventStreamer streamer =
-        new BuildEventStreamer(ImmutableSet.<BuildEventTransport>of(transport), reporter);
-
     BuildEventId expectedId = testId("the target");
     BuildEvent startEvent =
         new GenericBuildEvent(
@@ -490,11 +492,6 @@
   public void testMissingPrerequisites() {
     // Verify that an event where the prerequisite is never coming till the end of
     // the build still gets posted, with the prerequisite aborted.
-
-    RecordingBuildEventTransport transport = new RecordingBuildEventTransport();
-    BuildEventStreamer streamer =
-        new BuildEventStreamer(ImmutableSet.<BuildEventTransport>of(transport), reporter);
-
     BuildEventId expectedId = testId("the target");
     BuildEvent startEvent =
         new GenericBuildEvent(
@@ -523,10 +520,6 @@
   @Test
   public void testVeryFirstEventNeedsToWait() {
     // Verify that we can handle an first event waiting for another event.
-    RecordingBuildEventTransport transport = new RecordingBuildEventTransport();
-    BuildEventStreamer streamer =
-        new BuildEventStreamer(ImmutableSet.<BuildEventTransport>of(transport), reporter);
-
     BuildEventId initialId = testId("Initial");
     BuildEventId waitId = testId("Waiting for initial event");
     BuildEvent startEvent =
@@ -554,10 +547,6 @@
   @Test
   public void testReportedArtifacts() {
     // Verify that reported artifacts are correctly unfolded into the stream
-    RecordingBuildEventTransport transport = new RecordingBuildEventTransport();
-    BuildEventStreamer streamer =
-        new BuildEventStreamer(ImmutableSet.<BuildEventTransport>of(transport), reporter);
-
     BuildEvent startEvent =
         new GenericBuildEvent(
             testId("Initial"),
@@ -600,9 +589,6 @@
   public void testStdoutReported() {
     // Verify that stdout and stderr are reported in the build-event stream on progress
     // events.
-    RecordingBuildEventTransport transport = new RecordingBuildEventTransport();
-    BuildEventStreamer streamer =
-        new BuildEventStreamer(ImmutableSet.<BuildEventTransport>of(transport), reporter);
     BuildEventStreamer.OutErrProvider outErr =
         Mockito.mock(BuildEventStreamer.OutErrProvider.class);
     String stdoutMsg = "Some text that was written to stdout.";
@@ -644,9 +630,6 @@
   public void testStdoutReportedAfterCrash() {
     // Verify that stdout and stderr are reported in the build-event stream on progress
     // events.
-    RecordingBuildEventTransport transport = new RecordingBuildEventTransport();
-    BuildEventStreamer streamer =
-        new BuildEventStreamer(ImmutableSet.<BuildEventTransport>of(transport), reporter);
     BuildEventStreamer.OutErrProvider outErr =
         Mockito.mock(BuildEventStreamer.OutErrProvider.class);
     String stdoutMsg = "Some text that was written to stdout.";
@@ -725,10 +708,6 @@
   @Test
   public void testReportedConfigurations() throws Exception {
     // Verify that configuration events are posted, but only once.
-    RecordingBuildEventTransport transport = new RecordingBuildEventTransport();
-    BuildEventStreamer streamer =
-        new BuildEventStreamer(ImmutableSet.<BuildEventTransport>of(transport), reporter);
-
     BuildOptions defaultBuildOptions =
         BuildOptions.of(
             ImmutableList.<Class<? extends FragmentOptions>>of(BuildConfiguration.Options.class));
@@ -775,9 +754,6 @@
   public void testEarlyFlush() throws Exception {
     // Verify that the streamer can handle early calls to flush() and still correctly
     // reports stdout and stderr in the build-event stream.
-    RecordingBuildEventTransport transport = new RecordingBuildEventTransport();
-    BuildEventStreamer streamer =
-        new BuildEventStreamer(ImmutableSet.<BuildEventTransport>of(transport), reporter);
     BuildEventStreamer.OutErrProvider outErr =
         Mockito.mock(BuildEventStreamer.OutErrProvider.class);
     String firstStdoutMsg = "Some text that was written to stdout.";
@@ -822,9 +798,6 @@
   @Test
   public void testChunkedFlush() throws Exception {
     // Verify that the streamer calls to flush() that return multiple chunked buffers.
-    RecordingBuildEventTransport transport = new RecordingBuildEventTransport();
-    BuildEventStreamer streamer =
-        new BuildEventStreamer(ImmutableSet.<BuildEventTransport>of(transport), reporter);
     BuildEventStreamer.OutErrProvider outErr =
         Mockito.mock(BuildEventStreamer.OutErrProvider.class);
     String firstStdoutMsg = "Some text that was written to stdout.";
@@ -871,9 +844,6 @@
   @Test
   public void testNoopFlush() throws Exception {
     // Verify that the streamer ignores a flush, if neither stream produces any output.
-    RecordingBuildEventTransport transport = new RecordingBuildEventTransport();
-    BuildEventStreamer streamer =
-        new BuildEventStreamer(ImmutableSet.<BuildEventTransport>of(transport), reporter);
     BuildEventStreamer.OutErrProvider outErr =
         Mockito.mock(BuildEventStreamer.OutErrProvider.class);
     String stdoutMsg = "Some text that was written to stdout.";
@@ -906,9 +876,6 @@
     //   all events
     // - the unusal first event we have seen, and
     // - a progress event reporting the flushed messages.
-    RecordingBuildEventTransport transport = new RecordingBuildEventTransport();
-    BuildEventStreamer streamer =
-        new BuildEventStreamer(ImmutableSet.<BuildEventTransport>of(transport), reporter);
     BuildEventStreamer.OutErrProvider outErr =
         Mockito.mock(BuildEventStreamer.OutErrProvider.class);
     String stdoutMsg = "Some text that was written to stdout.";
@@ -956,10 +923,6 @@
     // we still expect that, if a build-started event is forced by some order
     // constraint (e.g., CommandLine wants to come after build started), then
     // that gets sorted to the beginning.
-    RecordingBuildEventTransport transport = new RecordingBuildEventTransport();
-    BuildEventStreamer streamer =
-        new BuildEventStreamer(ImmutableSet.<BuildEventTransport>of(transport), reporter);
-
     BuildEvent orderEvent =
         new GenericOrderEvent(
             testId("event depending on start"),
@@ -984,9 +947,6 @@
   public void testFinalEventsLate() throws Exception {
     // Verify that we correctly handle late events (i.e., events coming only after the
     // BuildCompleteEvent) that are sent to the streamer after the BuildCompleteEvent.
-    RecordingBuildEventTransport transport = new RecordingBuildEventTransport();
-    BuildEventStreamer streamer =
-        new BuildEventStreamer(ImmutableSet.<BuildEventTransport>of(transport), reporter);
     BuildEvent startEvent =
         new GenericBuildEvent(
             testId("Initial"),
@@ -1013,9 +973,6 @@
     // Verify that we correctly handle late events (i.e., events coming only after the
     // BuildCompleteEvent) that are sent to the streamer before the BuildCompleteEvent,
     // but with an order constraint to come afterwards.
-    RecordingBuildEventTransport transport = new RecordingBuildEventTransport();
-    BuildEventStreamer streamer =
-        new BuildEventStreamer(ImmutableSet.<BuildEventTransport>of(transport), reporter);
     BuildEvent startEvent =
         new GenericBuildEvent(
             testId("Initial"),
@@ -1043,12 +1000,6 @@
     EventBusHandler handler = new EventBusHandler();
     eventBus.register(handler);
 
-    BuildEventStreamOptions options = new BuildEventStreamOptions();
-
-    RecordingBuildEventTransport transport = new RecordingBuildEventTransport();
-    BuildEventStreamer streamer =
-        new BuildEventStreamer(ImmutableSet.<BuildEventTransport>of(transport), reporter, options);
-
     ActionExecutedEvent failedActionExecutedEvent =
         new ActionExecutedEvent(
             ActionsTestUtil.DUMMY_ARTIFACT.getExecPath(),
@@ -1076,9 +1027,8 @@
     BuildEventStreamOptions options = new BuildEventStreamOptions();
     options.publishAllActions = true;
 
-    RecordingBuildEventTransport transport = new RecordingBuildEventTransport();
     BuildEventStreamer streamer =
-        new BuildEventStreamer(ImmutableSet.<BuildEventTransport>of(transport), reporter, options);
+        new BuildEventStreamer(ImmutableSet.of(transport), reporter, options, artifactGroupNamer);
 
     ActionExecutedEvent failedActionExecutedEvent =
         new ActionExecutedEvent(