traceservices/tracefw/ulogger/unit_test/te-server/uloggerservertest3step.cpp
changeset 0 08ec8eefde2f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/traceservices/tracefw/ulogger/unit_test/te-server/uloggerservertest3step.cpp	Fri Jan 22 11:06:30 2010 +0200
@@ -0,0 +1,231 @@
+// Copyright (c) 2007-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:
+//
+
+/**
+ @file UloggerServerTest3Step.cpp
+ @internalTechnology
+*/
+
+
+#include "uloggerservertest3step.h"
+#include "te_uloggerservertestsuitedefs.h"
+#include "uloggerwatcher.h"
+#include "pluginallocator.h"
+
+
+CUloggerServerTest3Step::~CUloggerServerTest3Step()
+/**
+ * Destructor
+ */
+	{
+	}
+
+CUloggerServerTest3Step::CUloggerServerTest3Step()
+/**
+ * Constructor
+ */
+	{
+	SetTestStepName(KUloggerServerTest3Step);
+	}
+
+TVerdict CUloggerServerTest3Step::doTestStepPreambleL()
+/**
+ * @return - TVerdict code
+ * Override of base class virtual
+ */
+	{
+	INFO_PRINTF1(_L("****This is unit test for CPluginAllocator class****"));	
+	
+	
+	iScheduler = new (ELeave) CActiveScheduler();
+	CActiveScheduler::Install(iScheduler);
+	
+	SetTestStepResult(EPass);
+	return TestStepResult();
+	}
+
+
+TVerdict CUloggerServerTest3Step::doTestStepL()
+/**
+ * @return - TVerdict code
+ * Override of base class pure virtual
+ * Our implementation only gets called if the base class doTestStepPreambleL() did
+ * not leave. That being the case, the current test result value will be EPass.
+ */
+	{
+	  iErrors = 0;
+	  if (TestStepResult()==EPass)
+	  {
+	  
+		iErrors += this->Test1L();//CPluginAllocator::NewL, GetOutputPlugin, GetControlPlugin
+		iErrors += this->Test1_2L();//CPluginAllocator::NewL.... - condition 2
+		iErrors += this->Test2L();//CPluginAllocator::NewLC
+		iErrors += this->Test1_3L(); //CPluginAllocator::NewL - condition 3
+		iErrors += this->Test1_4L(); //CPluginAllocator::NewL - condition 4
+
+		//display results
+		TBuf<128> res;
+		res.AppendFormat(_L("%d errors"), iErrors);
+		INFO_PRINTF1(_L("****Results****"));
+		INFO_PRINTF1(res);
+		if(iErrors == 0)  
+			SetTestStepResult(EPass);
+			else
+				SetTestStepResult(EFail);
+	  }
+	  
+	  return TestStepResult();
+	}
+
+
+
+TVerdict CUloggerServerTest3Step::doTestStepPostambleL()
+/**
+ * @return - TVerdict code
+ * Override of base class virtual
+ */
+	{
+	delete iScheduler;
+	iScheduler = NULL;
+	return TestStepResult();
+	}
+
+
+TInt CUloggerServerTest3Step::Test1L()
+	{
+	TInt errors = 0;
+	
+	INFO_PRINTF1(_L("Testing - CPluginAllocator::NewL method - condition 1"));
+	CPluginAllocator *obj = CPluginAllocator::NewL(KFileTestPlugin(), KNullTestPlugin());
+	if(obj == NULL)
+	  {
+	  INFO_PRINTF1(_L("error"));
+	  errors++;
+	  }
+	  else
+		{
+		MOutputPlugin* output = obj->GetOutputPlugin(); //should exists
+		MInputPlugin* input = obj->GetInputPlugin(); //should not exists
+		if(!output || input)
+			errors++;
+		
+		//cleanup
+		delete obj;
+		obj = NULL;
+		}
+		
+	return errors;
+	}
+
+TInt CUloggerServerTest3Step::Test1_2L()
+	{
+	TInt errors = 0;
+	
+	INFO_PRINTF1(_L("Testing - CPluginAllocator::NewL method - condition 2"));
+	CPluginAllocator *obj = NULL;
+	obj = CPluginAllocator::NewL(KNullTestPlugin(), KNullTestPlugin());
+	if(obj)
+		{
+		delete obj;
+		obj = NULL;
+		}
+	else
+		{
+		errors++;
+		INFO_PRINTF1(_L("error - obj not exists!"));
+		}
+		
+	return errors;
+	}
+
+
+TInt CUloggerServerTest3Step::Test1_3L()
+	{
+	TInt errors = 0;
+	
+	INFO_PRINTF1(_L("Testing - CPluginAllocator::NewL method - condition 3"));
+	CPluginAllocator *obj = NULL;
+	TRAPD(err, obj = CPluginAllocator::NewL(KFileTestPlugin(), KUsbTestPlugin()));
+	if(obj && err==KErrNone)
+		{
+		MOutputPlugin* output = obj->GetOutputPlugin(); //should exists
+		MInputPlugin* input = obj->GetInputPlugin(); //does not matter
+		if(!output)
+			errors++;
+		
+		delete obj;
+		obj = NULL;
+		}
+	else
+		{
+		INFO_PRINTF1(_L("plugin allocator not create. probably there is no usb plugin."));
+		}
+		
+	return errors;
+	}
+
+
+TInt CUloggerServerTest3Step::Test1_4L()
+	{
+	TInt errors = 0;
+	
+	INFO_PRINTF1(_L("Testing - CPluginAllocator::NewL method - condition 4"));
+	CPluginAllocator *obj = NULL;
+	//should leave
+	TRAPD(errCode, obj=CPluginAllocator::NewL(KFileTestPlugin(), KBadNameTestPlugin()));
+	if(errCode == KErrNone)
+		{
+		errors++;
+		INFO_PRINTF1(_L("error - method should leave!"));		
+		}
+	if(obj)
+		{
+		errors++;
+		INFO_PRINTF1(_L("error - obj should not exist!"));		
+		delete obj;
+		obj = NULL;
+		}
+		
+	return errors;
+	}
+
+
+TInt CUloggerServerTest3Step::Test2L()
+	{
+	TInt errors = 0;
+	
+	INFO_PRINTF1(_L("Testing - CPluginAllocator::NewLC method"));
+	CPluginAllocator *obj = CPluginAllocator::NewLC(KFileTestPlugin(), KNullTestPlugin());
+	if(obj == NULL)
+	  {
+	  INFO_PRINTF1(_L("error"));
+	  errors++;
+	  }
+	  else
+		{
+		MOutputPlugin* output = obj->GetOutputPlugin(); //should exists
+		MInputPlugin* input = obj->GetInputPlugin(); //should not exists
+		if(!output || input)
+			{
+			INFO_PRINTF1(_L("error"));
+			errors++;
+			}
+		
+		//cleanup
+		CleanupStack::PopAndDestroy(); //obj
+		}
+		
+	return errors;
+	}