// Path: src/main/java/com/lazerycode/jmeter/properties/ConfigurationFiles.java
// public enum ConfigurationFiles {
// 
// 	JMETER_PROPERTIES("jmeter.properties", true),
// 	SAVE_SERVICE_PROPERTIES("saveservice.properties", true),
// 	UPGRADE_PROPERTIES("upgrade.properties", true),
// 	SYSTEM_PROPERTIES("system.properties", true),
// 	USER_PROPERTIES("user.properties", true),
// 	REPORT_GENERATOR_PROPERTIES("reportgenerator.properties", true),
// 	GLOBAL_PROPERTIES("global.properties", false);
// 
// 	private final String propertiesFilename;
// 	private final boolean isRequired;
// 
// 	ConfigurationFiles(String propertiesFilename, boolean isRequired) {
// 		this.propertiesFilename = propertiesFilename;
// 		this.isRequired = isRequired;
// 	}
// 
// 	public String getFilename() {
// 		return propertiesFilename;
// 	}
// 
// 	public boolean createFileIfItDoesNotExist() {
// 		return isRequired;
// 	}
// 
// }
// 
// Path: src/main/java/com/lazerycode/jmeter/properties/PropertiesMapping.java
// public class PropertiesMapping {
//     protected Map<String, String> additionalProperties;
//     private PropertiesFile propertiesFile;
// 
//     @JsonCreator
//     public PropertiesMapping(@JsonProperty("additionalProperties") Map<String, String> additionalProperties) {
//         this.additionalProperties = additionalProperties;
//     }
// 
//     public Map<String, String> getAdditionalProperties() {
//         return additionalProperties;
//     }
// 
//     public PropertiesFile getPropertiesFile() {
//         return propertiesFile;
//     }
// 
//     public void setPropertiesFile(PropertiesFile propertiesFile) {
//         this.propertiesFile = propertiesFile;
//     }
// }


import com.lazerycode.jmeter.properties.ConfigurationFiles;
import com.lazerycode.jmeter.properties.PropertiesMapping;
import org.junit.Test;
import java.util.EnumMap;
import java.util.HashMap;
import static org.assertj.core.api.Assertions.assertThat;
package com.lazerycode.jmeter.configuration;




public class RemoteConfigurationTest {

    @Test
    public void defaultSettingsAreAsExpected() {
        RemoteConfiguration remoteConfiguration = new RemoteConfiguration();

        assertThat(remoteConfiguration.isStopServersAfterTests()).isFalse();
        assertThat(remoteConfiguration.isStartServersBeforeTests()).isFalse();
        assertThat(remoteConfiguration.isStartAndStopServersForEachTest()).isFalse();
        assertThat(remoteConfiguration.getServerList()).isEmpty();
        assertThat(remoteConfiguration.getPropertiesMap().size()).isEqualTo(0);
    }

    @Test
    public void propertiesMapIsReplacedWhenSet() {
        EnumMap<ConfigurationFiles, PropertiesMapping> firstEnumMap = new EnumMap<>(ConfigurationFiles.class);
        EnumMap<ConfigurationFiles, PropertiesMapping> secondEnumMap = new EnumMap<>(ConfigurationFiles.class);
        HashMap<String, String> firstEnumProperties = new HashMap<>();
        firstEnumProperties.put("foo", "bar");
        firstEnumProperties.put("oof", "rab");
        HashMap<String, String> secondEnumProperties = new HashMap<>();
        secondEnumProperties.put("ray", "far");
        firstEnumMap.put(ConfigurationFiles.JMETER_PROPERTIES, new PropertiesMapping(firstEnumProperties));
// Path: src/main/java/com/lazerycode/jmeter/properties/ConfigurationFiles.java
// public enum ConfigurationFiles {
// 
// 	JMETER_PROPERTIES("jmeter.properties", true),
// 	SAVE_SERVICE_PROPERTIES("saveservice.properties", true),
// 	UPGRADE_PROPERTIES("upgrade.properties", true),
// 	SYSTEM_PROPERTIES("system.properties", true),
// 	USER_PROPERTIES("user.properties", true),
// 	REPORT_GENERATOR_PROPERTIES("reportgenerator.properties", true),
// 	GLOBAL_PROPERTIES("global.properties", false);
// 
// 	private final String propertiesFilename;
// 	private final boolean isRequired;
// 
// 	ConfigurationFiles(String propertiesFilename, boolean isRequired) {
// 		this.propertiesFilename = propertiesFilename;
// 		this.isRequired = isRequired;
// 	}
// 
// 	public String getFilename() {
// 		return propertiesFilename;
// 	}
// 
// 	public boolean createFileIfItDoesNotExist() {
// 		return isRequired;
// 	}
// 
// }
// 
// Path: src/main/java/com/lazerycode/jmeter/properties/PropertiesMapping.java
// public class PropertiesMapping {
//     protected Map<String, String> additionalProperties;
//     private PropertiesFile propertiesFile;
// 
//     @JsonCreator
//     public PropertiesMapping(@JsonProperty("additionalProperties") Map<String, String> additionalProperties) {
//         this.additionalProperties = additionalProperties;
//     }
// 
//     public Map<String, String> getAdditionalProperties() {
//         return additionalProperties;
//     }
// 
//     public PropertiesFile getPropertiesFile() {
//         return propertiesFile;
//     }
// 
//     public void setPropertiesFile(PropertiesFile propertiesFile) {
//         this.propertiesFile = propertiesFile;
//     }
// }


// Path: src/test/java/com/lazerycode/jmeter/configuration/RemoteConfigurationTest.java
import com.lazerycode.jmeter.properties.ConfigurationFiles;
import com.lazerycode.jmeter.properties.PropertiesMapping;
import org.junit.Test;
import java.util.EnumMap;
import java.util.HashMap;
import static org.assertj.core.api.Assertions.assertThat;

package com.lazerycode.jmeter.configuration;




public class RemoteConfigurationTest {

    @Test
    public void defaultSettingsAreAsExpected() {
        RemoteConfiguration remoteConfiguration = new RemoteConfiguration();

        assertThat(remoteConfiguration.isStopServersAfterTests()).isFalse();
        assertThat(remoteConfiguration.isStartServersBeforeTests()).isFalse();
        assertThat(remoteConfiguration.isStartAndStopServersForEachTest()).isFalse();
        assertThat(remoteConfiguration.getServerList()).isEmpty();
        assertThat(remoteConfiguration.getPropertiesMap().size()).isEqualTo(0);
    }

    @Test
    public void propertiesMapIsReplacedWhenSet() {
        EnumMap<ConfigurationFiles, PropertiesMapping> firstEnumMap = new EnumMap<>(ConfigurationFiles.class);
        EnumMap<ConfigurationFiles, PropertiesMapping> secondEnumMap = new EnumMap<>(ConfigurationFiles.class);
        HashMap<String, String> firstEnumProperties = new HashMap<>();
        firstEnumProperties.put("foo", "bar");
        firstEnumProperties.put("oof", "rab");
        HashMap<String, String> secondEnumProperties = new HashMap<>();
        secondEnumProperties.put("ray", "far");
        firstEnumMap.put(ConfigurationFiles.JMETER_PROPERTIES, new PropertiesMapping(firstEnumProperties));
        secondEnumMap.put(ConfigurationFiles.SYSTEM_PROPERTIES, new PropertiesMapping(secondEnumProperties));