/***************************************************
 ** @author   STF 451 (updated by STF 521)
 ** @version  0.0.1
 ** @purpose  1:21.1.1, Ensure that IUT can map ports with empty outlist-PORT1 and inlist-PORT2
 ** @verdict  pass accept, ttcn3verdict:pass
 ***************************************************/
// NOTE: the test shall pass as empty set (in this case outlist-PORT1 and inlist-PORT2) is always a subset
// of another set (in this case outlist-PORT2 and inlist-PORT1). For that reason, the test was changed
// into a positive one as it does not violate any TTCN-3 requirement.
// Of course it doesn't make much sense to map these two ports as communication is not possible
// between them. A CR7607 was submitted to mantis to add a new restriction to the core language standard.

module Sem_210101_connect_and_map_operations_012 {

    type port LoopbackPort message {
        out integer
	}
    type port IntegerOutputPortType message {
        in integer
	}

    type component GeneralComp {
		port IntegerOutputPortType MycomportA
	}

    type component MyTestSystemInterface {
 	    port LoopbackPort messagePort
	}

    // MyTestSystemInterface is the test system interface
    testcase TC_Sem_210101_connect_and_map_operations_012() runs on GeneralComp system MyTestSystemInterface {
        // establishing the port connections
        map(mtc:MycomportA, system:messagePort); //not allowed: MycomportA is in port, meanwhile MySysteminterface port is output
        setverdict(pass);
    }

    control {
        execute(TC_Sem_210101_connect_and_map_operations_012());
    }
}