multimediacommsengine/mmcefloorctrlplugin/tsrc/ut_floorctrlplugin/src/UT_CFCReceiver.cpp
changeset 0 1bce908db942
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/multimediacommsengine/mmcefloorctrlplugin/tsrc/ut_floorctrlplugin/src/UT_CFCReceiver.cpp	Tue Feb 02 01:04:58 2010 +0200
@@ -0,0 +1,344 @@
+/*
+* Copyright (c) 2004 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:  
+*
+*/
+
+
+
+
+//  CLASS HEADER
+#include "ut_cfcreceiver.h"
+
+//  EXTERNAL INCLUDES
+#include <digia/eunit/eunitmacros.h>
+
+
+//  INTERNAL INCLUDES
+#include "fcreceiver.h"
+#include "fcsender.h"
+
+const TInt KTimerDelay = 100;
+const TUint KIAPID = 6;
+const TInt KLength = 50;
+const TInt KPort = 500;
+
+_LIT8(KHello, "hello...receivingtesting");
+// CONSTRUCTION
+UT_CFCReceiver* UT_CFCReceiver::NewL()
+    {
+    UT_CFCReceiver* self = UT_CFCReceiver::NewLC(); 
+    CleanupStack::Pop(self);
+    return self;
+    }
+
+UT_CFCReceiver* UT_CFCReceiver::NewLC()
+    {
+    UT_CFCReceiver* self = new( ELeave ) UT_CFCReceiver();
+    CleanupStack::PushL( self );
+	self->ConstructL(); 
+    return self;
+    }
+
+// Destructor (virtual by CBase)
+UT_CFCReceiver::~UT_CFCReceiver()
+    {
+    }
+
+// Default constructor
+UT_CFCReceiver::UT_CFCReceiver()
+    {
+    }
+
+// Second phase construct
+void UT_CFCReceiver::ConstructL()
+    {
+    // The ConstructL from the base class CEUnitTestSuiteClass must be called.
+    // It generates the test case table.
+    CEUnitTestSuiteClass::ConstructL();
+    }
+
+//  METHODS
+
+
+
+void UT_CFCReceiver::SetupL(  )
+    {
+    iConnection = CFCConnectionContainer::NewL(*this);
+	
+	User::LeaveIfError( iSocketServ.Connect( KESockDefaultMessageSlots) );
+	 iEventCount = 0;    
+	iTimer = CPeriodic::NewL( EPriorityNormal );
+    } 
+
+void UT_CFCReceiver::Teardown(  )
+    {
+	if( iEventCount > 0)
+		{
+		if( !iWait.IsStarted() )
+			{
+			iWait.Start();
+			}
+		}
+	delete iTimer;
+	iTimer = NULL;
+
+	if (iReceiver)
+		{		
+		iReceiver->Cancel();
+		}
+	if(iSender)
+		iSender->Cancel();
+	if(iConnection)
+		{
+		iConnection->CloseConnection();
+		}
+	iSocket.Close();
+	delete iSender;
+	iSender = NULL;	
+    delete iReceiver;
+    iReceiver =NULL;
+    delete iConnection;
+    iConnection = NULL;
+    iSocketServ.Close();
+    delete iData;
+    iData= NULL;
+    }
+
+void UT_CFCReceiver::UT_CFCReceiver_NewLL(  )
+    {
+   	iConnection->OpenConnection(KIAPID, iSocketServ  );
+   	iReceiver = CFCReceiver::NewL(iSocket, *this);
+	iConnection->Cancel();
+    iConnection->RunL();
+    
+	EUNIT_ASSERT( iErr==0);
+    }
+
+void UT_CFCReceiver::UT_CFCReceiver_NewLCL(  )
+    {
+	iConnection->OpenConnection(KIAPID, iSocketServ  );
+   	iReceiver = CFCReceiver::NewLC(iSocket, *this);
+   	CleanupStack::Pop( iReceiver );
+   	iConnection->Cancel();
+    iConnection->RunL();
+    
+	EUNIT_ASSERT( iErr==0);
+    }
+
+void UT_CFCReceiver::UT_CFCReceiver_ListenL(  )
+    {
+    iConnection->OpenConnection(KIAPID, iSocketServ  );
+    
+   	iReceiver = CFCReceiver::NewL(iSocket, *this);
+    iConnection->Cancel();
+    iConnection->RunL();
+    
+    EUNIT_ASSERT( iErr==0);
+    }
+
+void UT_CFCReceiver::UT_CFCReceiver_ReceivedDataLL(  )
+    {
+    iReceiver =CFCReceiver::NewL(iSocket, *this);
+    HBufC8* data = HBufC8::NewL(KLength);
+	data->Des().Copy(KHello);
+	iReceiver->ReceivedData(data);
+	EUNIT_ASSERT( data==iData);
+ 	}
+
+void UT_CFCReceiver::UT_CFCReceiver_RunErrorL(  )
+    {
+    iReceiver  = CFCReceiver::NewL(iSocket, *this);
+    iConnection->OpenConnection(KIAPID, iSocketServ  );
+    iConnection->Cancel();
+    iConnection->RunL();
+    
+    EUNIT_ASSERT( iErr==0);
+	EUNIT_ASSERT( iReceiver->RunError(KErrNoMemory) == KErrNoMemory);
+	EUNIT_ASSERT( iReceiver->RunError(KErrBadName) == KErrNone);
+	}
+
+void UT_CFCReceiver::UT_CFCReceiver_TestRunLL(  )
+	{
+	iReceiver  = CFCReceiver::NewL(iSocket, *this);
+	TRequestStatus* status = &iReceiver->iStatus;
+    User::RequestComplete(status, KErrNoMemory);
+    EUNIT_ASSERT_SPECIFIC_LEAVE( iReceiver->RunL(), KErrNoMemory);
+   	iReceiver->Cancel();
+   	User::WaitForAnyRequest();
+	}
+	
+void UT_CFCReceiver::UT_CFCReceiver_TestRunL2L(  )
+	{
+	// with data
+	iConnection->OpenConnection( KIAPID, iSocketServ  );
+	iReceiver  = CFCReceiver::NewL(iSocket, *this);
+	iConnection->Cancel();
+    iConnection->RunL();
+    
+	HBufC8* msg = KHello().AllocL();
+	delete iReceiver->iReceivedMsg;
+	iReceiver->iReceivedMsg = msg;
+ 	TRequestStatus* status = &iReceiver->iStatus;
+   	User::RequestComplete(status, KErrNone);
+	EUNIT_ASSERT_NO_LEAVE( iReceiver->RunL() );
+    EUNIT_ASSERT( iErr==KErrNone);
+    EUNIT_ASSERT( iData && iData->Compare( *msg ) == 0 );
+    iReceiver->Cancel();
+    User::WaitForAnyRequest();
+	}
+
+void UT_CFCReceiver::UT_CFCReceiver_TestRunL3L(  )
+	{
+	iReceiver  = CFCReceiver::NewL(iSocket, *this);
+	TRequestStatus* status = &iReceiver->iStatus;
+    User::RequestComplete(status, KErrCancel);
+    iReceiver->RunL();
+    EUNIT_ASSERT( iErr==KErrNone);
+   	iReceiver->Cancel();
+   	User::WaitForAnyRequest();
+	}
+
+void UT_CFCReceiver::UT_CFCReceiver_TestRunL4L(  )
+	{
+	iReceiver  = CFCReceiver::NewL(iSocket, *this);
+	TRequestStatus* status = &iReceiver->iStatus;
+    User::RequestComplete(status, KErrTotalLossOfPrecision );
+    iReceiver->RunL();
+    EUNIT_ASSERT( iErr==KErrTotalLossOfPrecision);
+   	iReceiver->Cancel();
+   	User::WaitForAnyRequest();
+	}
+
+void UT_CFCReceiver::ReceivedData(HBufC8* aData)
+	{
+	iData= aData;
+	}
+
+void UT_CFCReceiver::ErrorNotify(TInt aErrCode)
+	{
+	iErr=aErrCode;
+	}
+//
+void UT_CFCReceiver::ConnectionStarted( TInt aError )
+	{
+	TRAPD(leaveErr ,ConnectionStartedL(aError) );
+	if(leaveErr!=KErrNone)
+		{
+		ErrorNotify( leaveErr);	
+		}
+	iErr=aError;
+	}	
+void UT_CFCReceiver::ConnectionStartedL( TInt aError )
+	{
+	iConnectErr= aError;
+	User::LeaveIfError(iSocket.Open(iSocketServ, KAfInet, KSockDatagram,
+								KProtocolInetUdp, iConnection->Connection()) );
+
+	TInetAddr addr;
+	addr.SetPort(KPort);
+	addr.SetAddress(KInetAddrAny);
+	TInt err = iSocket.Bind(addr);
+	if (err == KErrInUse)
+		{
+		ErrorNotify(KErrInUse);
+		}
+	else{
+		ErrorNotify(err);
+		}
+	EUNIT_ASSERT(iErr==0);
+	iReceiver->Listen();
+	}
+
+TInt UT_CFCReceiver::StopScheduler( TAny* aThis )
+	{
+	UT_CFCReceiver* self = reinterpret_cast< UT_CFCReceiver* >( aThis );
+	// set test to pass and stop scheduler
+	self->iCallBackCalled = ETrue;
+	return 0;
+	}
+	
+//  TEST TABLE
+
+EUNIT_BEGIN_TEST_TABLE( 
+    UT_CFCReceiver,
+    "UT_CFCReceiver",
+    "UNIT" )
+
+EUNIT_TEST(
+    "NewL - test ",
+    "CFCReceiver",
+    "NewL",
+    "FUNCTIONALITY",
+    SetupL, UT_CFCReceiver_NewLL, Teardown)
+
+EUNIT_TEST(
+    "NewLC - test ",
+    "CFCReceiver",
+    "NewLC",
+    "FUNCTIONALITY",
+    SetupL, UT_CFCReceiver_NewLCL, Teardown)
+
+EUNIT_TEST(
+    "Listen - test ",
+    "CFCReceiver",
+    "Listen",
+    "FUNCTIONALITY",
+    SetupL, UT_CFCReceiver_ListenL, Teardown)
+
+EUNIT_TEST(
+    "ReceivedDataL - test ",
+    "CFCReceiver",
+    "ReceivedDataL",
+    "FUNCTIONALITY",
+    SetupL, UT_CFCReceiver_ReceivedDataLL, Teardown)
+
+EUNIT_TEST(
+    "RunErrorL - test ",
+    "CFCReceiver",
+    "RunError",
+    "FUNCTIONALITY",
+    SetupL, UT_CFCReceiver_RunErrorL, Teardown)
+
+EUNIT_TEST(
+    "RunL - test ",
+    "CFCReceiver",
+    "RunL",
+    "FUNCTIONALITY",
+    SetupL, UT_CFCReceiver_TestRunLL, Teardown)
+
+EUNIT_TEST(
+    "RunL - test 2",
+    "CFCReceiver",
+    "RunL",
+    "FUNCTIONALITY",
+    SetupL, UT_CFCReceiver_TestRunL2L, Teardown)
+    
+EUNIT_TEST(
+    "RunL - test 3",
+    "CFCReceiver",
+    "RunL",
+    "FUNCTIONALITY",
+    SetupL, UT_CFCReceiver_TestRunL3L, Teardown)
+
+EUNIT_TEST(
+    "RunL - test 4",
+    "CFCReceiver",
+    "RunL",
+    "FUNCTIONALITY",
+    SetupL, UT_CFCReceiver_TestRunL4L, Teardown)
+
+EUNIT_END_TEST_TABLE
+
+//  END OF FILE