@Test
  @ClearSystemProperty(key = "AvailablePort.lowerBound")
  @ClearSystemProperty(key = "AvailablePort.upperBound")
  @ClearSystemProperty(key = "gemfire.membership-port-range")
  @ReadsSystemProperty
  public void testDefaultProperties() {
    Properties props = new Properties();
    // a loner is all this test needs
    props.setProperty(MCAST_PORT, "0");
    props.setProperty(LOCATORS, "");
    DistributionConfig config = createSystem(props).getConfig();

    assertThat(DistributionConfig.DEFAULT_NAME).isEqualTo(config.getName());

    assertThat(0).isEqualTo(config.getMcastPort());

    assertThat(DistributionConfig.DEFAULT_MEMBERSHIP_PORT_RANGE[0])
        .isEqualTo(config.getMembershipPortRange()[0]);
    assertThat(DistributionConfig.DEFAULT_MEMBERSHIP_PORT_RANGE[1])
        .isEqualTo(config.getMembershipPortRange()[1]);

    if (System.getProperty(GeodeGlossary.GEMFIRE_PREFIX + "mcast-address") == null) {
      assertThat(DistributionConfig.DEFAULT_MCAST_ADDRESS).isEqualTo(config.getMcastAddress());
    }
    if (System.getProperty(GeodeGlossary.GEMFIRE_PREFIX + "bind-address") == null) {
      assertThat(DistributionConfig.DEFAULT_BIND_ADDRESS).isEqualTo(config.getBindAddress());
    }

    assertThat(DistributionConfig.DEFAULT_LOG_FILE).isEqualTo(config.getLogFile());

    // default log level gets overrided by the gemfire.properties created for unit tests.
    // assertIndexDetailsEquals(DistributionConfig.DEFAULT_LOG_LEVEL, config.getLogLevel());

    assertThat(DistributionConfig.DEFAULT_STATISTIC_SAMPLING_ENABLED)
        .isEqualTo(config.getStatisticSamplingEnabled());

    assertThat(DistributionConfig.DEFAULT_STATISTIC_SAMPLE_RATE)
        .isEqualTo(config.getStatisticSampleRate());

    assertThat(DistributionConfig.DEFAULT_STATISTIC_ARCHIVE_FILE)
        .isEqualTo(config.getStatisticArchiveFile());

    // ack-wait-threadshold is overridden on VM's command line using a
    // system property. This is not a valid test. Hrm.
    // assertIndexDetailsEquals(DistributionConfig.DEFAULT_ACK_WAIT_THRESHOLD,
    // config.getAckWaitThreshold());

    assertThat(DistributionConfig.DEFAULT_ACK_SEVERE_ALERT_THRESHOLD)
        .isEqualTo(config.getAckSevereAlertThreshold());

    assertThat(DistributionConfig.DEFAULT_CACHE_XML_FILE).isEqualTo(config.getCacheXmlFile());

    assertThat(DistributionConfig.DEFAULT_ARCHIVE_DISK_SPACE_LIMIT)
        .isEqualTo(config.getArchiveDiskSpaceLimit());
    assertThat(DistributionConfig.DEFAULT_ARCHIVE_FILE_SIZE_LIMIT)
        .isEqualTo(config.getArchiveFileSizeLimit());
    assertThat(DistributionConfig.DEFAULT_LOG_DISK_SPACE_LIMIT)
        .isEqualTo(config.getLogDiskSpaceLimit());
    assertThat(DistributionConfig.DEFAULT_LOG_FILE_SIZE_LIMIT)
        .isEqualTo(config.getLogFileSizeLimit());

    assertThat(DistributionConfig.DEFAULT_ENABLE_NETWORK_PARTITION_DETECTION)
        .isEqualTo(config.getEnableNetworkPartitionDetection());
  }
Tests that the default values of properties are what we expect
geode-core/src/integrationTest/java/org/apache/geode/distributed/internal/InternalDistributedSystemIntegrationTest.java