package org.jnario.spec.tests.integration; import com.google.inject.Inject; import org.eclipse.xtend2.lib.StringConcatenation; import org.eclipse.xtext.xbase.lib.Extension; import org.jnario.jnario.test.util.BehaviorExecutor; import org.jnario.jnario.test.util.SpecTestCreator; import org.jnario.runner.CreateWith; import org.jnario.runner.ExampleGroupRunner; import org.jnario.runner.Named; import org.jnario.runner.Order; import org.junit.Test; import org.junit.runner.RunWith; /** * You can define xtend helper classes in your specs. */ @CreateWith(SpecTestCreator.class) @Named("Defining Xtend classes in your specs") @RunWith(ExampleGroupRunner.class) @SuppressWarnings("all") public class DefiningXtendClassesInYourSpecsSpec { @Inject @Extension @org.jnario.runner.Extension public BehaviorExecutor _behaviorExecutor; /** * @filter('''|.executesSuccessfully) */ @Test @Named("either before...") @Order(1) public void _eitherBefore() throws Exception { StringConcatenation _builder = new StringConcatenation(); _builder.append("@Data class Greeter{"); _builder.newLine(); _builder.append(" "); _builder.append("String name"); _builder.newLine(); _builder.append(" "); _builder.append("def sayHello(){"); _builder.newLine(); _builder.append(" "); _builder.append("\"Hello \" + name"); _builder.newLine(); _builder.append(" "); _builder.append("}"); _builder.newLine(); _builder.append("}"); _builder.newLine(); _builder.newLine(); _builder.append("describe \"Saying Hello\"{"); _builder.newLine(); _builder.append(" "); _builder.append("fact new Greeter(\"Sebastian\").sayHello => \"Hello Sebastian\""); _builder.newLine(); _builder.append("} \t"); _builder.newLine(); this._behaviorExecutor.executesSuccessfully(_builder); } /** * @filter('''|.executesSuccessfully) */ @Test @Named("...or after your specs") @Order(2) public void _orAfterYourSpecs() throws Exception { StringConcatenation _builder = new StringConcatenation(); _builder.append("describe \"Saying Hello\"{"); _builder.newLine(); _builder.append(" "); _builder.append("fact new Greeter(\"Sebastian\").sayHello => \"Hello Sebastian\""); _builder.newLine(); _builder.append("} \t"); _builder.newLine(); _builder.newLine(); _builder.append("@Data class Greeter{"); _builder.newLine(); _builder.append(" "); _builder.append("String name"); _builder.newLine(); _builder.append(" "); _builder.append("def sayHello(){"); _builder.newLine(); _builder.append(" "); _builder.append("\"Hello \" + name"); _builder.newLine(); _builder.append(" "); _builder.append("}"); _builder.newLine(); _builder.append("}"); _builder.newLine(); this._behaviorExecutor.executesSuccessfully(_builder); } }