profilesservices/ProfileEngine/tsrc/public/basic/WrapperMdlTest/inc/MT_MProEngNotifyHandler.h
changeset 0 8c5d936e5675
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/profilesservices/ProfileEngine/tsrc/public/basic/WrapperMdlTest/inc/MT_MProEngNotifyHandler.h	Thu Dec 17 08:52:52 2009 +0200
@@ -0,0 +1,256 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Module tests for Profile name array wrapper.
+*
+*/
+////////////////////////////////////////////////////////////////////////
+// MT_MProEngNotifyHandler.h
+//
+
+#ifndef MT_MPROENGNOTIFYHANDLER_H
+#define MT_MPROENGNOTIFYHANDLER_H
+
+//  INCLUDES
+#include <e32std.h>
+#include "MT_CSchedulerUtility.h"
+#include <f32file.h>
+#include <cntdef.h>
+#include <Profile.hrh>
+#include <CEUnitTestSuiteClass.h>
+#include <MProEngProfileActivationObserver.h>
+#include <MProEngActiveProfileObserver.h>
+#include <MProEngProfileObserver.h>
+#include <MProEngProfileNameArrayObserver.h>
+
+// FORWARD DECLARATIONS
+class MProEngNotifyHandler;
+class MProEngProfile;
+class MProEngEngine;
+class MT_CProEngActiveIdObserver;
+class MT_CProEngActiveProfileObserver;
+class MT_CProEngProfileObserver;
+class MT_CProEngNameArrayObserver;
+class CPbkContactEngine;
+class CMyDebugObserver;
+class CRepository;
+
+// CLASS DECLARATION
+
+/**
+* Module tests for Profiles change notification handler.
+*
+*/
+class MT_MProEngNotifyHandler
+     : public CEUnitTestSuiteClass
+    {
+    public:
+
+        /**
+         * Two phase construction
+         */
+        static MT_MProEngNotifyHandler* NewL();
+        static MT_MProEngNotifyHandler* NewLC();
+
+        /**
+        * Destructor.
+        */
+        virtual ~MT_MProEngNotifyHandler();
+
+    private:    // Constructors and destructors
+
+        MT_MProEngNotifyHandler();
+        void ConstructL();
+
+    private: // Setup functions
+
+        void SetupL(  );
+
+        void SetupRequestProfileActivationNotificationsTestL();
+
+        void SetupRequestActiveProfileNotificationsTestL(  );
+
+        void SetupRequestProfileNotificationsTestL();
+
+        void SetupRequestProfileNotificationsTest0L();
+
+        void SetupRequestProfileNotificationsTest1L();
+
+        void SetupRequestProfileNotificationsTest2L();
+
+        void SetupRequestProfileNotificationsTest3L();
+
+        void SetupRequestProfileNotificationsTest4L();
+
+        void SetupRequestProfileNotificationsTest5L();
+
+        void SetupRequestProfileNameArrayNotificationsTestL(  );
+
+        void SetupRequestProfileNameArrayNotificationsTest0L(  );
+
+        void SetupRequestProfileNameArrayNotificationsTest1L(  );
+
+        void SetupRequestProfileNameArrayNotificationsTest2L(  );
+
+        void SetupRequestProfileNameArrayNotificationsTest3L(  );
+
+        void SetupRequestProfileNameArrayNotificationsTest4L(  );
+
+        void SetupRequestProfileNameArrayNotificationsTest5L(  );
+
+        void SetupCancelAllTestL();
+
+    private: // Teardown functions
+
+        void TeardownCommon(  );
+
+        void TeardownRequestProfileActivationNotificationsTest(  );
+
+        void TeardownRequestActiveProfileNotificationsTest(  );
+
+        void TeardownRequestProfileNotificationsTest(  );
+
+        void TeardownRequestProfileNameArrayNotificationsTest(  );
+
+        void TeardownCancelAllTest();
+
+    private: // Test functions
+
+        void RequestProfileActivationNotificationsTestL();
+
+        void RequestActiveProfileNotificationsTestL();
+
+        void RequestProfileNotificationsTestL();
+
+        void RequestProfileNameArrayNotificationsTestL();
+
+        void CancelProfileActivationNotificationsTestL();
+
+        void CancelActiveProfileNotificationsTestL();
+
+        void CancelProfileNotificationsTestL();
+
+        void CancelProfileNameArrayNotificationsTestL();
+
+        void CancelAllTestL();
+
+    private:    // Implementation
+
+		EUNIT_DECLARE_TEST_TABLE; 
+		
+    private:    // Data
+
+        MProEngNotifyHandler* iHandler;
+        MProEngProfile* iProfile;
+        MProEngEngine* iEngine;
+        TInt iProfileId;
+        MT_CProEngActiveIdObserver* iActiveIdObserver;
+        MT_CProEngActiveProfileObserver* iActiveProfileObserver;
+        MT_CProEngProfileObserver* iProfileObserver;
+        MT_CProEngNameArrayObserver* iNameArrayObserver;
+        RArray<TContactItemId> iContactGroups;
+        TProfileRingingVolume iOrigVolume;
+        CPbkContactEngine* iContactEngine;
+        RFs iFs;
+        CMyDebugObserver* iDebugObs;
+
+    };
+
+// Helper classes to test notifications:
+//
+
+class MT_CProEngActiveIdObserver: public CBase,
+                                  public MProEngProfileActivationObserver
+    {
+    public:
+        static MT_CProEngActiveIdObserver* NewL()
+            {return new (ELeave) MT_CProEngActiveIdObserver;}
+        ~MT_CProEngActiveIdObserver() {};
+        void HandleProfileActivatedL( TInt aProfileId )
+            { iError = KErrNone; iProfileId = aProfileId; MT_CSchedulerUtility::InstanceL()->Stop();}
+    
+        void HandleProfileActivationNotificationError( TInt aError )
+            { iError = aError; MT_CSchedulerUtility::InstanceL()->Stop();}
+
+        TInt iProfileId;
+        TInt iError;
+    };
+
+class MT_CProEngActiveProfileObserver: public CBase,
+                                       public MProEngActiveProfileObserver
+    {
+    public:
+        static MT_CProEngActiveProfileObserver* NewL()
+            {return new (ELeave) MT_CProEngActiveProfileObserver;}
+        ~MT_CProEngActiveProfileObserver() {};
+        void HandleActiveProfileModifiedL()
+            { iError = KErrNone; iNotified = ETrue; MT_CSchedulerUtility::InstanceL()->Stop();}
+        void HandleActiveProfileNotificationError( TInt aError )
+            { iError = aError; MT_CSchedulerUtility::InstanceL()->Stop();}
+
+        TBool iNotified;
+        TInt iError;
+    };
+
+class MT_CProEngProfileObserver: public CBase,
+                                 public MProEngProfileObserver
+    {
+    public:
+        static MT_CProEngProfileObserver* NewL()
+            {return new (ELeave) MT_CProEngProfileObserver;}
+        ~MT_CProEngProfileObserver() {};
+        void HandleProfileModifiedL( TInt aProfileId )
+            { iError = KErrNone; iProfileId = aProfileId; MT_CSchedulerUtility::InstanceL()->Stop();}
+        void HandleProfileNotificationError( TInt aError )
+            { iError = aError; MT_CSchedulerUtility::InstanceL()->Stop();}
+
+        TInt iProfileId;
+        TInt iError;
+    };
+
+class MT_CProEngNameArrayObserver: public CBase,
+                                   public MProEngProfileNameArrayObserver
+    {
+    public:
+        static MT_CProEngNameArrayObserver* NewL()
+            {return new (ELeave) MT_CProEngNameArrayObserver;}
+        ~MT_CProEngNameArrayObserver() {};
+        void HandleProfileNameArrayModificationL()
+            { iError = KErrNone; iNotified = ETrue; MT_CSchedulerUtility::InstanceL()->Stop();}
+        void HandleProfileNameArrayNotificationError( TInt aError )
+            { iError = aError; MT_CSchedulerUtility::InstanceL()->Stop();}
+
+        TBool iNotified;
+        TInt iError;
+    };
+
+class CMyDebugObserver: public CActive
+    {
+    public:
+        static CMyDebugObserver* NewL();
+        ~CMyDebugObserver();
+        void RunL();
+        TInt RunError( TInt aError );
+        void DoCancel();
+        void NotifyReqL();
+
+    private:
+        CMyDebugObserver();
+        void ConstructL();
+        CRepository* iRep;
+    };
+
+#endif      // MT_MPROENGNOTIFYHANDLER_H
+
+// End of File
+