Rajinder Yadav - Windows C++ Development Tools & Resources :Design, Code, Test, Deploy

// Source: ConsoleLogger.h
// Author: Rajinder Yadav
// Date:   July 5, 2004
//
// Copyright (c) Rajinder Yadav 2004, 2007
//
// web:   http://devmentor.org
// email: rajinder@devmentor.org
//

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

using std::wcout;
using 
std::endl;

ConsoleLogger::ConsoleLogger()
{
   m_nTestRun    
0;
   
m_nFailed     0;
   
m_nExceptions 0;
}

ConsoleLogger::~ConsoleLogger()
{
   wcout  << 
"----------------"   << endl
          << 
"Overall Summary"    << endl
          << 
"----------------"   << endl
          << 
"Total Run: "        << m_nTestRun << endl
          << 
"Total Failed: "     << m_nFailed << endl
          << 
"Total Exceptions: " << m_nExceptions << endl;
}

void ConsoleLogger::UnitTestStart(IUnitTestRunner& subject)
{
   
try
   
{
      wcout << 
"-----------------------------------------" << endl
            << 
"Test Runner: " << dynamic_cast<UnitTestRunner&>(subject).ClassNameIs() << endl
            << 
"-----------------------------------------" << endl
            << endl
            << 
"Unit Test Started" << endl;
   
}
   
catch( std::bad_cast e )
   {
      _ASSERT(
0)// something is wrong!
   
}
}

void ConsoleLogger::Failed(IUnitTestRunner& subject)
{
   
try
   
{
      wcout << dynamic_cast<UnitTestRunner&>(subject).TestMsgIs() << endl
;
   
}
   
catch(std::bad_cast e)
   {
      _ASSERT(
0)// something is wrong!
   
}
}

void ConsoleLogger::Passed(IUnitTestRunner& subject)
{
   
try
   
{
      wcout << dynamic_cast<UnitTestRunner&>(subject).TestMsgIs() << endl
;
   
}
   
catch(std::bad_cast e)
   {
      _ASSERT(
0)// something is wrong!
   
}
}

void ConsoleLogger::Exception(IUnitTestRunner& subject)
{
   
try
   
{
      wcout << dynamic_cast<UnitTestRunner&>(subject).TestMsgIs() << endl
;
   
}
   
catch(std::bad_cast e)
   {
      _ASSERT(
0)// something is wrong!
   
}
}

void ConsoleLogger::UnitTestEnd(IUnitTestRunner& subject)
{
   
try
   
{
      wcout << 
"Unit Test complete. " 
            
<< endl << endl
            << 
"Test Summary: Tests(" 
            
<< dynamic_cast<UnitTestRunner&>(subject).TestCountIs() << ")"
            
<< " Fails(" 
            
<< dynamic_cast<UnitTestRunner&>(subject).FailedCountIs() << ")"
            
<< " Exceptions("
            
<< dynamic_cast<UnitTestRunner&>(subject).ExceptionCountIs() << ")"
            
<< endl << endl;

      
m_nTestRun    +dynamic_cast<UnitTestRunner&>(subject).TestCountIs();
      
m_nFailed     +dynamic_cast<UnitTestRunner&>(subject).FailedCountIs();
      
m_nExceptions +dynamic_cast<UnitTestRunner&>(subject).ExceptionCountIs();
   
}
   
catch(std::bad_cast e)
   {
      _ASSERT(
0)// something is wrong!
   
}
}
Back

Copyright © 2007 Rajinder Yadav, All rights reserved