@MethodSource("data")
  @ParameterizedTest(name = "{0}")
  void propertyTransferredToCollectorBuilder(String property, Object value,
    Function<ActiveMQCollector.Builder, Object> builderExtractor) {
    initZipkinActiveMQCollectorPropertiesOverrideTest(property, value, builderExtractor);
    if (!property.endsWith("url")) {
      TestPropertyValues.of("zipkin.collector.activemq.url:tcp://localhost:61616").applyTo(context);
    }

    TestPropertyValues.of("zipkin.collector.activemq.$property:$value").applyTo(context);

    if (property.endsWith("username")) {
      TestPropertyValues.of("zipkin.collector.activemq.password:p").applyTo(context);
    }

    if (property.endsWith("password")) {
      TestPropertyValues.of("zipkin.collector.activemq.username:u").applyTo(context);
    }

    TestPropertyValues.of(property + ":" + value).applyTo(context);
    Access.registerActiveMQProperties(context);
    context.refresh();

    assertThat(Access.collectorBuilder(context))
      .extracting(builderExtractor)
      .isEqualTo(value);
  }
to allow us to define with a lambda
zipkin-server/src/test/java/zipkin2/collector/activemq/ZipkinActiveMQCollectorPropertiesOverrideTest.java