testexecfw/symbianunittestfw/sutfw/sutfwcore/sutfwoutput/src/symbianunittestoutputastext.cpp
author Johnson Ma <johnson.ma@nokia.com>
Mon, 29 Mar 2010 14:46:27 +0800
changeset 1 bbd31066657e
parent 0 3e07fef1e154
permissions -rw-r--r--
publish symbianunittest v1.1.0

/*
* 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:  
*
*/

#include "symbianunittestresult.h"
#include "symbianunittestfailure.h"
#include "symbianunittestfileoutputwriter.h"
#include "symbianunittestoutputastext.h"

_LIT8( KTxtExecutedTests, "\r\n %d unit tests executed " );
_LIT8( KTxtPassedTests, " Passed tests: %d\r\n\r\n" );
_LIT8( KTxtPassedTest,  "   Test: " );
_LIT8( KTxtFailedTests, " Failed tests: %d\r\n\r\n" );
_LIT8( KTxtFailureTest, "   Test: " );
_LIT8( KTxtFailureFile, "   File: " );
_LIT8( KTxtFailureLine, "   Line: %d\r\n" );
_LIT8( KTxtFailureReason, "   Reason: " );
_LIT8( KLineEnd, "\r\n" );

// -----------------------------------------------------------------------------
//
// -----------------------------------------------------------------------------
//
CSymbianUnitTestOutputAsText* CSymbianUnitTestOutputAsText::NewL(
    const TDesC& aFileName )
    {
    CSymbianUnitTestOutputAsText* self = 
        new( ELeave )CSymbianUnitTestOutputAsText;
    CleanupStack::PushL( self );
    self->ConstructL( aFileName );
    CleanupStack::Pop( self );
    return self;
    }

// -----------------------------------------------------------------------------
//
// -----------------------------------------------------------------------------
//
CSymbianUnitTestOutputAsText::CSymbianUnitTestOutputAsText()
    {
    }

// -----------------------------------------------------------------------------
//
// -----------------------------------------------------------------------------
//
CSymbianUnitTestOutputAsText::~CSymbianUnitTestOutputAsText()
    {
    }

// -----------------------------------------------------------------------------
// From CSymbianUnitTestOutputFormatter
// -----------------------------------------------------------------------------
//
const TDesC& CSymbianUnitTestOutputAsText::FileExtension() const
    {
    return KTextOutput;
    }

// -----------------------------------------------------------------------------
// From CSymbianUnitTestOutputFormatter
// -----------------------------------------------------------------------------
//
void CSymbianUnitTestOutputAsText::PrintHeaderL( 
    CSymbianUnitTestResult& aResult )
    {
    iOutputWriter->WriteL( KTxtExecutedTests, aResult.TestCount() );
    iOutputWriter->WriteDateAndTimeL();
    iOutputWriter->WriteL( KLineEnd );
    iOutputWriter->WriteL( KLineEnd );
    }

// -----------------------------------------------------------------------------
// From CSymbianUnitTestOutputFormatter
// -----------------------------------------------------------------------------
//
void CSymbianUnitTestOutputAsText::PrintPassedTestsL( 
    CSymbianUnitTestResult& aResult )
    {
    iOutputWriter->WriteL( KTxtPassedTests, aResult.PassedTestCount() );
    const CDesCArray& testCaseNames = aResult.TestCaseNames();
    for ( TInt i=0; i < testCaseNames.Count(); i++ )
        {
        iOutputWriter->WriteL( KTxtPassedTest);
        iOutputWriter->WriteL( testCaseNames[i]);
        iOutputWriter->WriteL( KLineEnd );
        }
    }

// -----------------------------------------------------------------------------
// From CSymbianUnitTestOutputFormatter
// -----------------------------------------------------------------------------
//
void CSymbianUnitTestOutputAsText::PrintFailedTestsL( 
    CSymbianUnitTestResult& aResult ) 
    {
    iOutputWriter->WriteL( KTxtFailedTests, aResult.Failures().Count() );
    for ( TInt i=0; i < aResult.Failures().Count(); i++ )
        {
        PrintFailureDetailsL( *( aResult.Failures()[ i ] ) );
        }
    }

// -----------------------------------------------------------------------------
// From CSymbianUnitTestOutputFormatter
// -----------------------------------------------------------------------------
//
void CSymbianUnitTestOutputAsText::PrintFooterL()
    {
    }

// -----------------------------------------------------------------------------
//
// -----------------------------------------------------------------------------
//
void CSymbianUnitTestOutputAsText::PrintFailureDetailsL( 
    CSymbianUnitTestFailure& aTestFailure )
    {
    iOutputWriter->WriteL( KTxtFailureTest );
    iOutputWriter->WriteL( aTestFailure.TestName() );
    iOutputWriter->WriteL( KLineEnd );
    if ( aTestFailure.FileName().Length() > 0 )
        {
        iOutputWriter->WriteL( KTxtFailureFile );
        iOutputWriter->WriteL( aTestFailure.FileName() );
        iOutputWriter->WriteL( KLineEnd );
        }
    if ( aTestFailure.LineNumber() >= 0 )
        {
        iOutputWriter->WriteL( KTxtFailureLine, aTestFailure.LineNumber() );
        }
    iOutputWriter->WriteL( KTxtFailureReason );
    iOutputWriter->WriteL( aTestFailure.FailureMessage() );
    iOutputWriter->WriteL( KLineEnd );
    iOutputWriter->WriteL( KLineEnd );
    }