package com.googlecode.jslint4java.maven;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
import java.io.File;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;
import com.googlecode.jslint4java.Issue;
import com.googlecode.jslint4java.JSLintResult;
import com.googlecode.jslint4java.formatter.PlainFormatter;
public class MultiReportWriterTest {
@Rule
public TemporaryFolder tmpf = new TemporaryFolder();
private void assertFileNotEmpty(File file) {
assertThat(file + " exists", file.exists(), is(true));
assertThat(file + " is not empty", file.length() > 0, is(true));
}
private ReportWriter makeReportWriter(File aFile) {
assertThat(aFile.exists(), is(false));
return new ReportWriterImpl(aFile, new PlainFormatter());
}
private JSLintResult makeResult() {
String filename = "foo.js";
Issue issue = new Issue.IssueBuilder(filename, 1, 1, "bad code").build();
return new JSLintResult.ResultBuilder(filename).addIssue(issue).build();
}
@Test
public void shouldWriteToMultipleFiles() throws Exception {
File aFile = new File(tmpf.getRoot(), "a");
ReportWriter aWriter = makeReportWriter(aFile);
File bFile = new File(tmpf.getRoot(), "b");
ReportWriter bWriter = makeReportWriter(bFile);
ReportWriter multi = new MultiReportWriter(aWriter, bWriter);
multi.open();
multi.report(makeResult());
multi.close();
assertFileNotEmpty(aFile);
assertFileNotEmpty(bFile);
}
}