Commit d88214a2 authored by Philip Makedonski's avatar Philip Makedonski
Browse files

+ added further tests

parent fc7e4405
Loading
Loading
Loading
Loading
+37 −0
Original line number Diff line number Diff line
@@ -11,6 +11,11 @@ import org.eclipse.xtext.testing.util.ParseHelper
import org.junit.jupiter.api.Assertions
import org.junit.jupiter.api.Test
import org.junit.jupiter.api.^extension.ExtendWith
import de.ugoe.cs.swe.tTCN3.ConstDef
import static extension de.ugoe.cs.swe.common.TTCN3ScopeHelper.*
import de.ugoe.cs.swe.tTCN3.TemplateDef
import de.ugoe.cs.swe.tTCN3.FieldExpressionList
import org.eclipse.xtext.nodemodel.util.NodeModelUtils

@ExtendWith(InjectionExtension)
@InjectWith(TTCN3InjectorProvider)
@@ -29,4 +34,36 @@ class TTCN3ParsingTest {
		val errors = result.eResource.errors
		Assertions.assertTrue(errors.isEmpty, '''Unexpected errors: «errors.join(", ")»''')
	}

	@Test
	def void checkReferences() {
		val result = parseHelper.parse('''
			module Sample { 
				type record sample {
					integer ifield,
					charstring cfield
				}
				template sample t_sample := {
					ifield := 1,
					cfield := "a"
				};
			}
		''')
		Assertions.assertNotNull(result)
		val errors = result.eResource.errors
		Assertions.assertTrue(errors.isEmpty, '''Unexpected errors: «errors.join(", ")»''')
		var template = result.modules.first.defs.definitions.last.def
		if (template instanceof TemplateDef) {
			var type = template.base.type.ref.getReferencedType
			Assertions.assertFalse(type.eIsProxy, "Type cannot be resolved")
			var expr = template.body.simple.expr
			if (expr instanceof FieldExpressionList) {
				var fieldRefs = expr.specs.map[it.fieldRef]
				for (field : fieldRefs) {
					Assertions.assertFalse(field.eIsProxy, "Field cannot be resolved")
				}
			}
		}
	}

}