///////////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 2000-2019 Ericsson Telecom AB
//
// All rights reserved. This program and the accompanying materials
// are made available under the terms of the Eclipse Public License v2.0
// which accompanies this distribution, and is available at
// https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html
///////////////////////////////////////////////////////////////////////////////
//
//  File:         mtp3test.cc
//  Description:  basic test for MTP3asp_PT
//  Rev:          R12A
//  Prodnr:       CNL 113 337 
//  Updated:      2004.06.02
//  Contact:      http://ttcn.ericsson.se
 

module mtp3test
{

modulepar
{
  //mtp3test specific data:
  //OCT1n   MTP3_UserPart_SIO;
  MTP3_Field_sio MTP3_UserPart_SIO;
  integer MTP3_UserPart_OPC,
          MTP3_UserPart_DPC,
          MTP3_UserPart_SLS
};//modulepar 

import from MTP3asp_Types all;
import from MTP3asp_PortType all;

/*************************************
*   Components
**************************************/

/*
****************  1:      2: ************************
* MTP3UserPart * <---------> *   MTP3/M3UA in MSC   * 
****************   (MTP3port)************************
1: MTP3asp_PT MTP3_PCO  alias: e.g. CMGW6
 
*/

type record of MTP3UserPart_CT CompArray;

type component MTC_CT
{
  port MTP3asp_PT MTC_PCO;
  var  MTP3UserPart_CT  vc_MTP3UserPart_BSC1A;
  var  MTP3UserPart_CT  vc_MTP3UserPart_BSC1B;
  var  MTP3UserPart_CT  vc_MTP3UserPart_BSC1C;
  var  MTP3UserPart_CT  vc_MTP3UserPart_CMGW3;
  var  MTP3UserPart_CT  vc_MTP3UserPart_CMGW6;
  var  MTP3UserPart_CT  vc_MTP3UserPart_CMGW9;
  var  MTP3UserPart_CT  vc_compArray[6];
};

// Model of MSC:
type component MSC_SCT
{
  port MTP3asp_PT  BSC1A;
  port MTP3asp_PT  BSC1B;
  port MTP3asp_PT  BSC1C;   
  port MTP3asp_PT  CMGW3;
  port MTP3asp_PT  CMGW6;
  port MTP3asp_PT  CMGW9;
};

//Model of SS7 MTP3 User Part for Self Test. Only logs the messages
type component MTP3UserPart_CT
{
  var ASP_MTP3_TRANSFERind  v_MTP3_TRANSFERind;
  var ASP_MTP3_TRANSFERreq  v_MTP3_TRANSFERreq;
  port MTP3asp_PT           MTP3_PCO;
  // port ... to the upper layers
} // end component type definition

/*
function MTC_delay(integer time) runs on MTC_CT {
  timer t:=time;
  t.start;
  setverdict(none);
  alt{ []t.timeout {} }
 }
*/

function mtp3_selftest( ) runs on MTP3UserPart_CT 
{    
  timer t_Guard := 6.0;
  log( "mtp3_selftest started");
  t_Guard.start;
  setverdict(none);
  alt
  { 
    [] MTP3_PCO.receive ( ASP_MTP3_TRANSFERind:?)  -> value v_MTP3_TRANSFERind 
      {
        log("ASP_MTP3_TRANSFERind: received");
        setverdict(pass);
        repeat;
      } 
    [] MTP3_PCO.receive
      {
        log("Unknown signal received");
        setverdict(pass);
        repeat;
      }
    [] t_Guard.timeout 
      { log("timeout reached");}
  } //alt
  log("mtp3_selftest finished");
}

function f_init( ) runs on MTC_CT
{
  vc_MTP3UserPart_BSC1A := MTP3UserPart_CT.create;
  vc_MTP3UserPart_BSC1B := MTP3UserPart_CT.create;
  vc_MTP3UserPart_BSC1C := MTP3UserPart_CT.create;
  vc_MTP3UserPart_CMGW3 := MTP3UserPart_CT.create;
  vc_MTP3UserPart_CMGW6 := MTP3UserPart_CT.create;
  vc_MTP3UserPart_CMGW9 := MTP3UserPart_CT.create;

  map(vc_MTP3UserPart_BSC1A:MTP3_PCO,system:BSC1A);
  map(vc_MTP3UserPart_BSC1B:MTP3_PCO,system:BSC1B);
  map(vc_MTP3UserPart_BSC1C:MTP3_PCO,system:BSC1C);
  map(vc_MTP3UserPart_CMGW3:MTP3_PCO,system:CMGW3);
  map(vc_MTP3UserPart_CMGW6:MTP3_PCO,system:CMGW6);
  map(vc_MTP3UserPart_CMGW9:MTP3_PCO,system:CMGW9);

  log("tc_3 map is ready");
}

function f_start() runs on MTC_CT
{
  vc_MTP3UserPart_BSC1A.start( mtp3userpart_test() );
  vc_MTP3UserPart_BSC1B.start( mtp3userpart_test() );
  vc_MTP3UserPart_BSC1C.start( mtp3userpart_test() );
  vc_MTP3UserPart_CMGW3.start( mtp3userpart_test() );
  vc_MTP3UserPart_CMGW6.start( mtp3userpart_test() );
  vc_MTP3UserPart_CMGW9.start( mtp3userpart_test() );
}

function f_terminate() runs on MTC_CT
{
  all component.done;
  unmap(vc_MTP3UserPart_BSC1A:MTP3_PCO,system:BSC1A);
  unmap(vc_MTP3UserPart_BSC1B:MTP3_PCO,system:BSC1B);
  unmap(vc_MTP3UserPart_BSC1C:MTP3_PCO,system:BSC1C);
  unmap(vc_MTP3UserPart_CMGW3:MTP3_PCO,system:CMGW3);
  unmap(vc_MTP3UserPart_CMGW6:MTP3_PCO,system:CMGW6);
  unmap(vc_MTP3UserPart_CMGW9:MTP3_PCO,system:CMGW9);
}

function mtp3userpart_test( ) runs on MTP3UserPart_CT {
  timer t_Guard := 5.0;
  log( "mtp3userpart_test started");
  v_MTP3_TRANSFERreq := 
  {
    sio := MTP3_UserPart_SIO,
    opc := MTP3_UserPart_OPC,
    dpc := MTP3_UserPart_DPC,
    sls := 0,
    data:= '010203040506070809000102030405060708090000010203040506070809000000'O
  };
  MTP3_PCO.send( v_MTP3_TRANSFERreq );
  t_Guard.start;
  setverdict(none);
  alt 
  {
    [] MTP3_PCO.receive ( ASP_MTP3_TRANSFERind:? )  -> value v_MTP3_TRANSFERind
      {
        log("ASP_MTP3_TRANSFERind: received");
        setverdict(pass);
        repeat;
      } 
    [] MTP3_PCO.receive
      {
        log("Unknown signal received");
        setverdict(pass);
        repeat;
      }
    [] t_Guard.timeout
      {
        //setverdict(inconc);
        log("timeout reached");
      }
  } //alt
  log("mtp3userpart_test finished");
}

testcase tc_1() runs on MTC_CT system MSC_SCT
{
  log ("tc_1 started");
  var MTP3UserPart_CT vc_MTP3userpart;
  vc_MTP3userpart := MTP3UserPart_CT.create;
  map(vc_MTP3userpart:MTP3_PCO, system:CMGW6);
  log("map is ready");
  vc_MTP3userpart.start( mtp3_selftest() );
  //MTC_delay(6);
  vc_MTP3userpart.done;
  unmap(vc_MTP3userpart:MTP3_PCO, system:CMGW6);
  log ("tc_1 finished");
}

// TC2: Testcase sending one simple message "MTP-transfer-req" and waiting
testcase tc_2() runs on MTC_CT system MSC_SCT
{
  log ("tc_2 started");
  var MTP3UserPart_CT vc_MTP3userpart;  
  vc_MTP3userpart := MTP3UserPart_CT.create;
  map(vc_MTP3userpart:MTP3_PCO, system:CMGW6);
  log("map is ready");  
  vc_MTP3userpart.start( mtp3userpart_test() );
  //MTC_delay(6);  
  vc_MTP3userpart.done;
  unmap(vc_MTP3userpart:MTP3_PCO, system:CMGW6);
  log ("tc_2 finished");
}

testcase tc_3() runs on MTC_CT system MSC_SCT
{
  log ("tc_3 started");
  vc_MTP3UserPart_BSC1A := MTP3UserPart_CT.create;
  vc_MTP3UserPart_BSC1B := MTP3UserPart_CT.create;
  vc_MTP3UserPart_BSC1C := MTP3UserPart_CT.create;
  vc_MTP3UserPart_CMGW3 := MTP3UserPart_CT.create;
  vc_MTP3UserPart_CMGW6 := MTP3UserPart_CT.create;
  vc_MTP3UserPart_CMGW9 := MTP3UserPart_CT.create;
  
  map(vc_MTP3UserPart_BSC1A:MTP3_PCO,system:BSC1A);
  map(vc_MTP3UserPart_BSC1B:MTP3_PCO,system:BSC1B);
  map(vc_MTP3UserPart_BSC1C:MTP3_PCO,system:BSC1C);
  map(vc_MTP3UserPart_CMGW3:MTP3_PCO,system:CMGW3);
  map(vc_MTP3UserPart_CMGW6:MTP3_PCO,system:CMGW6);
  map(vc_MTP3UserPart_CMGW9:MTP3_PCO,system:CMGW9);
  
  log("tc_3 map is ready");  
  vc_MTP3UserPart_BSC1A.start( mtp3userpart_test() );
  vc_MTP3UserPart_BSC1B.start( mtp3userpart_test() );
  vc_MTP3UserPart_BSC1C.start( mtp3userpart_test() );
  vc_MTP3UserPart_CMGW3.start( mtp3userpart_test() );
  vc_MTP3UserPart_CMGW6.start( mtp3userpart_test() );
  vc_MTP3UserPart_CMGW9.start( mtp3userpart_test() );
  
  //MTC_delay(6);  
  all component.done;
  unmap(vc_MTP3UserPart_BSC1A:MTP3_PCO,system:BSC1A);
  unmap(vc_MTP3UserPart_BSC1B:MTP3_PCO,system:BSC1B);
  unmap(vc_MTP3UserPart_BSC1C:MTP3_PCO,system:BSC1C);
  unmap(vc_MTP3UserPart_CMGW3:MTP3_PCO,system:CMGW3);
  unmap(vc_MTP3UserPart_CMGW6:MTP3_PCO,system:CMGW6);
  unmap(vc_MTP3UserPart_CMGW9:MTP3_PCO,system:CMGW9); 
  log ("tc_3 finished"); 
} 

// tc_4 is the same as tc_3 but organized by arrays and cycles
testcase tc_4() runs on MTC_CT system MSC_SCT
{
  f_init();
  f_start();
  f_terminate();
}

testcase tc_5() runs on MTC_CT
{
  var ASP_MTP3_TRANSFERreq vl_MTP3_TRANSFERreq := 
  { sio := 
    { ni := '00'B,
      prio := '00'B,
      si := '0000'B
    },
    opc := 0,
    dpc := 0,
    sls := 0,
    data:= '010203040506070809000102030405060708090000010203040506070809000000'O
  };

  map(self:MTC_PCO,system:MTC_PCO);
  MTC_PCO.send(vl_MTP3_TRANSFERreq);
  MTC_PCO.receive;
  unmap(self:MTC_PCO,system:MTC_PCO);
}

control
{
  execute (tc_1());
}

}//module
