package net.thucydides.core.webdriver;
import net.thucydides.core.util.EnvironmentVariables;
import net.thucydides.core.util.MockEnvironmentVariables;
import org.junit.Before;
import org.junit.Test;
import java.io.File;
import static net.thucydides.core.util.FileSeparatorUtil.changeSeparatorIfRequired;
import static org.hamcrest.core.Is.is;
import static org.junit.Assert.assertThat;
public class WhenObtainingTheOutputDirectory {
SystemPropertiesConfiguration configuration;
EnvironmentVariables environmentVariables;
@Before
public void setupEnvironment() {
environmentVariables = new MockEnvironmentVariables();
configuration = new SystemPropertiesConfiguration(environmentVariables);
}
@Test
public void the_default_output_directory_is_in_the_default_maven_site_directory() {
File outputDirectory = configuration.getOutputDirectory();
assertThat(outputDirectory.getPath(), is(changeSeparatorIfRequired("target/site/thucydides")));
}
@Test
public void the_default_output_directory_can_be_overriden_if_the_maven_output_directory_is_overridden() {
environmentVariables.setProperty("project.build.directory","build");
File outputDirectory = configuration.getOutputDirectory();
assertThat(outputDirectory.getPath(), is(changeSeparatorIfRequired("build/site/thucydides")));
}
@Test
public void the_default_output_directory_can_be_overriden_if_the_maven_site_output_directory_is_overridden() {
environmentVariables.setProperty("project.reporting.OutputDirectory","custom-reports-directory");
File outputDirectory = configuration.getOutputDirectory();
assertThat(outputDirectory.getPath(), is(changeSeparatorIfRequired("custom-reports-directory/thucydides")));
}
@Test
public void the_default_output_directory_can_be_overriden_using_a_thucydides_system_property() {
environmentVariables.setProperty("thucydides.outputDirectory","thucydides-reports");
File outputDirectory = configuration.getOutputDirectory();
assertThat(outputDirectory.getPath(), is("thucydides-reports"));
}
@Test
public void the_thucydides_system_property_always_takes_priority() {
environmentVariables.setProperty("project.build.directory","build");
environmentVariables.setProperty("project.reporting.OutputDirectory","custom-reports-directory");
environmentVariables.setProperty("thucydides.outputDirectory","thucydides-reports");
File outputDirectory = configuration.getOutputDirectory();
assertThat(outputDirectory.getPath(), is("thucydides-reports"));
}
}