package org.example.xbase.entities.tests;
import com.google.inject.Inject;
import org.eclipse.xtend2.lib.StringConcatenation;
import org.eclipse.xtext.junit4.InjectWith;
import org.eclipse.xtext.junit4.XtextRunner;
import org.eclipse.xtext.junit4.util.ParseHelper;
import org.eclipse.xtext.junit4.validation.ValidationTestHelper;
import org.eclipse.xtext.xbase.lib.Exceptions;
import org.eclipse.xtext.xbase.lib.Extension;
import org.example.xbase.entities.EntitiesInjectorProvider;
import org.example.xbase.entities.entities.Model;
import org.junit.Test;
import org.junit.runner.RunWith;
@RunWith(XtextRunner.class)
@InjectWith(EntitiesInjectorProvider.class)
@SuppressWarnings("all")
public class EntitiesParserTest {
@Inject
@Extension
private ParseHelper<Model> _parseHelper;
@Inject
@Extension
private ValidationTestHelper _validationTestHelper;
@Test
public void testCorrectParsing() {
try {
StringConcatenation _builder = new StringConcatenation();
_builder.append("entity MyEntity {");
_builder.newLine();
_builder.append(" ");
_builder.append("attr String attribute;");
_builder.newLine();
_builder.append("}");
_builder.newLine();
Model _parse = this._parseHelper.parse(_builder);
this._validationTestHelper.assertNoErrors(_parse);
} catch (Throwable _e) {
throw Exceptions.sneakyThrow(_e);
}
}
@Test
public void testAttributeWithType() {
try {
StringConcatenation _builder = new StringConcatenation();
_builder.append("entity MyEntity {");
_builder.newLine();
_builder.append(" ");
_builder.append("attr MyEntity attribute;");
_builder.newLine();
_builder.append("}");
_builder.newLine();
Model _parse = this._parseHelper.parse(_builder);
this._validationTestHelper.assertNoErrors(_parse);
} catch (Throwable _e) {
throw Exceptions.sneakyThrow(_e);
}
}
@Test
public void testAttributeWithoutType() {
try {
StringConcatenation _builder = new StringConcatenation();
_builder.append("entity MyEntity {");
_builder.newLine();
_builder.append(" ");
_builder.append("attr attribute = new MyEntity();");
_builder.newLine();
_builder.append("}");
_builder.newLine();
Model _parse = this._parseHelper.parse(_builder);
this._validationTestHelper.assertNoErrors(_parse);
} catch (Throwable _e) {
throw Exceptions.sneakyThrow(_e);
}
}
@Test
public void testImport() {
try {
StringConcatenation _builder = new StringConcatenation();
_builder.append("import java.util.List");
_builder.newLine();
_builder.append("import java.util.LinkedList");
_builder.newLine();
_builder.newLine();
_builder.append("entity MyEntity {");
_builder.newLine();
_builder.append(" ");
_builder.append("attr List<String> list = new LinkedList<String>();");
_builder.newLine();
_builder.append("}");
_builder.newLine();
Model _parse = this._parseHelper.parse(_builder);
this._validationTestHelper.assertNoErrors(_parse);
} catch (Throwable _e) {
throw Exceptions.sneakyThrow(_e);
}
}
}