/*******************************************************************

Copyright (c) 2004 Open Mobile Alliance, Ltd.  All Rights Reserved.

This software is made available under the usage and distribution terms 
covered by the Common Public License 1.0 and by using this software you
are bound by the terms and conditions of the same.

EXCEPT AS EXPRESSLY SET FORTH IN THE COMMON PUBLIC LICENSE,
THIS PROGRAM IS PROVIDED ON AN "AS IS" BASIS, 
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 
EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, 
ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, 
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
   
Each recipient is solely responsible for determining the 
appropriateness of using and distributing this program and assumes 
all risks associated with its exercise of rights under the Common 
Public License, including but not limited to the risks and 
costs of program errors, compliance with applicable laws, 
damage to or loss of data, programs or equipment, and 
unavailability or interruption of operations.

********************************************************************/

#ifndef _SCTS_DEVMAN_TESTCLIENT_H
#define _SCTS_DEVMAN_TESTCLIENT_H

#include "SctsDevManTestEngine.h"  
#ifdef __SCTS_USING_SCTS__

/* */
/* Test group 1C */
/* -- Removed by DM 1.2 ETS. -- */
//class SctsDMTestCase101C : public SctsDMTestCase
//{
//	int GetID() {return 101;}
//	void StateInitiatePreProcess();
//	void StateInitiatePostProcess();
//};

class SctsDMTestCase101C : public SctsDMTestCase
{
	int GetID() {return 101;}
	void StateInitiatePostProcess();
};

class SctsDMTestCase102C : public SctsDMTestCase
{
	int GetID() {return 102;}
	void StateInitiatePostProcess();
};

class SctsDMTestCase103C : public SctsDMTestCase
{
	int GetID() {return 103;}
	void StateInitiatePostProcess();
};

/* Test group 2C */
class SctsDMTestCase201C : public SctsDMTestCase
{
	int GetID() {return 201;}	
	void StateInitiatePreProcess();
};

/* Test group 3C */
class SctsDMTestCase301C : public SctsDMTestCase
{
	int GetID() {return 301;}	
	void StateInitiatePreProcess();
	void StateInitiatePostProcess();
};

class SctsDMTestCase302C : public SctsDMTestCase
{
	int GetID() {return 302;}
	void StateManagePreBuild();
	void StateTerminate();
};

class SctsDMTestCase303C : public SctsDMTestCase
{
	int GetID() {return 303;}
	void StateManagePreBuild();
	void StateTerminate();
};

class SctsDMTestCase304C : public SctsDMTestCase
{
	int GetID() {return 304;}
	void StateManagePreBuild();
	void StateTerminate();
};

/* Test group 4C */
class SctsDMTestCase401C : public SctsDMTestCase
{
	int GetID() {return 401;}	
	void StateInitiatePreProcess();
	void StateInitiatePostProcess();
};

/* Test group 5C */

class SctsDMTestCase501C : public SctsDMTestCase
{
	int GetID() {return 501;}
	bool StatePreReq();
	void StateInitiatePreProcess();
	void StateManagePostProcess();	
};

class SctsDMTestCase502C : public SctsDMTestCase
{
	int GetID() {return 502;}
	bool StatePreReq();
	void StateManagePostProcess();  
};

class SctsDMTestCase503C : public SctsDMTestCase
{
	int GetID() {return 503;}
	void StateManagePreBuild();
	void StateManagePostProcess();	
};

/*  */
/* Test group 6C */
class SctsDMTestCase601C : public SctsDMTestCase
{
	int GetID() {return 601;}
	bool StatePreReq();
	void StateManagePostProcess();		
};

class SctsDMTestCase602C : public SctsDMTestCase
{
	int GetID() {return 602;}
	void StateManagePreBuild();
	void StateManagePostProcess();	
	void StateTerminate();
};


/* Test group 7C */
class SctsDMTestCase701C : public SctsDMTestCase
{
	SctsDMCommand *command1;
	SctsDMCommand *command2;
	int GetID() {return 701;}
	bool StatePreReq();
	void StateManagePostProcess();
};

/* Test group 8C */
class SctsDMTestCase801C : public SctsDMTestCase
{
	SctsDMCommand *command;
	int GetID() {return 801;}
	bool StatePreReq();
	void StateTerminate();
	
};

class SctsDMTestCase802C : public SctsDMTestCase
{
	SctsDMCommand *command;
	int GetID() {return 802;}
	bool StatePreReq();
	void StateTerminate();
	
};

/* Test group 9C */
class SctsDMTestCase901C : public SctsDMTestCase
{
	int GetID() {return 901;}
	bool StatePreReq();
	void StateTerminate();		
};

class SctsDMTestCase902C : public SctsDMTestCase
{
	int GetID() {return 902;}
	bool StatePreReq();
	void StateTerminate();		
};

class SctsDMTestCase903C : public SctsDMTestCase
{
	int GetID() {return 903;}
	bool StatePreReq();
	void StateTerminate();		
};

/* Test group 10C */
class SctsDMTestCase1001C : public SctsDMTestCase
{
	int messageCnt;
	int GetID() {return 1001;}
	void StateInitiatePreBuild();
	void StateManagePreBuild();
	void StateTerminate();
};

/* Test group 11C */
class SctsDMTestCase1101C : public SctsDMTestCase
{
	SctsDMCommand *command,*command1;
	int GetID() {return 1101;}
	bool StatePreReq();
	void StateManagePostProcess();
};

/* Test group 12C */
class SctsDMTestCase1201C : public SctsDMTestCase
{
	int GetID() {return 1201;}
	bool StatePreReq();
	void StateTerminate();		
};

class SctsDMTestCase1202C : public SctsDMTestCase
{
	int GetID() {return 1202;}
	bool StatePreReq();
	void StateTerminate();		
};

class SctsDMTestCase1203C : public SctsDMTestCase
{
    char *nodeName;
    std::string tmpNodeName;
	int GetID() {return 1203;}
	bool StatePreReq();
	void StateManagePostProcess();

    enum SubNodeType
    {
        SN_NOTSET = 0,
        SN_TOCONREF = 1 << 0,
        SN_APPADDR = 1 << 1,
        SN_APPAUTH = 1 << 2,
        SN_TOCONREF_X = 1 << 3,
        SN_APPADDR_X = 1 << 4,
        SN_APPAUTH_X = 1 << 5,
        SN_APPADDR_X_PORT = 1 << 6,
        SN_APPADDR_X_PORT_X = 1 << 7
    };
    SubNodeType snType;
    unsigned int snCount;

    public:
    SctsDMTestCase1203C() : SctsDMTestCase()
    {
        nodeName=0;
        snType = SN_NOTSET;
        snCount = SN_NOTSET;
    }
    ~SctsDMTestCase1203C()
    {
        if(nodeName) sctsFree(nodeName);
        nodeName=0;
        snType = SN_NOTSET;
    }
};

/* Test group 13C */
class SctsDMTestCase1301C : public SctsDMTestCase
{
	int GetID() {return 1301;}
	bool StatePreReq();
	void StateTerminate();		
};

class SctsDMTestCase1302C : public SctsDMTestCase
{
	int GetID() {return 1302;}
	bool StatePreReq();
	void StateTerminate();		
};

class SctsDMTestCase1303C : public SctsDMTestCase
{
	int GetID() {return 1303;}
	bool StatePreReq();
	void StateTerminate();		
};

class SctsDMTestCase1304C : public SctsDMTestCase
{
	int GetID() {return 1304;}
	bool StatePreReq();
	void StateTerminate();		
};

class SctsDMTestCase1305C : public SctsDMTestCase
{
	int GetID() {return 1305;}
	bool StatePreReq();
	void StateTerminate();		
};

class SctsDMTestCase1306C : public SctsDMTestCase
{
	int GetID() {return 1306;}
	bool StatePreReq();
	void StateTerminate();		
};

class SctsDMTestCase1307C : public SctsDMTestCase
{
	int GetID() {return 1307;}
	bool StatePreReq();
	void StateTerminate();		
};

class SctsDMTestCase1308C : public SctsDMTestCase
{
	int GetID() {return 1308;}
	bool StatePreReq();
	void StateTerminate();		
};

/* Test group 14C */

class SctsDMTestCase1401C : public SctsDMTestCase
{
	int GetID() {return 1401;}
	bool StatePreReq();
	void StateManagePostProcess();	
};

/* Test group 15C */

class SctsDMTestCase1501C : public SctsDMTestCase
{
	SctsDMCommand *cmdRef1;
	int GetID() {return 1501;}
	bool StatePreReq();
	void StateManagePostProcess();	
	void StateTerminate();
};

/* Test group 16C */

class SctsDMTestCase1601C : public SctsDMTestCase
{
	int GetID() {return 1601;}
	bool StatePreReq();
	void StateTerminate();		
};

/* Test group 17C */

class SctsDMTestCase1701C : public SctsDMTestCase
{
	int GetID() {return 1701;}
	void StateManagePreBuild();
	void StateManagePostProcess();	
};

class SctsDMTestCase1702C : public SctsDMTestCase
{
	char *path;
	int GetID() {return 1702;}
	bool StatePreReq();
	void StateManagePreBuild();
	void StateManagePostProcess();	
public:
	char *GetPath();
	void FreePath();
};

class SctsDMTestCase1703C : public SctsDMTestCase
{
	int GetID() {return 1703;}
	void StateManagePreBuild();
	void StateManagePostProcess();	
};

class SctsDMTestCase1704C : public SctsDMTestCase
{
	int GetID() {return 1704;}
	void StateManagePreBuild();
	void StateTerminate();	
};

/* Test group 18C */

class SctsDMTestCase1801C : public SctsDMTestCase
{
	int GetID() {return 1801;}
	bool StatePreReq();
	void StateManagePostProcess();	
	void StateTerminate();	
};

/* Test group 19C */

class SctsDMTestCase1901C : public SctsDMTestCase
{
	int GetID() {return 1901;}
	bool StatePreReq();
	void StateManagePostProcess();	
	void StateTerminate();	
};

/* Test group 20C */

class SctsDMTestCase2001C : public SctsDMTestCase
{
	int GetID() {return 2001;}
	bool StatePreReq();
	void StateTerminate();
};

/* Test group 21C */

class SctsDMTestCase2101C : public SctsDMTestCase
{
	int GetID() {return 2101;}
	bool StatePreReq();
	void StateTerminate();
};

class SctsDMTestCase2102C : public SctsDMTestCase
{
	int GetID() {return 2102;}
	bool StatePreReq();
	void StateTerminate();
};

/* Test group 22C */

class SctsDMTestCase2201C : public SctsDMTestCase
{
	int GetID() {return 2201;}
	bool StatePreReq();
	void StateManagePostProcess();
};

/* Test group 23C */

class SctsDMTestCase2301C : public SctsDMTestCase
{
	int GetID() {return 2301;}
	void StateManagePreBuild();
	void StateTerminate();
};

/* Test group 24C */

class SctsDMTestCase2401C : public SctsDMTestCase
{
    char *oldData;
    char *copyData;
	int GetID() {return 2401;}
	void StateManagePreBuild();
	void StateManagePostProcess();
};

/* Test group 25C */

class SctsDMTestCase2501C : public SctsDMTestCase
{
    std::string nodePath;
    std::string correlator;
	int GetID() {return 2501;}
    bool ContinueNextSession() {return true;}
	bool StatePreReq();
	void StateTerminate();
};

#endif
#endif
