@Override
    public Map<String, String> getAll() {
        return flags.values().stream().collect(Collectors.toMap(flag -> flag.name, flag -> flag.value));
    }
@Test
    void testOverrideOrder() throws IOException {
        Map<String, String> defaultProps = Map.of(
                FEATURE_1, DEFAULT_PROPERTY_VALUE,
                FEATURE_2, DEFAULT_PROPERTY_VALUE,
                FEATURE_3, DEFAULT_PROPERTY_VALUE,
                FEATURE_4, DEFAULT_PROPERTY_VALUE);
        Map<String, String> customProps = Map.of(
                FEATURE_2, CUSTOM_PROPERTY_VALUE,
                FEATURE_3, CUSTOM_PROPERTY_VALUE,
                FEATURE_4, CUSTOM_PROPERTY_VALUE);
        Map<String, String> systemProps = Map.of(
                PREFIX_SYSTEM_PROPERTY + FEATURE_3, SYSTEM_PROPERTY_VALUE,
                PREFIX_SYSTEM_PROPERTY + FEATURE_4, SYSTEM_PROPERTY_VALUE);
        Map<String, String> envVars = Map.of(
                PREFIX_ENVIRONMENT_VARIABLE + FEATURE_4, ENVIRONMENT_VARIABLE_VALUE);

        FeatureFlags flags = create(defaultProps, customProps, systemProps, envVars);

        assertThat(flags.getAll()).isEqualTo(Map.of(
                FEATURE_1, DEFAULT_PROPERTY_VALUE,
                FEATURE_2, CUSTOM_PROPERTY_VALUE,
                FEATURE_3, SYSTEM_PROPERTY_VALUE,
                FEATURE_4, ENVIRONMENT_VARIABLE_VALUE
        ));
    }