public static Builder builder() {
    return new Builder();
  }
@Test
  public void testBuilder() {
    StreamDataProducer producer = Mockito.mock(StreamDataProducer.class);
    PinotSourceDataGenerator generator = Mockito.mock(PinotSourceDataGenerator.class);
    PinotRealtimeSource realtimeSource =
        PinotRealtimeSource.builder().setTopic("mytopic").setProducer(producer).setGenerator(generator).build();
    Assert.assertNotNull(realtimeSource);

    PinotStreamRateLimiter limiter = Mockito.mock(PinotStreamRateLimiter.class);
    ExecutorService executorService = Mockito.mock(ExecutorService.class);
    realtimeSource = PinotRealtimeSource.builder().setRateLimiter(limiter).setProducer(producer).setGenerator(generator)
        .setTopic("mytopic").setExecutor(executorService).setMaxMessagePerSecond(9527).build();
    Assert.assertEquals(realtimeSource._executor, executorService);
    Assert.assertEquals(realtimeSource._producer, producer);
    Assert.assertEquals(realtimeSource._topicName, "mytopic");
    String qps = realtimeSource._properties.get(PinotRealtimeSource.KEY_OF_MAX_MESSAGE_PER_SECOND).toString();
    Assert.assertNotNull(qps);
    Assert.assertEquals(qps, "9527");
    Assert.assertEquals(realtimeSource._rateLimiter, limiter);
  }