phoneclientserver/phoneclient/tsrc/public/basic/ut_ussd/ut_testenv.h
branchRCL_3
changeset 20 987c9837762f
parent 19 7d48bed6ce0c
child 21 0a6dd2dc9970
equal deleted inserted replaced
19:7d48bed6ce0c 20:987c9837762f
     1 
       
     2 
       
     3 // include files
       
     4 #include <e32cmn.h>
       
     5 #include <e32base.h>
       
     6 #include <f32file.h>
       
     7 #include "mphsrvphoneinterface.h" // base class
       
     8 
       
     9 // forward declarations
       
    10 class RTelServer;
       
    11 class RMobilePhone;
       
    12 class RMmCustomAPI;
       
    13 class CPhSrvResourceManager;
       
    14 class CPhSrvUssdManager;
       
    15 
       
    16 /**
       
    17  * Mode for current test execution
       
    18  */
       
    19 class TestMode
       
    20 {
       
    21 public:
       
    22 	enum {Immediate=50};
       
    23 	enum Event{Normal,NoResp,NetworkRelease};
       
    24 
       
    25 	TestMode(Event event,int error=KErrNone,int timeout=Immediate)
       
    26 		{m_event=event;m_error=error;m_timeout=timeout;}
       
    27 	TestMode(int error,int timeout=Immediate)
       
    28 		{m_event=Normal;m_error=error;m_timeout=timeout;}
       
    29 	TestMode()
       
    30 		{m_event=Normal;m_error=KErrNone;m_timeout=Immediate;}
       
    31 	Event m_event;
       
    32 	int m_error;
       
    33 	int m_timeout;
       
    34 };
       
    35 
       
    36 /**
       
    37  * ETEL message loop
       
    38  */
       
    39 class EtelMsgLoop
       
    40 {
       
    41 public:
       
    42 	EtelMsgLoop();
       
    43 
       
    44 	// methods
       
    45 	void receive( const TDesC8& msg, const TDesC8& attr );
       
    46 	void networkRelease( const TDesC8& msg, const TDesC8& attr );
       
    47 
       
    48 	//data
       
    49 	TRequestStatus* mSendMessageReqStatus;
       
    50 
       
    51 	TRequestStatus* mReceiveMessageReqStatus;
       
    52 	TDes8* mReceiveMessageData;
       
    53 	TDes8* mReceiveMessageAttributes;
       
    54 
       
    55 	TRequestStatus* mNetworkReleaseReqStatus;
       
    56 	TDes8* mNetworkReleaseMessageData;
       
    57 	TDes8* mNetworkReleaseMessageAttributes;
       
    58 
       
    59 };
       
    60 
       
    61 
       
    62 
       
    63 /**
       
    64  * test environment
       
    65  */
       
    66 class TestEnv: public MPhSrvPhoneInterface
       
    67 {
       
    68 	public:
       
    69 
       
    70 		static void create();
       
    71 		static void destroy();
       
    72 		static TestEnv& env(); // the singleton
       
    73 
       
    74 		TestEnv();
       
    75 		void construct();
       
    76 		~TestEnv();
       
    77 
       
    78 		CPhSrvUssdManager& ussdManager() {return *m_ussdManager;}
       
    79 
       
    80 		void setTestMode(const TestMode& testMode) {m_testMode = testMode;}
       
    81 		const TestMode& testMode() {return m_testMode;}
       
    82 
       
    83 		EtelMsgLoop& etelMsgLoop() {return m_etelMsgLoop;}
       
    84 		
       
    85 		RMessage2& fakeMessage() {return *m_fakeMessage;}
       
    86 		
       
    87 	protected: // stubbed MPhSrvPhoneInterface
       
    88 
       
    89 		RTelServer& PhSrvETelServer();
       
    90 		RMobilePhone& PhSrvMobilePhone();
       
    91 		RMmCustomAPI& PhSrvCustomPhone();
       
    92 
       
    93 	private:
       
    94 		
       
    95 		// file manager. Never actually connected to
       
    96 		RFs m_fs;
       
    97 
       
    98 		// resource manager mock
       
    99 		CPhSrvResourceManager* m_resourceManager;
       
   100 
       
   101 		// ussd manager (server main ussd class)
       
   102 		CPhSrvUssdManager* m_ussdManager;
       
   103 
       
   104 		// test mode
       
   105 		TestMode m_testMode;
       
   106 
       
   107 		// etel msg loop
       
   108 		EtelMsgLoop m_etelMsgLoop;
       
   109 		
       
   110 		// temp message
       
   111 		RMessage2* m_fakeMessage;
       
   112 
       
   113 	    static TestEnv* m_singleton;
       
   114 
       
   115 };
       
   116 
       
   117 
       
   118 
       
   119 
       
   120