<?xml version="1.0" encoding="UTF-8"?>
	<!--
	Test: 10.2.5 1086 1087
	TODO: 1287 ... how to test?
    require 'CONNECTED'
	-->
	
<ccxml xmlns="http://www.w3.org/2002/09/ccxml" xmlns:conf="http://www.w3.org/2005/ccxml-conformance" version="1.0">

  <conf:docsetup/>
  <var name="ConnectionID" expr="undefined"/>
  
  <script>
	  <![CDATA[
		var i=0;
		assertions[i++] = init_assertion('1086');
		assertions[i++] = init_assertion('1087');
		
		var assert_last = i - 1;
		var assert_index = -1;
	
		
		s_ASSERTIONS_LEFT = show_remained_assertions();
		var b_in_test = false;
		
		// The assertion fails if any condition is not true
		
		function setResult(condition, assertion) {
			if ( condition ) {
				if (assertion.P_F != s_FAIL) {
					assertion.P_F = s_PASS;
				}
			}
			else {
				assertion.P_F = s_FAIL;
			}
		}
		
]]> </script>
    
  <eventprocessor statevariable="current_state">
  
	  <conf:setup type="connected"/>

	<transition event="connection.connected" state="init">
		<assign name="ConnectionID" expr="event$.connectionid"/>
			<send targettype="'ccxml'" target="session.id" name="name_prepare_new"/>
		</transition>

		<transition event="user.PREPARE_NEW">
			<conf:comment expr="'Event: ' + event$.name"/>
			<if cond="assert_index &gt;= 0">
				<assign name="ASSERTION_NUM" expr="assertions[assert_index].number"/>
				<assign name="t_ASSERT_RESULT" expr="assertions[assert_index].P_F"/>
				<script>assertions[assert_index].reason = t_ASSERT_REASON;</script>
				<if cond="t_ASSERT_RESULT == s_PASS">
					<conf:pass reason="t_ASSERT_REASON"/>
					<elseif cond="t_ASSERT_RESULT == s_FAIL"/>
					<conf:fail reason="t_ASSERT_REASON"/>
					<else/>
					<conf:not_exec reason="t_ASSERT_REASON"/>
				</if>
			</if>
			<assign name="assert_index" expr="assert_index + 1"/>
			<if cond="assert_index &gt; assert_last">
				<log label="s_TA" expr="s_ASSERTIONS_LEFT"/>
				<conf:uncond_exit expr="'DONE'"/>
				<else/>
				<log label="s_TA" expr="s_ASSERTIONS_LEFT"/>
				<assign name="ASSERTION_NUM" expr=" assertions[assert_index].number"/>
				<assign name="t_ASSERT_REASON" expr="''"/>
				<script>assertions[assert_index].P_F = s_FAIL;</script>
				<assign name="current_state" expr="state_prefix + ASSERTION_NUM"/>
				<send targettype="'ccxml'" target="session.id" name="start_name_prefix + ASSERTION_NUM"/>
			</if>
		</transition>

	<transition event="user.START_ASSERTION_1086" state="ASSERTION_NMBR_1086">
				<!--
1086	
10.2.5 &lt;assign&gt; and &lt;var&gt; 	
The Connection Class MUST have the following READ-ONLY properties: states[0] = ALERTING states[1] = PROGRESSING states[2] = CONNECTED states[3] = FAILED states[4] = DISCONNECTED states[5] = ERROR 	rachel.muller@aspect.com 	Accepted 
-->
			<assign name="assertions[assert_index].P_F" expr="s_PASS"/>
				
		<script>
			setResult( Connection.states[0] == 'ALERTING', assertions[assert_index]);
		  setResult( Connection.states[1] == 'PROGRESSING', assertions[assert_index]);	
		  setResult( Connection.states[2] == 'CONNECTED', assertions[assert_index]);
		  setResult( Connection.states[3] == 'FAILED', assertions[assert_index]);
			setResult( Connection.states[4] == 'DISCONNECTED', assertions[assert_index]);
			setResult( Connection.states[5] == 'ERROR', assertions[assert_index]);
			setResult( Connection.states[6] == 'CREATED', assertions[assert_index]);
			
		</script>
		
			<send targettype="'ccxml'" target="session.id" name="name_prepare_new"/>
	</transition>
			
	<transition event="user.START_ASSERTION_1087" state="ASSERTION_NMBR_1087">			
		<!--
1087	
10.2.5 &lt;assign&gt; and &lt;var&gt; 	
The Connection Class MUST have the following READ-ONLY properties: connection.ALERTING = 0 connection.PROGRESSSING = 1 connection.CONNECTED = 2 connection.FAILED = 3 connection.DISCONNECTED = 4 connection.ERROR = 5		rachel.muller@aspect.com 	Accepted 
-->
			<assign name="assertions[assert_index].P_F" expr="s_PASS"/>
		
		<script>
		setResult( Connection.ALERTING == 0, assertions[assert_index]);
		setResult( Connection.PROGRESSING == 1, assertions[assert_index]);
		setResult( Connection.CONNECTED == 2, assertions[assert_index]);
		setResult( Connection.FAILED == 3, assertions[assert_index]);
		setResult( Connection.DISCONNECTED == 4, assertions[assert_index]);
		setResult( Connection.ERROR == 5, assertions[assert_index]);
		setResult( Connection.CREATED == 6, assertions[assert_index]);
		
		</script>

		<send targettype="'ccxml'" target="session.id" name="name_prepare_new"/>
	</transition>

	<!--  ***************** COMMON ******************************** -->

	<transition event="send.successful">
	</transition>

	<transition event="*">
			<assign name="t_ASSERT_REASON" expr="'UNEXPECTED EVENT ' + event$.name + ' IN STATE ' + current_state"/>
				<log label="s_TA+ASSERTION_NUM" expr="'Comment: '+t_ASSERT_REASON"/>
				<if cond="current_state == 'init'">
					<log label="s_TA" expr="'Did not come out from init state.' + '  EXIT.'"/>
				<exit/>
				<else/>
					<send targettype="'ccxml'" target="session.id" name="name_prepare_new"/>
				</if>  
    </transition>
	
  </eventprocessor>
</ccxml>
