package org.etsi.its.uppertester;

/**
 * This interface provides methods to support BTP upper tester
 */
public interface IBtpUpperTester extends IUpperTester {

    /**
     * Generates a BTP type A message
     * @param   destinationPort Destination port
     * @param   sourcePort      Source port
     * @return  True if operation is successful, false otherwise
     */
    public boolean generateBtpA(int destinationPort, int sourcePort);
        
    /**
     * Generates a BTP type B message
     * @param   destinationPort     Destination port
     * @param   destinationPortInfo Information for destination port 
     * @return  True if operation is successful, false otherwise
     */
    public boolean generateBtpB(int destinationPort, int destinationPortInfo);    

    /**
     * Checks that IUT transmits specific packet to its upper layer
     * @param   payload Upper layer payload
     * @return  True if operation is successful, false otherwise
     */
    public boolean checkPayload(byte[] payload);
}
