package com.thoughtworks.winstonwolfe.validators;
import com.thoughtworks.winstonwolfe.endpoint.EndPointFactory;
import com.thoughtworks.winstonwolfe.endpoint.ReportingEndPointFactory;
import com.thoughtworks.winstonwolfe.endpoint.ReportingEndpoint;
import com.thoughtworks.winstonwolfe.endpoint.ServiceEndPoint;
import com.thoughtworks.winstonwolfe.reporting.HtmlReport;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
import java.io.FileNotFoundException;
import static org.hamcrest.core.Is.is;
import static org.hamcrest.core.IsInstanceOf.instanceOf;
import static org.junit.Assert.assertThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
public class ReportingValidatorFactoryTest {
@Rule
public ExpectedException expectedException = ExpectedException.none();
private HtmlReport report;
private ValidatorFactory validatorFactory;
@Before
public void setup() {
report = mock(HtmlReport.class);
validatorFactory = mock(ValidatorFactory.class);
ResponseValidator responseValidator = mock(ResponseValidator.class);
when(validatorFactory.buildValidator()).thenReturn(responseValidator);
}
@Test
public void shouldDecorateValidatorFactory() throws FileNotFoundException {
ReportingValidatorFactory reportingValidatorFactory = new ReportingValidatorFactory(report, validatorFactory);
reportingValidatorFactory.buildValidator();
verify(validatorFactory).buildValidator();
}
@Test
public void shouldBuildAReportingValidator() {
ReportingValidatorFactory reportingValidatorFactory = new ReportingValidatorFactory(report, validatorFactory);
ResponseValidator reportingValidator = reportingValidatorFactory.buildValidator();
assertThat(reportingValidator, is(instanceOf(ReportingValidator.class)));
}
}