/*****************************************************************
 ** @author   STF 470
 ** @version  0.0.1
 ** @purpose  1:8.2.3.1, Verify that altstep is imported together with parameter names
 ** @verdict  pass accept, ttcn3verdict:pass
 *****************************************************************/

// The following requirements are tested:
// Restriction c:
// A definition is imported together with its name and all local definitions.
// Restriction d:
// A definition is imported together with all information of referenced definitions that
// are necessary for the usage of the imported definition, independent of the visibility
// of the referenced definitions.
// Table 8:
// Altstep

module Sem_08020301_GeneralFormatOfImport_013 {

import from Sem_08020301_GeneralFormatOfImport_013_import { altstep a_test };

type component GeneralComp {}

testcase TC_Sem_08020301_GeneralFormatOfImport_013() runs on GeneralComp {
	// testing if parameter names are imported
	// type compatibility is checked during parameter passing: for this check, the type information for
	// the altstep parameters should be available at this point to compile the script correctly
	a_test(p_param2 := 2, p_param1 := 1);
}

control{
    execute(TC_Sem_08020301_GeneralFormatOfImport_013());
}
}

module Sem_08020301_GeneralFormatOfImport_013_import {
	altstep a_test(integer p_param1, integer p_param2) {
		[] any timer.timeout {}
		[else] {
			if ( match(p_param1, 1) and match(p_param2, 2) ) { setverdict(pass); }
			else { setverdict(fail); }
		}
	}
}