Rev 2263 | Blame | Compare with Previous | Last modification | View Log | RSS feed
//## begin module%1.7%.codegen_version preserve=yes// Read the documentation to learn more about C++ code generator// versioning.//## end module%1.7%.codegen_version//## begin module%42030C2C00B8.cm preserve=no//## end module%42030C2C00B8.cm//## begin module%42030C2C00B8.cp preserve=no// C O P Y R I G H T N O T I C E// This material is confidential to ERG and may not be disclosed in whole// or in part to any third party nor used in any manner whatsoever other// than for the purposes expressly consented to by ERG in writing.//// This material is also copyright and may not be reproduced, stored in a// retrieval system or transmitted in any form or by any means in whole or// in part without the express written consent of ERG.//## end module%42030C2C00B8.cp//## Module: TestScenario%42030C2C00B8; Pseudo Package body//## Subsystem: MASS::Dev::Tools::TxnTestManager::src%41F5A79001E4//## Source file: Z:\MASS_Dev\Tools\TxnTestManager\src\TestScenario.cpp//## begin module%42030C2C00B8.additionalIncludes preserve=no//## end module%42030C2C00B8.additionalIncludes//## begin module%42030C2C00B8.includes preserve=yes#pragma warn -com#include <LoggingMacros.h>#pragma warn +com//## end module%42030C2C00B8.includes// Iteration#include "Iteration.h"// TestScenario#include "TestScenario.h"// TransactionSpecification#include "TransactionSpecification.h"// EvaluationContext#include "EvaluationContext.h"// TransactionStream#include "TransactionStream.h"// DefinedVariable#include "DefinedVariable.h"//## begin module%42030C2C00B8.additionalDeclarations preserve=yes#include <locale>//## end module%42030C2C00B8.additionalDeclarations// Class TestScenario//## Operation: TestScenario%4203231D030ETestScenario::TestScenario (const int &scenario, Iteration& iteration)//## begin TestScenario::TestScenario%4203231D030E.hasinit preserve=no: m_batchSize(0),m_repeatCount(0),m_iteration(&iteration)//## end TestScenario::TestScenario%4203231D030E.hasinit//## begin TestScenario::TestScenario%4203231D030E.initialization preserve=yes, m_scenario( scenario )//## end TestScenario::TestScenario%4203231D030E.initialization{//## begin TestScenario::TestScenario%4203231D030E.body preserve=yes//## end TestScenario::TestScenario%4203231D030E.body}TestScenario::~TestScenario(){//## begin TestScenario::~TestScenario%42030C2C00B8_dest.body preserve=yesfor ( std::map< int, TransactionSpecification * >::iteratorwhere = m_transaction.begin();where != m_transaction.end();++where ){delete where->second;where->second = 0;}m_iteration = 0; // We don't own this object.//## end TestScenario::~TestScenario%42030C2C00B8_dest.body}//## Other Operations (implementation)//## Operation: buildBatchName%4208537A00B6std::string & TestScenario::buildBatchName (std::string &batchName, const std::string &scenarioName){//## begin TestScenario::buildBatchName%4208537A00B6.body preserve=yesbatchName.erase();batchName.reserve( scenarioName.length() );for ( std::string::size_type index = 0; index < scenarioName.length(); ++index ){if ( std::isalnum( scenarioName[ index ] ) ){batchName += scenarioName[ index ];}else{batchName += '_';}}return ( batchName );//## end TestScenario::buildBatchName%4208537A00B6.body}//## Operation: defineVariable%425B47DD004FDefinedVariable& TestScenario::defineVariable (const std::string &variableName){//## begin TestScenario::defineVariable%425B47DD004F.body preserve=yesstd::map< std::string, DefinedVariable * >::const_iteratorinstance = m_variable.find( variableName );if ( instance != m_variable.end() ){return ( *instance->second );}else{DefinedVariable * object = 0;try{object = new DefinedVariable( variableName );if ( m_variable.insert(std::map< std::string, DefinedVariable * >::value_type(variableName,object ) ).second ){return ( *object );}else{MTHROW( std::runtime_error, \"Cannot add variable \"" \<< variableName \<< "\" to defined variable table." );}}catch ( ... ){delete object;object = 0;throw;}}//## end TestScenario::defineVariable%425B47DD004F.body}//## Operation: generate%420455D80390const bool TestScenario::generate (TransactionStream& stream, const bool &generateHeaders, EvaluationContext& evaluationContext){//## begin TestScenario::generate%420455D80390.body preserve=yesbool generated = true;if ( m_repeatCount ){/* batch name now associated with tets case not test stepstd::string batchName;stream.newBatch(m_batchSize,buildBatchName( batchName, m_scenarioName ) );*/for ( unsigned repeat = 1; repeat <= m_repeatCount && generated; ++repeat ){evaluationContext.setScenarioIndex( repeat );for ( std::vector< TransactionSpecification * >::iteratorwhere = m_orderedTransactionCollection.begin();where != m_orderedTransactionCollection.end();++where ){if ( !(*where)->generate(stream,generateHeaders,evaluationContext ) ){generated = false;break;}}}}return ( generated );//## end TestScenario::generate%420455D80390.body}//## Operation: getBatchSize%42042C5E0029const unsigned & TestScenario::getBatchSize () const{//## begin TestScenario::getBatchSize%42042C5E0029.body preserve=yesreturn ( m_batchSize );//## end TestScenario::getBatchSize%42042C5E0029.body}//## Operation: getIteration%420460EA003Cconst Iteration & TestScenario::getIteration () const{//## begin TestScenario::getIteration%420460EA003C.body preserve=yesreturn ( *m_iteration );//## end TestScenario::getIteration%420460EA003C.body}//## Operation: getRepeatCount%42042C5D02F8const unsigned & TestScenario::getRepeatCount () const{//## begin TestScenario::getRepeatCount%42042C5D02F8.body preserve=yesreturn ( m_repeatCount );//## end TestScenario::getRepeatCount%42042C5D02F8.body}//## Operation: getScenarioName%42084D3A0270const std::string & TestScenario::getScenarioName () const{//## begin TestScenario::getScenarioName%42084D3A0270.body preserve=yesreturn ( m_scenarioName );//## end TestScenario::getScenarioName%42084D3A0270.body}//## Operation: getScenarioNumber%4203252300A6const int & TestScenario::getScenarioNumber () const{//## begin TestScenario::getScenarioNumber%4203252300A6.body preserve=yesreturn ( m_scenario );//## end TestScenario::getScenarioNumber%4203252300A6.body}//## Operation: getTransactionCount%420890BF03BEconst unsigned TestScenario::getTransactionCount () const{//## begin TestScenario::getTransactionCount%420890BF03BE.body preserve=yesreturn ( m_transaction.size() * m_repeatCount );//## end TestScenario::getTransactionCount%420890BF03BE.body}//## Operation: getTransactionSpecification%420328E00043TransactionSpecification& TestScenario::getTransactionSpecification (const int &transaction, const std::string &payloadStructureName){//## begin TestScenario::getTransactionSpecification%420328E00043.body preserve=yesstd::map< int, TransactionSpecification * >::const_iteratorinstance = m_transaction.find( transaction );if ( instance != m_transaction.end() ){return ( *instance->second );}else{TransactionSpecification * object = 0;try{object = new TransactionSpecification( transaction, payloadStructureName, *this );m_orderedTransactionCollection.push_back( object );if ( m_transaction.insert(std::map< int, TransactionSpecification * >::value_type(transaction,object ) ).second ){return ( *object );}else{MTHROW( std::runtime_error, \"Cannot add transaction \"" \<< transaction \<< "\" to scenario " \<< m_scenario \<< '.' );}}catch ( ... ){delete object;object = 0;throw;}}//## end TestScenario::getTransactionSpecification%420328E00043.body}//## Operation: getVariable%425B47F50012DefinedVariable& TestScenario::getVariable (const std::string &variableName){//## begin TestScenario::getVariable%425B47F50012.body preserve=yesstd::map< std::string, DefinedVariable * >::const_iteratorinstance = m_variable.find( variableName );if ( instance != m_variable.end() ){return ( *instance->second );}MTHROW( std::runtime_error, \"Variable \"" \<< variableName \<< "\" is not defined." );//## end TestScenario::getVariable%425B47F50012.body}//## Operation: isVariable%425B4B6A01C1const bool TestScenario::isVariable (const std::string &symbol) const{//## begin TestScenario::isVariable%425B4B6A01C1.body preserve=yesreturn ( m_variable.find( symbol ) != m_variable.end() );//## end TestScenario::isVariable%425B4B6A01C1.body}//## Operation: setBatchSize%42042CF100D5const unsigned & TestScenario::setBatchSize (const unsigned &value){//## begin TestScenario::setBatchSize%42042CF100D5.body preserve=yesreturn ( m_batchSize = value );//## end TestScenario::setBatchSize%42042CF100D5.body}//## Operation: setRepeatCount%42042CF100E5const unsigned & TestScenario::setRepeatCount (const unsigned &value){//## begin TestScenario::setRepeatCount%42042CF100E5.body preserve=yesreturn ( m_repeatCount = value );//## end TestScenario::setRepeatCount%42042CF100E5.body}//## Operation: setScenarioName%42084D300222std::string & TestScenario::setScenarioName (const std::string &value){//## begin TestScenario::setScenarioName%42084D300222.body preserve=yesreturn ( m_scenarioName = value );//## end TestScenario::setScenarioName%42084D300222.body}// Additional Declarations//## begin TestScenario%42030C2C00B8.declarations preserve=yes//## end TestScenario%42030C2C00B8.declarations//## begin module%42030C2C00B8.epilog preserve=yes//## end module%42030C2C00B8.epilog