Do Good! - Share Freely, Enrich and Empower people to Transform their lives.

// Source: UnitTestRunner.cpp
// Author: Rajinder Yadav
// Date:   June 30, 2004
//
// Copyright (c) Rajinder Yadav 2004, 2007
//
// web:   http://devmentor.org
// email: rajinder@devmentor.org
//

#include "stdafx.h"
#include "IUnitTestRunner.h"
#include "IUnitTestObserver.h"
#include "UnitTestRunner.h"

UnitTestRunner::UnitTestRunner(const wchar_tconst name) : 
   m_strTestClass(name),
   m_nTestCases(
0),
   m_nFailed(
0),
   m_nExceptions(
0)
{
   m_strMessageStream.rdbuf()->str( L
"" );
}

UnitTestRunner::~UnitTestRunner()
{
}

void UnitTestRunner::NofityObserver(TESTCASE_EVENT eResult)
{
   std::vector<IUnitTestObserver*>::iterator it 
m_ObserverList.begin();

   while
( it !m_ObserverList.end() )
   {
      IUnitTestObserver* observer 
= static_cast<IUnitTestObserver*>(*it);

      
// optimized in most likely, most occuring order
      // maintain case order as declared in the enum TESTCASE_EVENT
      
switch ( eResult )
      {
      
case TC_EVENT_PASSED:
         observer->Passed( 
static_cast<IUnitTestRunner&>(*this) );
         break;

      case 
TC_EVENT_START:
         observer->UnitTestStart( 
static_cast<IUnitTestRunner&>(*this) );
         break;

      case 
TC_EVENT_END:
         observer->UnitTestEnd( 
static_cast<IUnitTestRunner&>(*this) );
         break;

      case 
TC_EVENT_FAILED:
         observer->Failed( 
static_cast<IUnitTestRunner&>(*this) );
         break;

      case 
TC_EVENT_EXCEPTION:
         observer->Exception( 
static_cast<IUnitTestRunner&>(*this) );
         break;

      default
:
         _ASSERT(
false);  // unknown event
      
// switch
      
++it;
   
// while
}
Back

Copyright © 2007 Rajinder Yadav, All rights reserved