protected TaskConfig buildTaskConfig(TaskConfig config) {
        TaskConfig taskExecConfig = new TaskConfig();
        for (Property property : config.list()) {
            taskExecConfig.add(getExecProperty(config, property));
        }
        return taskExecConfig;
    }
@Test
    public void shouldReturnDefaultValueInExecConfigWhenConfigValueIsEmptyString() {
        TaskConfig defaultTaskConfig = new TaskConfig();
        String propertyName = "URL";
        String defaultValue = "ABC.TXT";

        Map<String, Map<String, String>> configMap = new HashMap<>();
        HashMap<String, String> configValue = new HashMap<>();
        configValue.put("value", "");

        configMap.put(propertyName, configValue);

        PluggableTask task = mock(PluggableTask.class);
        when(task.getPluginConfiguration()).thenReturn(new PluginConfiguration());
        when(task.configAsMap()).thenReturn(configMap);

        PluggableTaskBuilder taskBuilder = new PluggableTaskBuilder(runIfConfigs, cancelBuilder, task, TEST_PLUGIN_ID, "test-directory");

        defaultTaskConfig.addProperty(propertyName).withDefault(defaultValue);

        TaskConfig config = taskBuilder.buildTaskConfig(defaultTaskConfig);
        assertThat(config.getValue(propertyName)).isEqualTo(defaultValue);
    }