package com.sleekbyte.tailor.functional;
import com.sleekbyte.tailor.common.Messages;
import com.sleekbyte.tailor.common.Rules;
import com.sleekbyte.tailor.common.Severity;
import com.sleekbyte.tailor.output.Printer;
import org.junit.runner.RunWith;
import org.mockito.runners.MockitoJUnitRunner;
/**
* Functional tests for {@link com.sleekbyte.tailor.listeners.FileListener}.
*/
@RunWith(MockitoJUnitRunner.class)
public class FileRulesTest extends RuleTest {
@Override
protected String[] getCommandArgs() {
return new String[] {
"--max-file-length", "5",
"--max-line-length", "15",
};
}
@Override
protected void addAllExpectedMsgs() {
addExpectedMsg(Rules.LEADING_WHITESPACE, 1, 1, Severity.WARNING, Messages.FILE + Messages.LEADING_WHITESPACE);
addExpectedMsg(Rules.MAX_LINE_LENGTH, 3, 16, Severity.WARNING, Messages.LINE + Messages.EXCEEDS_CHARACTER_LIMIT
+ " (" + 18 + "/" + 15 + ")");
addExpectedMsg(Rules.TRAILING_WHITESPACE, 3, 18, Severity.WARNING, Messages.LINE
+ Messages.TRAILING_WHITESPACE);
addExpectedMsg(Rules.MAX_FILE_LENGTH, 6, Severity.WARNING, Messages.FILE + Messages.EXCEEDS_LINE_LIMIT
+ " (" + 11 + "/" + 5 + ")");
addExpectedMsg(Rules.MAX_LINE_LENGTH, 6, 16, Severity.WARNING, Messages.LINE + Messages.EXCEEDS_CHARACTER_LIMIT
+ " (" + 37 + "/" + 15 + ")");
addExpectedMsg(Rules.TRAILING_WHITESPACE, 6, 37, Severity.WARNING, Messages.LINE
+ Messages.TRAILING_WHITESPACE);
addExpectedMsg(Rules.MAX_LINE_LENGTH, 9, 16, Severity.WARNING, Messages.LINE + Messages.EXCEEDS_CHARACTER_LIMIT
+ " (" + 28 + "/" + 15 + ")");
addExpectedMsg(Rules.TERMINATING_NEWLINE, 11, Severity.WARNING, Messages.FILE + Messages.NEWLINE_TERMINATOR);
}
private void addExpectedMsg(Rules rule, int line, Severity classification, String msg) {
expectedMessages.add(Printer.genOutputStringForTest(rule, inputFile.getName(), line, classification, msg));
}
private void addExpectedMsg(Rules rule, int line, int column, Severity classification, String msg) {
expectedMessages.add(Printer.genOutputStringForTest(rule, inputFile.getName(), line, column, classification,
msg));
}
}