XPDUnitTestClassWizard.pas
上传用户:yjb1804
上传日期:2021-01-30
资源大小:3105k
文件大小:4k
源码类别:

Email服务器

开发平台:

Delphi

  1. unit XPDUnitTestClassWizard;
  2. {
  3.  $Source: /cvsroot/dunit/dunit/Contrib/DUnitWizard/Source/DelphiExperts/DUnitProject/XPDUnitTestClassWizard.pas,v $
  4.  $Revision: 1.2 $
  5.  $Date: 2004/05/03 15:07:16 $
  6.  Last amended by $Author: pvspain $
  7.  $State: Exp $
  8.  XPDUnitTestClassWizard:
  9.  Copyright (c) 2003 by The Excellent Programming Company Pty Ltd
  10.  (Australia) (ABN 27 005 394 918). All rights reserved.
  11.  Contact Paul Spain via email: paul@xpro.com.au
  12.  This unit is free software; you can redistribute it and/or
  13.  modify it under the terms of the GNU Lesser General Public
  14.  License as published by the Free Software Foundation; either
  15.  version 2.1 of the License, or (at your option) any later version.
  16.  This unit is distributed in the hope that it will be useful,
  17.  but WITHOUT ANY WARRANTY; without even the implied warranty of
  18.  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  19.  Lesser General Public License for more details.
  20.  You should have received a copy of the GNU Lesser General Public
  21.  License along with this unit; if not, the license can be viewed at:
  22.  http://www.gnu.org/copyleft/lesser.html
  23.  or write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
  24.  Boston, MA  02111-1307  USA
  25. }
  26. interface
  27. {$I JEDI.inc}
  28. uses
  29.   ToolsAPI;
  30. // procedure Register;
  31. function TestClassWizard: IOTAWizard;
  32. implementation
  33. uses
  34. {$IFNDEF DELPHI6_UP}
  35.   Clipbrd,
  36. {$ELSE}
  37.   QClipbrd,
  38. {$ENDIF}
  39.   XPDUnitTestClass,
  40.   XPDUnitCommon,
  41.   XPDUnitSetup,         // CreateXPDUnitBehaviours/Parameters
  42.   SysUtils,             // FmtStr()
  43.   Windows,              // HICON, LoadIcon(), ...
  44.   XP_OTAWizards,        // TXP_OTAWizard
  45.   XP_OTAUtils,          // GetCurrentModule
  46.   XPTestedUnitUtils,    // IXPParserTree
  47.   XPTextTemplates;      // IXPDUnitTextTemplates
  48. // IMPORTANT: Include resources for this unit
  49. {$R *.res}
  50. const CVSID: string = '$Header: /cvsroot/dunit/dunit/Contrib/DUnitWizard/Source/DelphiExperts/DUnitProject/XPDUnitTestClassWizard.pas,v 1.2 2004/05/03 15:07:16 pvspain Exp $';
  51. const DisplayName = 'DUnit TestClass';
  52. const AuthorName = 'Paul Spain';
  53. const WizardComment = 'test selected class';
  54. //////////////////////////////////////////////////////////////////////////////
  55. //     Wizard declaration
  56. //////////////////////////////////////////////////////////////////////////////
  57. type
  58.   TTestClassWizard = class(TXP_OTAWizard)
  59.   protected
  60.     function GetAuthor: string; override;
  61.     // IOTAWizard implementation
  62.     function GetName: string; override;
  63.     procedure Execute; override;
  64.   end;
  65. //////////////////////////////////////////////////////////////////////////////
  66. //     Wizard entry points
  67. //////////////////////////////////////////////////////////////////////////////
  68. {
  69. procedure Register;
  70.   begin
  71.   ToolsAPI.RegisterPackageWizard(TestClassWizard)
  72.   end;
  73. }
  74. function TestClassWizard: IOTAWizard;
  75. begin
  76.   Result := TTestClassWizard.Create;
  77. end;
  78. //////////////////////////////////////////////////////////////////////////////
  79. //     Wizard implementation
  80. //////////////////////////////////////////////////////////////////////////////
  81. function TTestClassWizard.GetName: string;
  82. begin
  83.   Result := DisplayName;
  84. end;
  85. function TTestClassWizard.GetAuthor: string;
  86. begin
  87.   Result := AuthorName;
  88. end;
  89. procedure TTestClassWizard.Execute;
  90. var
  91.   TextTemplates: IXPDUnitTextTemplates;
  92.   Parameters: IXPDUnitParameters;
  93.   TestClass: IXPParserTree;
  94.   Behaviours: IXPDUnitBehaviours;
  95.   ClassText: string;
  96. begin
  97.   if XPDUnitTestClass.ShowXPDUnitTestClassForm(TestClass, Parameters,
  98.     Behaviours) then
  99.   begin
  100.     // Test class is filtered IXPParserTree. Filter excludes all but class
  101.     // containing current caret (text cursor) position in current IDE unit
  102.     // Class has also been filtered so its output ready (all methods in
  103.     // published section) and just requires parameter substitution for
  104.     // class and method names.
  105.     TextTemplates := XPTextTemplates.CreateXPDUnitTextTemplates(TestClass,
  106.       Parameters, Behaviours);
  107.     ClassText := XPDUnitCommon.TestClassDeclParameter;
  108.     TextTemplates.ReplaceTestClassDeclBlockReference(ClassText);
  109.     Clipboard.AsText := WideString(ClassText);
  110.   end;
  111. end;
  112. end.