Blame | Last modification | View Log | RSS feed
//---------------------------------------------------------------------------#ifndef RunTestsH#define RunTestsH//---------------------------------------------------------------------------#include <Classes.hpp>#include <Controls.hpp>#include <StdCtrls.hpp>#include <Forms.hpp>#include "Grids_ts.hpp"#include "TSDBGrid.hpp"#include "TSGrid.hpp"#include <Buttons.hpp>#include <ComCtrls.hpp>#include <ExtCtrls.hpp>#include <ToolWin.hpp>#include <ADODB.hpp>#include <DB.hpp>#include "DataModule.h"#include "TXMLSchema.h"#include "AdvProgressBar.hpp"#include <vector>#include "Main.h"//---------------------------------------------------------------------------class TRunTestsForm : public TForm{__published: // IDE-managed ComponentsTToolBar *ToolBar1;TToolButton *ToolButton1;TSpeedButton *GenerateTransactions;TToolButton *ToolButton3;TPanel *Panel1;TSplitter *Splitter1;TPanel *Panel2;TToolButton *ToolButton4;TStatusBar *StatusBar;TTreeView *TestCaseTxnTreeView;TPanel *TestCaseTitle;TComboBox *GenerationTargetComboBox;TToolButton *ToolButton6;TSpeedButton *SaveTxnsToFile;TSpeedButton *SpeedButton1;TPageControl *PageControl1;TTabSheet *TabSheet3;TtsGrid *PayloadGrid;void __fastcall TestCaseTxnTreeViewChange(TObject *Sender,TTreeNode *Node);void __fastcall SaveTxnsToFileClick(TObject *Sender);void __fastcall FormCreate(TObject *Sender);void __fastcall StatusBarResize(TObject *Sender);void __fastcall GenerateTransactionsClick(TObject *Sender);private: // User declarationsAnsiString m_currentproject;int m_currentiteration;AnsiString m_testcase;vector< AnsiString > m_xml_schemas;TXMLSchema * m_XMLSchema;AnsiString m_user_gen_dir;TProgressBar * m_progressBarOld;TAdvProgressBar * m_progressBar;class TransactionArtefact{public:TransactionArtefact( TXMLSchema & schema,const string & name,const unsigned short & udType ): m_schema( &schema ),m_name( name ),m_udType( udType ){}~TransactionArtefact(){m_schema->Destroy( m_handle );m_schema = 0; // We don't own this.}void setHandle( const string & handle ){if ( m_handle.length() ){m_schema->Destroy( m_handle );;}m_handle = handle;}const string & getHandle( void ) const{return ( m_handle );}IterationParams & getIterationParameters( void ){return ( m_parameters );}const string & getName( void ) const{return ( m_name );}const unsigned short & getUdType( void ) const{return ( m_udType );}private:TransactionArtefact();TransactionArtefact( const TransactionArtefact & );TransactionArtefact & operator=( const TransactionArtefact & );private:TXMLSchema * m_schema;string m_handle; // handle to XML structure.string m_name; // name of the XML structure.unsigned short m_udType; // The ud type.IterationParams m_parameters; // parameters for transaction.};typedef map< int, TransactionArtefact * > TransactionSchedule;static const bool findSchema( vector< AnsiString > & xmlSchemas,TXMLSchema & schema,const AnsiString & currentProject,const int & currentIteration );void buildTranactionMap( TXNIndexMap & transactions,const AnsiString & currentProject,const int & currentIteration );void buildHeader( string & handle,TXMLSchema & schema,vector< pair< string, string > > & macros,const AnsiString & currentProject,const int & currentIteration );static const bool isMacro( const string & value );static AnsiString & substituteMacro( AnsiString & value,const unsigned short & udType );static void substituteMacros( string & handle,TXMLSchema & schema,const vector< pair< string, string > > & macros,const unsigned short & udType );void generateScenario( const unsigned int & testscenario_no,TXNIndexMap & mass_txns,const bool & isTds,string & headerHandle,TransactionSchedule & transactionSchedule,const vector< pair< string, string > > & macros,const unsigned int & repeatCount,const unsigned int & total,const int & batchSk );// TransactionArtefact * getTransactionArtefact(// TransactionCache & transactionCache,// const int & transactionSpecification,// const string & structureName,// const int & currentIteration,// TXMLSchema & schema,// const int & testScenario );static void loadParameters(IterationParams & parameters,const int & testScenario,const int & transactionSpecification );static void readTransactionSchedule(TADOConnection * database,TXMLSchema & schema,const int & currentIteration,TXNIndexMap & massTransactions,const int & testScenario,TransactionSchedule & transactionSchedule );void generateTestCase( void );bool __fastcall InitialiseTxnStructure(const string &structure_handle, int subscript, IterationParams &structure_params);public: // User declarations__fastcall TRunTestsForm(TComponent* Owner);void ShowForm(const AnsiString &testcase, const AnsiString &testname, const AnsiString &project, int currentiteration, const AnsiString &user_gen_dir, TXMLSchema *XMLSchema);};//---------------------------------------------------------------------------extern PACKAGE TRunTestsForm *RunTestsForm;//---------------------------------------------------------------------------#endif