package com.googlecode.jmeter.plugins.webdriver.sampler;
import org.apache.jmeter.samplers.SampleResult;
import org.apache.jorphan.logging.LoggingManager;
import org.apache.log.Logger;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mockito;
import org.openqa.selenium.WebDriver;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
public class WebDriverScriptableTest {
private WebDriverScriptable scriptable;
@Before
public void createScriptable() {
scriptable = new WebDriverScriptable();
}
@Test
public void shouldAssignName() {
scriptable.setName("name");
assertThat(scriptable.getName(), is("name"));
}
@Test
public void shouldAssignParameters() {
scriptable.setParameters("p1 p2");
assertThat(scriptable.getParameters(), is("p1 p2"));
}
@Test
public void shouldReturnArgsBySplittingParametersBySpace() {
final String parameters = "p1 p2 p3";
final String[] args = parameters.split(" ");
scriptable.setParameters(parameters);
assertThat(scriptable.getArgs(), is(args));
}
@Test
public void shouldReturnEmptyArgsWhenParametersIsNull() {
scriptable.setParameters(null);
assertThat(scriptable.getArgs(), is(new String[]{}));
}
@Test
public void shouldTrimSpacesBetweenParameters() {
scriptable.setParameters(" p1 p2 p3 ");
assertThat(scriptable.getArgs(), is(new String[]{"p1", "p2", "p3"}));
}
@Test
public void shouldAssignLog() {
final Logger logger = LoggingManager.getLoggerForClass();
scriptable.setLog(logger);
assertThat(scriptable.getLog(), is(logger));
}
@Test
public void shouldAssignBrowser() {
final WebDriver browser = Mockito.mock(WebDriver.class);
scriptable.setBrowser(browser);
assertThat(scriptable.getBrowser(), is(browser));
}
@Test
public void shouldAssignSampleResult() {
final SampleResult sampleResult = new SampleResult();
scriptable.setSampleResult(sampleResult);
assertThat(scriptable.getSampleResult(), is(sampleResult));
}
}