// Path: core/src/main/java/de/otto/jlineup/RunStepConfig.java
// public class RunStepConfig {
// 
//     private final String reportDirectory;
//     private final String workingDirectory;
//     private final String screenshotsDirectory;
//     private final Step step;
//     private final Map<String, String> urlReplacements;
//     private final List<String> chromeParameters;
//     private final List<String> firefoxParameters;
// 
//     private RunStepConfig(Builder builder) {
//         reportDirectory = builder.reportDirectory;
//         workingDirectory = builder.workingDirectory;
//         screenshotsDirectory = builder.screenshotsDirectory;
//         step = builder.step;
//         urlReplacements = builder.urlReplacements;
//         chromeParameters = builder.chromeParameters;
//         firefoxParameters = builder.firefoxParameters;
//     }
// 
//     public static Builder jLineupRunConfigurationBuilder() {
//         return new Builder();
//     }
// 
//     public static Builder copyOfBuilder(RunStepConfig config) {
//         return new Builder(config);
//     }
// 
//     public String getReportDirectory() {
//         return reportDirectory;
//     }
// 
//     public String getWorkingDirectory() {
//         return workingDirectory;
//     }
// 
//     public String getScreenshotsDirectory() {
//         return screenshotsDirectory;
//     }
// 
//     public Step getStep() {
//         return step;
//     }
// 
//     public Map<String, String> getUrlReplacements() {
//         return urlReplacements;
//     }
// 
//     public List<String> getChromeParameters() {
//         return chromeParameters;
//     }
// 
//     public List<String> getFirefoxParameters() {
//         return firefoxParameters;
//     }
// 
// 
//     public static final class Builder {
//         private String reportDirectory;
//         private String workingDirectory;
//         private String screenshotsDirectory;
//         private List<String> chromeParameters = emptyList();
//         private List<String> firefoxParameters = emptyList();
//         private Map<String, String> urlReplacements = emptyMap();
//         private Step step;
// 
//         private Builder() {
//         }
// 
//         private Builder(RunStepConfig copy) {
//             this.reportDirectory = copy.getReportDirectory();
//             this.workingDirectory = copy.getWorkingDirectory();
//             this.screenshotsDirectory = copy.getScreenshotsDirectory();
//             this.step = copy.getStep();
//             this.urlReplacements = copy.getUrlReplacements();
//             this.chromeParameters = copy.getChromeParameters();
//             this.firefoxParameters = copy.getFirefoxParameters();
//         }
// 
//         public Builder withReportDirectory(String val) {
//             reportDirectory = val;
//             return this;
//         }
// 
//         public Builder withWorkingDirectory(String val) {
//             workingDirectory = val;
//             return this;
//         }
// 
//         public Builder withScreenshotsDirectory(String val) {
//             screenshotsDirectory = val;
//             return this;
//         }
// 
//         public Builder withStep(Step val) {
//             step = val;
//             return this;
//         }
// 
//         public Builder withFirefoxParameters(List<String> val) {
//             firefoxParameters = val;
//             return this;
//         }
// 
//         public Builder withChromeParameters(List<String> val) {
//             chromeParameters = val;
//             return this;
//         }
// 
//         public RunStepConfig build() {
//             return new RunStepConfig(this);
//         }
// 
//         public Builder withUrlReplacements(Map<String, String> val) {
//             urlReplacements = val;
//             return this;
//         }
//     }
// }
// 
// Path: core/src/main/java/de/otto/jlineup/config/Step.java
// public enum Step {
//     before,
//     after,
//     compare
// }


import de.otto.jlineup.RunStepConfig;
import de.otto.jlineup.config.Step;
import org.junit.Test;
import picocli.CommandLine;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.core.Is.is;
package de.otto.jlineup.cli;



public class RunStepConfigTest {

    @Test
    public void shouldConvertCommandlineParameters() {

        JLineup commandLineParameters = new JLineup();
        String[] params = {
                "--screenshot-dir", "someScreenshotDirectory",
                "--report-dir", "someReportDirectory",
                "--working-dir", "someWorkingDirectory",
                "--step", "after"
        };
        CommandLine commandLine = new CommandLine(commandLineParameters);
        commandLine.parseArgs(params);

        RunStepConfig runStepConfig = Utils.convertCommandLineParametersToRunConfiguration(commandLineParameters);

        assertThat(runStepConfig.getReportDirectory(), is("someReportDirectory"));
        assertThat(runStepConfig.getScreenshotsDirectory(), is("someScreenshotDirectory"));
        assertThat(runStepConfig.getWorkingDirectory(), is("someWorkingDirectory"));
// Path: core/src/main/java/de/otto/jlineup/RunStepConfig.java
// public class RunStepConfig {
// 
//     private final String reportDirectory;
//     private final String workingDirectory;
//     private final String screenshotsDirectory;
//     private final Step step;
//     private final Map<String, String> urlReplacements;
//     private final List<String> chromeParameters;
//     private final List<String> firefoxParameters;
// 
//     private RunStepConfig(Builder builder) {
//         reportDirectory = builder.reportDirectory;
//         workingDirectory = builder.workingDirectory;
//         screenshotsDirectory = builder.screenshotsDirectory;
//         step = builder.step;
//         urlReplacements = builder.urlReplacements;
//         chromeParameters = builder.chromeParameters;
//         firefoxParameters = builder.firefoxParameters;
//     }
// 
//     public static Builder jLineupRunConfigurationBuilder() {
//         return new Builder();
//     }
// 
//     public static Builder copyOfBuilder(RunStepConfig config) {
//         return new Builder(config);
//     }
// 
//     public String getReportDirectory() {
//         return reportDirectory;
//     }
// 
//     public String getWorkingDirectory() {
//         return workingDirectory;
//     }
// 
//     public String getScreenshotsDirectory() {
//         return screenshotsDirectory;
//     }
// 
//     public Step getStep() {
//         return step;
//     }
// 
//     public Map<String, String> getUrlReplacements() {
//         return urlReplacements;
//     }
// 
//     public List<String> getChromeParameters() {
//         return chromeParameters;
//     }
// 
//     public List<String> getFirefoxParameters() {
//         return firefoxParameters;
//     }
// 
// 
//     public static final class Builder {
//         private String reportDirectory;
//         private String workingDirectory;
//         private String screenshotsDirectory;
//         private List<String> chromeParameters = emptyList();
//         private List<String> firefoxParameters = emptyList();
//         private Map<String, String> urlReplacements = emptyMap();
//         private Step step;
// 
//         private Builder() {
//         }
// 
//         private Builder(RunStepConfig copy) {
//             this.reportDirectory = copy.getReportDirectory();
//             this.workingDirectory = copy.getWorkingDirectory();
//             this.screenshotsDirectory = copy.getScreenshotsDirectory();
//             this.step = copy.getStep();
//             this.urlReplacements = copy.getUrlReplacements();
//             this.chromeParameters = copy.getChromeParameters();
//             this.firefoxParameters = copy.getFirefoxParameters();
//         }
// 
//         public Builder withReportDirectory(String val) {
//             reportDirectory = val;
//             return this;
//         }
// 
//         public Builder withWorkingDirectory(String val) {
//             workingDirectory = val;
//             return this;
//         }
// 
//         public Builder withScreenshotsDirectory(String val) {
//             screenshotsDirectory = val;
//             return this;
//         }
// 
//         public Builder withStep(Step val) {
//             step = val;
//             return this;
//         }
// 
//         public Builder withFirefoxParameters(List<String> val) {
//             firefoxParameters = val;
//             return this;
//         }
// 
//         public Builder withChromeParameters(List<String> val) {
//             chromeParameters = val;
//             return this;
//         }
// 
//         public RunStepConfig build() {
//             return new RunStepConfig(this);
//         }
// 
//         public Builder withUrlReplacements(Map<String, String> val) {
//             urlReplacements = val;
//             return this;
//         }
//     }
// }
// 
// Path: core/src/main/java/de/otto/jlineup/config/Step.java
// public enum Step {
//     before,
//     after,
//     compare
// }


// Path: cli/src/test/java/de/otto/jlineup/cli/RunStepConfigTest.java
import de.otto.jlineup.RunStepConfig;
import de.otto.jlineup.config.Step;
import org.junit.Test;
import picocli.CommandLine;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.core.Is.is;

package de.otto.jlineup.cli;



public class RunStepConfigTest {

    @Test
    public void shouldConvertCommandlineParameters() {

        JLineup commandLineParameters = new JLineup();
        String[] params = {
                "--screenshot-dir", "someScreenshotDirectory",
                "--report-dir", "someReportDirectory",
                "--working-dir", "someWorkingDirectory",
                "--step", "after"
        };
        CommandLine commandLine = new CommandLine(commandLineParameters);
        commandLine.parseArgs(params);

        RunStepConfig runStepConfig = Utils.convertCommandLineParametersToRunConfiguration(commandLineParameters);

        assertThat(runStepConfig.getReportDirectory(), is("someReportDirectory"));
        assertThat(runStepConfig.getScreenshotsDirectory(), is("someScreenshotDirectory"));
        assertThat(runStepConfig.getWorkingDirectory(), is("someWorkingDirectory"));
        assertThat(runStepConfig.getStep(), is(Step.after));