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 construct length rule. */ @RunWith(MockitoJUnitRunner.class) public class ConstructLengthTest extends RuleTest { @Override protected String[] getCommandArgs() { return new String[] { "--max-class-length", "8", "--max-closure-length", "6", "--max-file-length", "30", "--max-function-length", "3", "--max-struct-length", "1", }; } @Override protected void addAllExpectedMsgs() { addExpectedMsg(Rules.MAX_CLASS_LENGTH, 8, 16, Messages.CLASS, 16, 8); addExpectedMsg(Rules.MAX_FUNCTION_LENGTH, 11, 65, Messages.FUNCTION, 11, 3); addExpectedMsg(Rules.MAX_FUNCTION_LENGTH, 14, 35, Messages.FUNCTION, 5, 3); addExpectedMsg(Rules.MAX_CLOSURE_LENGTH, 28, 27, Messages.CLOSURE, 8, 6); addExpectedMsg(Rules.MAX_FILE_LENGTH, 31, Messages.FILE, 42, 30); addExpectedMsg(Rules.MAX_STRUCT_LENGTH, 39, 19, Messages.STRUCT, 3, 1); } private void addExpectedMsg(Rules rule, int line, String msg, int length, int limit) { String lengthVersusLimit = " (" + length + "/" + limit + ")"; msg += Messages.EXCEEDS_LINE_LIMIT + lengthVersusLimit; expectedMessages.add(Printer.genOutputStringForTest(rule, inputFile.getName(), line, Severity.WARNING, msg)); } private void addExpectedMsg(Rules rule, int line, int column, String msg, int length, int limit) { String lengthVersusLimit = " (" + length + "/" + limit + ")"; msg += Messages.EXCEEDS_LINE_LIMIT + lengthVersusLimit; expectedMessages.add(Printer.genOutputStringForTest(rule, inputFile.getName(), line, column, Severity.WARNING, msg)); } }