public static Builder builder() {
    return new Builder();
  }
@Test
  public void testBuilderDoesNotCreateInvalidObjects() {
    assertThatThrownBy(() -> ConfigResponse.builder().withOverride(null, "100").build())
        .isInstanceOf(NullPointerException.class)
        .hasMessage("Invalid override property: null");

    assertThatThrownBy(() -> ConfigResponse.builder().withDefault(null, "100").build())
        .isInstanceOf(NullPointerException.class)
        .hasMessage("Invalid default property: null");

    assertThatThrownBy(() -> ConfigResponse.builder().withOverrides(null).build())
        .isInstanceOf(NullPointerException.class)
        .hasMessage("Invalid override properties map: null");

    assertThatThrownBy(() -> ConfigResponse.builder().withDefaults(null).build())
        .isInstanceOf(NullPointerException.class)
        .hasMessage("Invalid default properties map: null");

    Map<String, String> mapWithNullKey = Maps.newHashMap();
    mapWithNullKey.put(null, "a");
    mapWithNullKey.put("b", "b");
    assertThatThrownBy(() -> ConfigResponse.builder().withDefaults(mapWithNullKey).build())
        .isInstanceOf(IllegalArgumentException.class)
        .hasMessage("Invalid default property: null");

    assertThatThrownBy(() -> ConfigResponse.builder().withOverrides(mapWithNullKey).build())
        .isInstanceOf(IllegalArgumentException.class)
        .hasMessage("Invalid override property: null");
  }