package org.jnario.spec.tests.unit.formatting;
import org.eclipse.xtend2.lib.StringConcatenation;
import org.eclipse.xtext.junit4.InjectWith;
import org.eclipse.xtext.junit4.XtextRunner;
import org.jnario.jnario.test.util.AbstractXbaseFormatterTest;
import org.jnario.spec.SpecInjectorProvider;
import org.junit.Test;
import org.junit.runner.RunWith;
@RunWith(XtextRunner.class)
@InjectWith(SpecInjectorProvider.class)
@SuppressWarnings("all")
public class TableFormatterTest extends AbstractXbaseFormatterTest {
@Test
public void testFormatLinebreaks() {
StringConcatenation _builder = new StringConcatenation();
_builder.append("package test");
_builder.newLine();
_builder.newLine();
_builder.append("describe \"Test\" {");
_builder.newLine();
_builder.append("\t");
_builder.append("def tab {");
_builder.newLine();
_builder.append("\t\t");
_builder.append("| a | b | c |");
_builder.newLine();
_builder.append("\t\t");
_builder.append("| 1 | 2 | 3 |");
_builder.newLine();
_builder.append("\t\t");
_builder.append("| 4 | 5 | 6 |");
_builder.newLine();
_builder.append("\t\t");
_builder.append("| 7 | 8 | 9 |");
_builder.newLine();
_builder.append("\t");
_builder.append("}");
_builder.newLine();
_builder.append("}");
_builder.newLine();
StringConcatenation _builder_1 = new StringConcatenation();
_builder_1.append("package test");
_builder_1.newLine();
_builder_1.newLine();
_builder_1.append("describe \"Test\" {def tab {| a| b | c | \t\t| 1 | 2 | 3 | | 4 | 5 | 6 | | 7 | 8 | 9 |}}");
_builder_1.newLine();
this.assertFormatted(_builder, _builder_1);
}
@Test
public void testFormatColumnWidth() {
StringConcatenation _builder = new StringConcatenation();
_builder.append("package test");
_builder.newLine();
_builder.newLine();
_builder.append("describe \"Test\" {");
_builder.newLine();
_builder.append("\t");
_builder.append("def tab {");
_builder.newLine();
_builder.append("\t\t");
_builder.append("| int a | b | ccc |");
_builder.newLine();
_builder.append("\t\t");
_builder.append("| 1+ 1 | 2 | 3 |");
_builder.newLine();
_builder.append("\t\t");
_builder.append("| 1 + 1 | 1234 | 7 |");
_builder.newLine();
_builder.append("\t\t");
_builder.append("| 3 +1 | 4 | 5 |");
_builder.newLine();
_builder.append("\t");
_builder.append("}");
_builder.newLine();
_builder.append("}");
_builder.newLine();
StringConcatenation _builder_1 = new StringConcatenation();
_builder_1.append("package test");
_builder_1.newLine();
_builder_1.newLine();
_builder_1.append("describe \"Test\" {");
_builder_1.newLine();
_builder_1.append("\t");
_builder_1.append("def tab {");
_builder_1.newLine();
_builder_1.append("\t\t");
_builder_1.append("|int a| b | ccc |");
_builder_1.newLine();
_builder_1.append("\t\t");
_builder_1.append("| 1+ 1 | 2 | 3 |");
_builder_1.newLine();
_builder_1.append("\t\t");
_builder_1.append("| 1 + 1 | 1234 | 7 |");
_builder_1.newLine();
_builder_1.append("\t\t");
_builder_1.append("| 3 +1| 4 |5|");
_builder_1.newLine();
_builder_1.append("\t");
_builder_1.append("}");
_builder_1.newLine();
_builder_1.append("}");
_builder_1.newLine();
this.assertFormatted(_builder, _builder_1);
}
@Test
public void testFormatMultilineCells() {
StringConcatenation _builder = new StringConcatenation();
_builder.append("package test");
_builder.newLine();
_builder.newLine();
_builder.append("describe \"Test\" {");
_builder.newLine();
_builder.append("\t");
_builder.append("def tab {");
_builder.newLine();
_builder.append("\t\t");
_builder.append("| int a | b | ccc |");
_builder.newLine();
_builder.append("\t\t");
_builder.append("| 1+ 1 | 2 | 3 |");
_builder.newLine();
_builder.append("\t\t");
_builder.append("| Math.max(");
_builder.newLine();
_builder.append("\t ");
_builder.append("1,2) | 1234 | 7 |");
_builder.newLine();
_builder.append("\t\t");
_builder.append("| 3+1 | 4 | 5 |");
_builder.newLine();
_builder.append("\t");
_builder.append("}");
_builder.newLine();
_builder.append("}");
_builder.newLine();
StringConcatenation _builder_1 = new StringConcatenation();
_builder_1.append("package test");
_builder_1.newLine();
_builder_1.newLine();
_builder_1.append("describe \"Test\" {");
_builder_1.newLine();
_builder_1.append("\t");
_builder_1.append("def tab {");
_builder_1.newLine();
_builder_1.append("\t\t");
_builder_1.append("| int a| b|ccc |");
_builder_1.newLine();
_builder_1.append("\t\t");
_builder_1.append("| 1+ 1|2 |3|");
_builder_1.newLine();
_builder_1.append("\t\t");
_builder_1.append("| Math.max(");
_builder_1.newLine();
_builder_1.append("\t ");
_builder_1.append("1,2) | 1234 |7 |");
_builder_1.newLine();
_builder_1.append("\t\t");
_builder_1.append("|3+1| 4| 5|");
_builder_1.newLine();
_builder_1.append("\t");
_builder_1.append("}");
_builder_1.newLine();
_builder_1.append("}");
_builder_1.newLine();
this.assertFormatted(_builder, _builder_1);
}
@Test
public void testFormatMultilineCells2() {
StringConcatenation _builder = new StringConcatenation();
_builder.append("package test");
_builder.newLine();
_builder.newLine();
_builder.append("describe \"Test\" {");
_builder.newLine();
_builder.append("\t");
_builder.append("def tab {");
_builder.newLine();
_builder.append("\t\t");
_builder.append("| int a | b | ccc |");
_builder.newLine();
_builder.append("\t\t");
_builder.append("| 1+ 1 | 2 | 3 |");
_builder.newLine();
_builder.append("\t\t");
_builder.append("| Math.max(");
_builder.newLine();
_builder.append("\t ");
_builder.append("1,2) | 1234 | 7 |");
_builder.newLine();
_builder.append("\t\t");
_builder.append("| 3+1 | 4 | 5 |");
_builder.newLine();
_builder.append("\t");
_builder.append("}");
_builder.newLine();
_builder.append("}");
_builder.newLine();
StringConcatenation _builder_1 = new StringConcatenation();
_builder_1.append("package test");
_builder_1.newLine();
_builder_1.newLine();
_builder_1.append("describe \"Test\" {");
_builder_1.newLine();
_builder_1.append("\t ");
_builder_1.append("def tab {");
_builder_1.newLine();
_builder_1.append("\t\t");
_builder_1.append("| int a| b|ccc |");
_builder_1.newLine();
_builder_1.append("\t\t");
_builder_1.append("| 1+ 1|2 |3|");
_builder_1.newLine();
_builder_1.append("\t\t");
_builder_1.append("| Math.max(");
_builder_1.newLine();
_builder_1.append("\t ");
_builder_1.append("1,2) | 1234 |7 |");
_builder_1.newLine();
_builder_1.append("\t\t");
_builder_1.append("|3+1| 4| 5|");
_builder_1.newLine();
_builder_1.append("\t");
_builder_1.append("}");
_builder_1.newLine();
_builder_1.append("}");
_builder_1.newLine();
this.assertFormatted(_builder, _builder_1);
}
@Test
public void testFormatMultilineWithClosures() {
StringConcatenation _builder = new StringConcatenation();
_builder.append("package test");
_builder.newLine();
_builder.newLine();
_builder.append("describe \"Test\" {");
_builder.newLine();
_builder.append("\t");
_builder.append("def myExampleWithClosures{");
_builder.newLine();
_builder.append("\t\t");
_builder.append("| input | operation | result |");
_builder.newLine();
_builder.append("\t\t");
_builder.append("| \"a\" | [String s | ");
_builder.newLine();
_builder.append("\t\t ");
_builder.append("s.toUpperCase] | \"A\" |");
_builder.newLine();
_builder.append("\t\t");
_builder.append("| \"B\" | [String s ");
_builder.newLine();
_builder.append("\t\t ");
_builder.append("| s.toLowerCase] | \"b\" |");
_builder.newLine();
_builder.append("\t");
_builder.append("}");
_builder.newLine();
_builder.append("}");
_builder.newLine();
StringConcatenation _builder_1 = new StringConcatenation();
_builder_1.append("package test");
_builder_1.newLine();
_builder_1.newLine();
_builder_1.append("describe \"Test\" {");
_builder_1.newLine();
_builder_1.append("\t");
_builder_1.append("def myExampleWithClosures{");
_builder_1.newLine();
_builder_1.append("\t\t");
_builder_1.append("| input | operation | result |");
_builder_1.newLine();
_builder_1.append("\t\t");
_builder_1.append("| \"a\" | [String s | ");
_builder_1.newLine();
_builder_1.append("\t\t ");
_builder_1.append("s.toUpperCase] | \"A\" |");
_builder_1.newLine();
_builder_1.append("\t\t");
_builder_1.append("| \"B\" | [String s ");
_builder_1.newLine();
_builder_1.append("\t\t ");
_builder_1.append("| s.toLowerCase] | \"b\" |");
_builder_1.newLine();
_builder_1.append(" ");
_builder_1.append("}");
_builder_1.newLine();
_builder_1.append("}");
_builder_1.newLine();
this.assertFormatted(_builder, _builder_1);
}
@Test
public void testFormatNoTables() {
StringConcatenation _builder = new StringConcatenation();
_builder.append("package test");
_builder.newLine();
_builder.newLine();
_builder.append("describe \"Test\" {");
_builder.newLine();
_builder.newLine();
_builder.append("\t");
_builder.append("fact true => true");
_builder.newLine();
_builder.newLine();
_builder.append("\t");
_builder.append("fact \"Test\" {");
_builder.newLine();
_builder.append("\t");
_builder.append("}");
_builder.newLine();
_builder.append("}");
_builder.newLine();
StringConcatenation _builder_1 = new StringConcatenation();
_builder_1.append("package test");
_builder_1.newLine();
_builder_1.newLine();
_builder_1.append("describe \"Test\" {");
_builder_1.newLine();
_builder_1.newLine();
_builder_1.append("\t");
_builder_1.append("fact true => true");
_builder_1.newLine();
_builder_1.newLine();
_builder_1.append("\t");
_builder_1.append("fact \"Test\" {");
_builder_1.newLine();
_builder_1.append("\t");
_builder_1.append("}");
_builder_1.newLine();
_builder_1.append("}");
_builder_1.newLine();
this.assertFormatted(_builder, _builder_1);
}
}