uiservicetab/vimpstengine/tsrc/vimpstengine_ut/src/t_vimpstenginecontactmgmtextention.cpp
changeset 0 5e5d6b214f4f
child 30 2b4be3554d30
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/uiservicetab/vimpstengine/tsrc/vimpstengine_ut/src/t_vimpstenginecontactmgmtextention.cpp	Tue Feb 02 10:12:18 2010 +0200
@@ -0,0 +1,395 @@
+/*
+* t_vimpstenginecontactmgmtextention.cpp  :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: t_vimpstenginecontactmgmtextention.cpp
+*
+*/
+#include <EUnitMacros.h>
+#include <TEUnitAssertionInfo.h>
+#include <CEUnitAllocTestCaseDecorator.h>
+#include "t_vimpstenginecontactmgmtextention.h"
+#include "cvimpstenginecontactmgmtextention.h"
+
+#include "s_ximpclient.h"
+#include "s_ximpcontext.h"
+#include "s_presencefeatures.h"
+#include "s_presentitygroups.h"
+//#include <ximpidentity.h>
+
+#include "cvimpstenginerequestmapper.h"
+#include "cvimpstenginerequest.h"
+
+#include "s_ximprequestcompleteevent.h"
+
+_LIT(KTestId, "TestId");
+_LIT(KTestIdentity, "TEST_IDENTITY");
+
+
+extern TXIMPRequestId gTXIMPRequestId;
+extern TBool gCreateXIMPIdentity;
+
+extern TInt32 gMXIMPRequestCompleteEventStubInterfaceId;
+extern TXIMPRequestId gMXIMPRequestCompleteEventStubRequestId;
+extern TBool gRequestCompleteEventResultCodeKerrNotSupported;
+
+T_VIMPSTEngineContactMgmtExtention* T_VIMPSTEngineContactMgmtExtention::NewLC()
+    {
+    T_VIMPSTEngineContactMgmtExtention* self = new( ELeave ) T_VIMPSTEngineContactMgmtExtention;
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    return self;
+    }
+
+T_VIMPSTEngineContactMgmtExtention::~T_VIMPSTEngineContactMgmtExtention()
+    {
+    }
+
+void T_VIMPSTEngineContactMgmtExtention::ConstructL()
+    {
+    CEUnitTestSuiteClass::ConstructL();
+    }
+
+        
+void T_VIMPSTEngineContactMgmtExtention::SetupL()
+    {   
+    iClient = MXIMPClientStub::NewClientL();               
+    
+    //Create new sink to receive ximp context events
+	iPresenceCtx = iClient->NewPresenceContextLC();    
+    // ignore code scanner warning, it gives panic
+    CleanupStack::Pop();// because of LC method    
+	
+	iFeatures = MyMPresenceFeatureStub::NewStubL(iPresenceCtx);	
+	//
+	iGroups = &(iFeatures->PresentityGroups());
+	
+	iRequestMapper = CVIMPSTEngineRequestMapper::NewL() ;
+	
+	iContactManager = CVIMPSTEngineContactMgmtExtention::NewL( *iPresenceCtx,
+														*iGroups,
+														*iRequestMapper );
+	
+    }    
+
+void T_VIMPSTEngineContactMgmtExtention::Teardown()
+    {
+    
+    delete iContactManager;
+    delete iRequestMapper;    
+    delete iFeatures;
+	delete iPresenceCtx;
+	delete iClient;
+	
+	//gCreateXIMPIdentity = EFalse;
+	//gRequestCompleteEventResultCodeKerrNotSupported = EFalse;
+    }
+
+
+void T_VIMPSTEngineContactMgmtExtention::TestConstructionL()
+    {
+    EUNIT_ASSERT( iContactManager );
+    }
+
+void T_VIMPSTEngineContactMgmtExtention::TestCreateIdentityNormalL()
+	{
+	gCreateXIMPIdentity = ETrue;
+	MXIMPIdentity* identity = iContactManager->CreateIdentityLC(KTestId);
+	EUNIT_ASSERT( identity );
+	CleanupStack::PopAndDestroy();
+	}
+
+void T_VIMPSTEngineContactMgmtExtention::TestAddServerContactSuccessValidDataL()
+	{
+	gCreateXIMPIdentity = ETrue;
+	iContactManager->iReqResult = KErrNone;
+	iContactManager->iSupported = TVIMPSTEnums::ESupported;
+	
+	TInt error = iContactManager->AddServerContactL(KTestId(), KTestId(), KTestId());
+	
+	EUNIT_ASSERT(TVIMPSTEnums::ESupported == iContactManager->IsSupported())
+	EUNIT_ASSERT( KErrNone == error );	
+	}
+	
+void T_VIMPSTEngineContactMgmtExtention::TestAddServerContactSuccessWithDataLengthZeroL()
+	{
+	gCreateXIMPIdentity = ETrue;
+	iContactManager->iReqResult = KErrNone;
+	iContactManager->iSupported = TVIMPSTEnums::ESupported;
+	TInt error =  iContactManager->AddServerContactL(KNullDesC(), KNullDesC(), KNullDesC());
+	EUNIT_ASSERT(TVIMPSTEnums::ESupported == iContactManager->IsSupported())	
+	EUNIT_ASSERT( KErrNone == error );	
+	}
+	
+
+
+void T_VIMPSTEngineContactMgmtExtention::TestAddServerContactErrorValidDataL()
+	{
+	gCreateXIMPIdentity = ETrue;
+	iContactManager->iReqResult = KErrNotSupported;
+	iContactManager->iSupported = TVIMPSTEnums::ENotSupported;
+	TInt error = iContactManager->AddServerContactL(KTestId(), KTestId(), KTestId());
+	
+	EUNIT_ASSERT(TVIMPSTEnums::ENotSupported == iContactManager->IsSupported())
+	EUNIT_ASSERT( KErrNone == error );	
+	}		
+
+
+void T_VIMPSTEngineContactMgmtExtention::TestType()
+	{	
+	EUNIT_ASSERT(TVIMPSTEnums::EContactManagement == iContactManager->Type())	
+	}
+	
+
+void T_VIMPSTEngineContactMgmtExtention::TestIsSupported()
+	{	
+	EUNIT_ASSERT(TVIMPSTEnums::ESupportUnKnown == iContactManager->IsSupported())	
+	}
+		
+
+void T_VIMPSTEngineContactMgmtExtention::TestDeleteServerContactSuccessValidDataL()
+	{
+	gCreateXIMPIdentity = ETrue;
+	iContactManager->iReqResult = KErrNone;
+	iContactManager->iSupported = TVIMPSTEnums::ESupported;
+	
+	TInt error = iContactManager->DeleteServerContactL(KTestId(), KTestId());
+	
+	EUNIT_ASSERT(TVIMPSTEnums::ESupported == iContactManager->IsSupported())
+	EUNIT_ASSERT( KErrNone == error );	
+	}
+
+void T_VIMPSTEngineContactMgmtExtention::TestDeleteServerContactSuccessWithDataLengthZeroL()
+	{
+	gCreateXIMPIdentity = ETrue;
+	iContactManager->iReqResult = KErrNone;
+	iContactManager->iSupported = TVIMPSTEnums::ESupported;
+	
+	TInt error = iContactManager->DeleteServerContactL(KNullDesC(), KNullDesC());
+	
+	EUNIT_ASSERT(TVIMPSTEnums::ESupported == iContactManager->IsSupported())	
+	EUNIT_ASSERT( KErrNone == error );	
+	}
+
+
+	
+
+
+void T_VIMPSTEngineContactMgmtExtention::TestDeleteServerContactErrorValidDataL()
+	{
+	gCreateXIMPIdentity = ETrue;
+	iContactManager->iReqResult = KErrNotSupported;
+	iContactManager->iSupported = TVIMPSTEnums::ENotSupported;
+	TInt error = iContactManager->DeleteServerContactL(KTestId(), KTestId());
+	
+	EUNIT_ASSERT(TVIMPSTEnums::ENotSupported == iContactManager->IsSupported())
+	EUNIT_ASSERT( KErrNone == error );	
+	}
+	
+
+
+void T_VIMPSTEngineContactMgmtExtention::TestHandleSessionContextEventOperationDeleteErrNoneL()
+    {
+    TXIMPRequestId id;
+    id.Init( 10 );
+
+	iRequestMapper->CreateRequestL(id, ETrue, EVIMPSTXimpOperationDeleteContact);// waite here
+	
+    MXIMPRequestCompleteEventStub requestCompleteEvent;
+    ::gMXIMPRequestCompleteEventStubInterfaceId = MXIMPRequestCompleteEvent::KInterfaceId;
+
+    ::gMXIMPRequestCompleteEventStubRequestId = id;
+    
+    iContactManager->HandleSessionContextEventL
+    				(*iPresenceCtx, requestCompleteEvent, EVIMPSTXimpOperationDeleteContact);
+    
+    
+    CVIMPSTEngineRequest* req1 = iRequestMapper->FindRequestId(id);     
+    EUNIT_ASSERT( NULL == req1 );
+    
+
+    EUNIT_ASSERT(KErrNone == iContactManager->iReqResult)
+                                             
+    }	
+
+
+void T_VIMPSTEngineContactMgmtExtention::TestHandleSessionContextEventOperationAddErrNoneL()
+    {
+    TXIMPRequestId id;
+    id.Init( 20 );
+
+    gRequestCompleteEventResultCodeKerrNotSupported = EFalse;
+	iRequestMapper->CreateRequestL(id, ETrue, EVIMPSTXimpOperationAddContact);// waite here
+	
+    MXIMPRequestCompleteEventStub requestCompleteEvent;
+    ::gMXIMPRequestCompleteEventStubInterfaceId = MXIMPRequestCompleteEvent::KInterfaceId;
+
+    ::gMXIMPRequestCompleteEventStubRequestId = id;
+    
+    iContactManager->HandleSessionContextEventL
+    				(*iPresenceCtx, requestCompleteEvent, EVIMPSTXimpOperationAddContact);
+    
+    CVIMPSTEngineRequest* req1 = iRequestMapper->FindRequestId(id);     
+    EUNIT_ASSERT( NULL == req1 );
+    
+    TInt res = iContactManager->iReqResult;
+    EUNIT_ASSERT(KErrNone == iContactManager->iReqResult)
+                                             
+    }	
+ 
+ 
+ void T_VIMPSTEngineContactMgmtExtention::TestHandleSessionContextEventOperationDeleteNotSupportedL()
+    {
+    TXIMPRequestId id;
+    id.Init( 10 );
+
+	gRequestCompleteEventResultCodeKerrNotSupported = ETrue;
+	
+	iRequestMapper->CreateRequestL(id, ETrue, EVIMPSTXimpOperationDeleteContact);// waite here
+	
+    MXIMPRequestCompleteEventStub requestCompleteEvent;
+    ::gMXIMPRequestCompleteEventStubInterfaceId = MXIMPRequestCompleteEvent::KInterfaceId;
+
+    ::gMXIMPRequestCompleteEventStubRequestId = id;
+    
+    iContactManager->HandleSessionContextEventL
+    				(*iPresenceCtx, requestCompleteEvent, EVIMPSTXimpOperationDeleteContact);
+    
+    
+    CVIMPSTEngineRequest* req1 = iRequestMapper->FindRequestId(id);     
+    EUNIT_ASSERT( NULL == req1 );
+    
+    EUNIT_ASSERT(KErrNotSupported == iContactManager->iReqResult)
+                                             
+    }	
+
+
+void T_VIMPSTEngineContactMgmtExtention::TestHandleSessionContextEventOperationAddNotSupportedL()
+    {
+    TXIMPRequestId id;
+    id.Init( 20 );
+
+	gRequestCompleteEventResultCodeKerrNotSupported = ETrue;
+	
+	iRequestMapper->CreateRequestL(id, ETrue, EVIMPSTXimpOperationAddContact);// waite here
+	
+    MXIMPRequestCompleteEventStub requestCompleteEvent;
+    ::gMXIMPRequestCompleteEventStubInterfaceId = MXIMPRequestCompleteEvent::KInterfaceId;
+
+    ::gMXIMPRequestCompleteEventStubRequestId = id;
+    
+    iContactManager->HandleSessionContextEventL
+    				(*iPresenceCtx, requestCompleteEvent, EVIMPSTXimpOperationAddContact);
+    
+    CVIMPSTEngineRequest* req1 = iRequestMapper->FindRequestId(id);     
+    EUNIT_ASSERT( NULL == req1 );
+    
+    EUNIT_ASSERT(KErrNotSupported == iContactManager->iReqResult)
+                                             
+    }	
+ 
+
+void T_VIMPSTEngineContactMgmtExtention::TestHandleSessionContextEventOperationNotValidOperationL()
+    {
+    TXIMPRequestId id;
+    id.Init( 20 );
+
+	iRequestMapper->CreateRequestL(id, ETrue, EVIMPSTXimpOperationAddContact);// waite here
+	
+    MXIMPRequestCompleteEventStub requestCompleteEvent;
+    ::gMXIMPRequestCompleteEventStubInterfaceId = MXIMPRequestCompleteEvent::KInterfaceId;
+
+    ::gMXIMPRequestCompleteEventStubRequestId = id;
+    
+    iContactManager->iReqResult = KErrNone;
+    
+    iContactManager->HandleSessionContextEventL
+    				(*iPresenceCtx, requestCompleteEvent, EVIMPSTXimpOperationNoOperation);
+    
+    CVIMPSTEngineRequest* req1 = iRequestMapper->FindRequestId(id);     
+    EUNIT_ASSERT( req1 );
+    
+    EUNIT_ASSERT(KErrNone == iContactManager->iReqResult)
+                                             
+    }
+  
+    
+	
+EUNIT_BEGIN_TEST_TABLE( T_VIMPSTEngineContactMgmtExtention, "T_VIMPSTEngineContactMgmtExtention", "" )
+
+    EUNIT_TEST( "TestConstructionL ",
+            "T_VIMPSTEngineContactMgmtExtention",
+            "ConstructionL",
+            "FUNCTIONALITY", SetupL, TestConstructionL, Teardown )
+    EUNIT_TEST( "TestCreateIdentityNormalL ",
+            "T_VIMPSTEngineContactMgmtExtention",
+            "CreateIdentityLC",
+            "FUNCTIONALITY", SetupL, TestCreateIdentityNormalL, Teardown )
+    
+    EUNIT_TEST( "TestAddServerContactSuccessValidDataL ",
+            "T_VIMPSTEngineContactMgmtExtention",
+            "AddServerContactL",
+            "FUNCTIONALITY", SetupL, TestAddServerContactSuccessValidDataL, Teardown )
+    EUNIT_TEST( "TestAddServerContactSuccessWithDataLengthZeroL ",
+            "T_VIMPSTEngineContactMgmtExtention",
+            "AddServerContactL",
+            "FUNCTIONALITY", SetupL, TestAddServerContactSuccessWithDataLengthZeroL, Teardown )
+    EUNIT_TEST( "TestAddServerContactErrorValidDataL ",
+            "T_VIMPSTEngineContactMgmtExtention",
+            "AddServerContactL",
+            "FUNCTIONALITY", SetupL, TestAddServerContactErrorValidDataL, Teardown )	 
+    EUNIT_TEST( "TestIsSupported ",
+            "T_VIMPSTEngineContactMgmtExtention",
+            "IsSupported",
+            "FUNCTIONALITY", SetupL, TestIsSupported, Teardown )	  
+    EUNIT_TEST( "TestType ",
+            "T_VIMPSTEngineContactMgmtExtention",
+            "Type",
+            "FUNCTIONALITY", SetupL, TestType, Teardown )
+    EUNIT_TEST( "TestDeleteServerContactSuccessValidDataL ",
+            "T_VIMPSTEngineContactMgmtExtention",
+            "DeleteServerContactL",
+            "FUNCTIONALITY", SetupL, TestDeleteServerContactSuccessValidDataL, Teardown )
+    EUNIT_TEST( "TestDeleteServerContactSuccessWithDataLengthZeroL ",
+            "T_VIMPSTEngineContactMgmtExtention",
+            "DeleteServerContactL",
+            "FUNCTIONALITY", SetupL, TestDeleteServerContactSuccessWithDataLengthZeroL, Teardown )
+    EUNIT_TEST( "TestDeleteServerContactErrorValidDataL ",
+            "T_VIMPSTEngineContactMgmtExtention",
+            "DeleteServerContactL",
+            "FUNCTIONALITY", SetupL, TestDeleteServerContactErrorValidDataL, Teardown )
+    
+    EUNIT_TEST( "TestHandleSessionContextEventOperationDeleteErrNoneL ",
+            "T_VIMPSTEngineContactMgmtExtention",
+            "HandleSessionContextEventL",
+            "FUNCTIONALITY", SetupL, TestHandleSessionContextEventOperationDeleteErrNoneL, Teardown )
+    EUNIT_TEST( "TestHandleSessionContextEventOperationDeleteNotSupportedL ",
+            "T_VIMPSTEngineContactMgmtExtention",
+            "HandleSessionContextEventL",
+            "FUNCTIONALITY", SetupL, TestHandleSessionContextEventOperationDeleteNotSupportedL, Teardown )
+    EUNIT_TEST("TestHandleSessionContextEventOperationAddErrNoneL ",
+            "T_VIMPSTEngineContactMgmtExtention",
+            "HandleSessionContextEventL",
+            "FUNCTIONALITY", SetupL, TestHandleSessionContextEventOperationAddErrNoneL, Teardown )
+    EUNIT_TEST( "TestHandleSessionContextEventOperationAddNotSupportedL ",
+            "T_VIMPSTEngineContactMgmtExtention",
+            "HandleSessionContextEventL",
+            "FUNCTIONALITY",SetupL, TestHandleSessionContextEventOperationAddNotSupportedL, Teardown )	  
+    EUNIT_TEST( "TestHandleSessionContextEventOperationNotValidOperationL ",
+            "T_VIMPSTEngineContactMgmtExtention",
+            "HandleSessionContextEventL",
+            "FUNCTIONALITY", SetupL, TestHandleSessionContextEventOperationNotValidOperationL, Teardown )
+    
+    
+EUNIT_END_TESTCASE_TABLE
+
+//  END OF FILE