package org.jnario.suite.unit; import com.google.inject.Inject; import java.util.List; import java.util.Set; import org.eclipse.xtend2.lib.StringConcatenation; import org.eclipse.xtext.xbase.lib.Extension; import org.eclipse.xtext.xbase.lib.IterableExtensions; import org.jnario.Executable; import org.jnario.Specification; import org.jnario.feature.feature.Feature; import org.jnario.jnario.test.util.ModelStore; import org.jnario.jnario.test.util.SuiteTestCreator; import org.jnario.lib.Assert; import org.jnario.lib.JnarioCollectionLiterals; import org.jnario.lib.Should; import org.jnario.runner.CreateWith; import org.jnario.runner.ExampleGroupRunner; import org.jnario.runner.Named; import org.jnario.runner.Order; import org.jnario.runner.Subject; import org.jnario.spec.spec.ExampleGroup; import org.jnario.suite.jvmmodel.SuiteExecutableProvider; import org.jnario.suite.suite.Suite; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @CreateWith(SuiteTestCreator.class) @Named("SuiteExecutableProvider") @RunWith(ExampleGroupRunner.class) @SuppressWarnings("all") public class SuiteExecutableProviderSpec { @Subject public SuiteExecutableProvider subject; @Inject @Extension @org.jnario.runner.Extension public ModelStore m; @Before public void before() throws Exception { StringConcatenation _builder = new StringConcatenation(); _builder.append("package demo"); _builder.newLine(); _builder.append("describe \"My Spec\"{"); _builder.newLine(); _builder.append("\t"); _builder.append("// this should be filtered"); _builder.newLine(); _builder.append("\t"); _builder.append("describe \"My Internal Spec\"{"); _builder.newLine(); _builder.append("\t\t"); _builder.newLine(); _builder.append("\t"); _builder.append("}"); _builder.newLine(); _builder.append("}"); _builder.newLine(); _builder.append("describe String{"); _builder.newLine(); _builder.append("\t"); _builder.newLine(); _builder.append("}"); _builder.newLine(); this.m.parseSpec(_builder); StringConcatenation _builder_1 = new StringConcatenation(); _builder_1.append("package demo"); _builder_1.newLine(); _builder_1.append("Feature: My Feature"); _builder_1.newLine(); _builder_1.append("Scenario My Scenario"); _builder_1.newLine(); _builder_1.append("\t"); _builder_1.append("Given nothing"); _builder_1.newLine(); _builder_1.append("\t"); _builder_1.append("Then nothing"); _builder_1.newLine(); this.m.parseScenario(_builder_1); } @Test @Named("returns contained suites") @Order(1) public void _returnsContainedSuites() throws Exception { StringConcatenation _builder = new StringConcatenation(); _builder.append("package demo"); _builder.newLine(); _builder.append("import demo.*"); _builder.newLine(); _builder.append("#My Suite"); _builder.newLine(); _builder.newLine(); _builder.append("##Child 1"); _builder.newLine(); _builder.append("##Child 2"); _builder.newLine(); _builder.append("###Grandchild"); _builder.newLine(); this.m.parseSuite(_builder); Suite _suite = this.m.suite("My Suite"); List<Executable> _executables = this.subject.getExecutables(_suite); Suite _suite_1 = this.m.suite("Child 1"); Suite _suite_2 = this.m.suite("Child 2"); List<Suite> _list = JnarioCollectionLiterals.<Suite>list(_suite_1, _suite_2); Assert.assertTrue("\nExpected subject.getExecutables(suite(\"My Suite\")) => list(suite(\"Child 1\"), suite(\"Child 2\")) but" + "\n subject.getExecutables(suite(\"My Suite\")) is " + new org.hamcrest.StringDescription().appendValue(_executables).toString() + "\n subject is " + new org.hamcrest.StringDescription().appendValue(this.subject).toString() + "\n suite(\"My Suite\") is " + new org.hamcrest.StringDescription().appendValue(_suite).toString() + "\n list(suite(\"Child 1\"), suite(\"Child 2\")) is " + new org.hamcrest.StringDescription().appendValue(_list).toString() + "\n suite(\"Child 1\") is " + new org.hamcrest.StringDescription().appendValue(_suite_1).toString() + "\n suite(\"Child 2\") is " + new org.hamcrest.StringDescription().appendValue(_suite_2).toString() + "\n", Should.<List<? extends Executable>>operator_doubleArrow(_executables, _list)); } @Test @Named("returns resolved specs via link") @Order(2) public void _returnsResolvedSpecsViaLink() throws Exception { StringConcatenation _builder = new StringConcatenation(); _builder.append("package demo"); _builder.newLine(); _builder.append("import demo.*"); _builder.newLine(); _builder.append("#My Suite"); _builder.newLine(); _builder.newLine(); _builder.append("- \"My Spec\""); _builder.newLine(); _builder.append("- \"My Feature\""); _builder.newLine(); this.m.parseSuite(_builder); Suite _suite = this.m.suite("My Suite"); List<Executable> _executables = this.subject.getExecutables(_suite); Set<Executable> _set = IterableExtensions.<Executable>toSet(_executables); ExampleGroup _exampleGroup = this.m.exampleGroup("My Spec"); Feature _feature = this.m.feature(); Set<Specification> _set_1 = JnarioCollectionLiterals.<Specification>set(_exampleGroup, _feature); Assert.assertTrue("\nExpected subject.getExecutables(suite(\"My Suite\")).toSet => set(exampleGroup(\"My Spec\"), feature()) but" + "\n subject.getExecutables(suite(\"My Suite\")).toSet is " + new org.hamcrest.StringDescription().appendValue(_set).toString() + "\n subject.getExecutables(suite(\"My Suite\")) is " + new org.hamcrest.StringDescription().appendValue(_executables).toString() + "\n subject is " + new org.hamcrest.StringDescription().appendValue(this.subject).toString() + "\n suite(\"My Suite\") is " + new org.hamcrest.StringDescription().appendValue(_suite).toString() + "\n set(exampleGroup(\"My Spec\"), feature()) is " + new org.hamcrest.StringDescription().appendValue(_set_1).toString() + "\n exampleGroup(\"My Spec\") is " + new org.hamcrest.StringDescription().appendValue(_exampleGroup).toString() + "\n feature() is " + new org.hamcrest.StringDescription().appendValue(_feature).toString() + "\n", Should.<Set<? extends Executable>>operator_doubleArrow(_set, _set_1)); } @Test @Named("returns resolved specs via regex") @Order(3) public void _returnsResolvedSpecsViaRegex() throws Exception { StringConcatenation _builder = new StringConcatenation(); _builder.append("package demo"); _builder.newLine(); _builder.append("import demo.*"); _builder.newLine(); _builder.append("#My Suite"); _builder.newLine(); _builder.newLine(); _builder.append("- \\demo.*\\"); _builder.newLine(); _builder.newLine(); this.m.parseSuite(_builder); Suite _suite = this.m.suite("My Suite"); List<Executable> _executables = this.subject.getExecutables(_suite); Set<Executable> _set = IterableExtensions.<Executable>toSet(_executables); ExampleGroup _exampleGroup = this.m.exampleGroup("My Spec"); ExampleGroup _exampleGroup_1 = this.m.exampleGroup("String"); Feature _feature = this.m.feature(); Set<Specification> _set_1 = JnarioCollectionLiterals.<Specification>set(_exampleGroup, _exampleGroup_1, _feature); Assert.assertTrue("\nExpected subject.getExecutables(suite(\"My Suite\")).toSet => set(exampleGroup(\"My Spec\"), exampleGroup(\"String\"), feature()) but" + "\n subject.getExecutables(suite(\"My Suite\")).toSet is " + new org.hamcrest.StringDescription().appendValue(_set).toString() + "\n subject.getExecutables(suite(\"My Suite\")) is " + new org.hamcrest.StringDescription().appendValue(_executables).toString() + "\n subject is " + new org.hamcrest.StringDescription().appendValue(this.subject).toString() + "\n suite(\"My Suite\") is " + new org.hamcrest.StringDescription().appendValue(_suite).toString() + "\n set(exampleGroup(\"My Spec\"), exampleGroup(\"String\"), feature()) is " + new org.hamcrest.StringDescription().appendValue(_set_1).toString() + "\n exampleGroup(\"My Spec\") is " + new org.hamcrest.StringDescription().appendValue(_exampleGroup).toString() + "\n exampleGroup(\"String\") is " + new org.hamcrest.StringDescription().appendValue(_exampleGroup_1).toString() + "\n feature() is " + new org.hamcrest.StringDescription().appendValue(_feature).toString() + "\n", Should.<Set<? extends Executable>>operator_doubleArrow(_set, _set_1)); } }