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

Email服务器

开发平台:

Delphi

  1. unit XPDUnitMacrosTests;
  2. interface
  3. uses
  4.   TestFrameWork,
  5.   XPDUnitMacros;
  6. type
  7.   TXPDUnitMacrosTests = class(TTestCase)
  8.   private
  9.     FOutput: string;
  10.     FMacros: IXPDUnitMacros;
  11.   protected
  12.    procedure SetUp; override;
  13. //   procedure TearDown; override;
  14.   published
  15.     procedure EnumerationLimits;
  16.     procedure EnvEmpty;
  17.     procedure EnvSystemRoot;
  18.     procedure EnvNoMatch;
  19.     procedure EnvNewVar;
  20.     procedure FilePathEmpty;
  21.     procedure FileNameEmpty;
  22.     procedure FileStemEmpty;
  23.     procedure FileExtEmpty;
  24.     procedure FilePathAbsPath;
  25.     procedure FileNameAbsPath;
  26.     procedure FileStemAbsPath;
  27.     procedure FileExtAbsPath;
  28.     procedure FilePathFileNameWithSpace;
  29.     procedure FileNameFileNameWithSpace;
  30.     procedure FileStemFileNameWithSpace;
  31.     procedure FileExtFileNameWithSpace;
  32.     procedure FilePathFileNameOnly;
  33.     procedure FileNameFileNameOnly;
  34.     procedure FileStemFileNameOnly;
  35.     procedure FileExtFileNameOnly;
  36.     procedure FilePathExtraDelim;
  37.     procedure FileNameExtraDelim;
  38.     procedure FileStemExtraDelim;
  39.     procedure FileExtExtraDelim;
  40.     procedure FileNamePathOnly;
  41.     procedure FileExtNoExt;
  42.     procedure FileStemNoStem;
  43.     procedure FileExtNoStem;
  44.     procedure ContextMacros;
  45.   end;
  46. implementation
  47. uses
  48.   Windows;
  49. { TXPDUnitMacrosTests }
  50. procedure TXPDUnitMacrosTests.EnvEmpty;
  51. begin
  52.   Check(FMacros.Methods(dmEnviroVar)('', FOutput) = false);
  53. end;
  54. procedure TXPDUnitMacrosTests.FileExtEmpty;
  55. begin
  56.   Check((FMacros.Methods(dmFileExt)('', FOutput) = true)
  57.     and (FOutput = ''));
  58. end;
  59. procedure TXPDUnitMacrosTests.FileNameEmpty;
  60. begin
  61.   Check((FMacros.Methods(dmFileName)('', FOutput) = true)
  62.     and (FOutput = ''));
  63. end;
  64. procedure TXPDUnitMacrosTests.FilePathEmpty;
  65. begin
  66.   Check((FMacros.Methods(dmFilePath)('', FOutput) = true)
  67.     and (FOutput = ''));
  68. end;
  69. procedure TXPDUnitMacrosTests.FileStemEmpty;
  70. begin
  71.   Check((FMacros.Methods(dmFileStem)('', FOutput) = true)
  72.     and (FOutput = ''));
  73. end;
  74. procedure TXPDUnitMacrosTests.EnvSystemRoot;
  75. begin
  76.   Check(FMacros.Methods(dmEnviroVar)('SystemRoot',
  77.     FOutput) = true);
  78. end;
  79. procedure TXPDUnitMacrosTests.FileExtAbsPath;
  80. begin
  81.   Check((FMacros.Methods(dmFileExt)('c:My FolderMyFile.pas',
  82.     FOutput) = true) and (FOutput = '.pas'));
  83. end;
  84. procedure TXPDUnitMacrosTests.FileExtFileNameWithSpace;
  85. begin
  86.   Check((FMacros.Methods(dmFileExt)('c:MyFolderMy File.pas',
  87.     FOutput) = true) and (FOutput = '.pas'));
  88. end;
  89. procedure TXPDUnitMacrosTests.FileNameAbsPath;
  90. begin
  91.   Check((FMacros.Methods(dmFileName)('c:My FolderMyFile.pas',
  92.     FOutput) = true) and (FOutput = 'MyFile.pas'));
  93. end;
  94. procedure TXPDUnitMacrosTests.FileNameFileNameWithSpace;
  95. begin
  96.   Check((FMacros.Methods(dmFileName)('c:MyFolderMy File.pas',
  97.     FOutput) = true) and (FOutput = 'My File.pas'));
  98. end;
  99. procedure TXPDUnitMacrosTests.FilePathAbsPath;
  100. begin
  101.   Check((FMacros.Methods(dmFilePath)('c:My FolderMyFile.pas',
  102.     FOutput) = true) and (FOutput = 'c:My Folder'));
  103. end;
  104. procedure TXPDUnitMacrosTests.FilePathFileNameOnly;
  105. begin
  106.   Check((FMacros.Methods(dmFilePath)('MyFile.pas',
  107.     FOutput) = true) and (FOutput = ''));
  108. end;
  109. procedure TXPDUnitMacrosTests.FilePathFileNameWithSpace;
  110. begin
  111.   Check((FMacros.Methods(dmFilePath)('c:MyFolderMy File.pas',
  112.     FOutput) = true) and (FOutput = 'c:MyFolder'));
  113. end;
  114. procedure TXPDUnitMacrosTests.FileStemAbsPath;
  115. begin
  116.   Check((FMacros.Methods(dmFileStem)('c:My FolderMyFile.pas',
  117.     FOutput) = true) and (FOutput = 'MyFile'));
  118. end;
  119. procedure TXPDUnitMacrosTests.FileStemFileNameWithSpace;
  120. begin
  121.   Check((FMacros.Methods(dmFileStem)('c:MyFolderMy File.pas',
  122.     FOutput) = true) and (FOutput = 'My File'));
  123. end;
  124. procedure TXPDUnitMacrosTests.SetUp;
  125. begin
  126.   inherited;
  127.   FMacros := XPDUnitMacros.CreateXPDUnitMacros;
  128.   FOutput := '';
  129. end;
  130. procedure TXPDUnitMacrosTests.FileExtFileNameOnly;
  131. begin
  132.   Check((FMacros.Methods(dmFileExt)('MyFile.pas',
  133.     FOutput) = true) and (FOutput = '.pas'));
  134. end;
  135. procedure TXPDUnitMacrosTests.FileNameFileNameOnly;
  136. begin
  137.   Check((FMacros.Methods(dmFileName)('MyFile.pas',
  138.     FOutput) = true) and (FOutput = 'MyFile.pas'));
  139. end;
  140. procedure TXPDUnitMacrosTests.FileStemFileNameOnly;
  141. begin
  142.   Check((FMacros.Methods(dmFileStem)('MyFile.pas',
  143.     FOutput) = true) and (FOutput = 'MyFile'));
  144. end;
  145. procedure TXPDUnitMacrosTests.EnvNoMatch;
  146. begin
  147.   Check(FMacros.Methods(dmEnviroVar)('dasfas_wq12wxsf',
  148.     FOutput) = false);
  149. end;
  150. procedure TXPDUnitMacrosTests.EnvNewVar;
  151. begin
  152.   Windows.SetEnvironmentVariable('zxy321', 'blah');
  153.   Check((FMacros.Methods(dmEnviroVar)('zxy321',
  154.     FOutput) = true) and (FOutput = 'blah'));
  155. end;
  156. procedure TXPDUnitMacrosTests.FileNamePathOnly;
  157. begin
  158.   Check((FMacros.Methods(dmFileName)('c:MyFolder',
  159.     FOutput) = true) and (FOutput = ''));
  160. end;
  161. procedure TXPDUnitMacrosTests.FileExtNoExt;
  162. begin
  163.   Check((FMacros.Methods(dmFileExt)('c:MyFolderMyFile',
  164.     FOutput) = true) and (FOutput = ''));
  165. end;
  166. procedure TXPDUnitMacrosTests.FileStemNoStem;
  167. begin
  168.   Check((FMacros.Methods(dmFileStem)('c:MyFolder.pas',
  169.     FOutput) = true) and (FOutput = ''));
  170. end;
  171. procedure TXPDUnitMacrosTests.FileExtNoStem;
  172. begin
  173.   Check((FMacros.Methods(dmFileExt)('c:MyFolder.pas',
  174.     FOutput) = true) and (FOutput = '.pas'));
  175. end;
  176. procedure TXPDUnitMacrosTests.FilePathExtraDelim;
  177. begin
  178.   Check((FMacros.Methods(dmFilePath)('c:MyFolder\MyFile.pas',
  179.     FOutput) = true) and (FOutput = 'c:MyFolder\'));
  180. end;
  181. procedure TXPDUnitMacrosTests.FileExtExtraDelim;
  182. begin
  183.   Check((FMacros.Methods(dmFileExt)('c:MyFolder\MyFile.pas',
  184.     FOutput) = true) and (FOutput = '.pas'));
  185. end;
  186. procedure TXPDUnitMacrosTests.FileNameExtraDelim;
  187. begin
  188.   Check((FMacros.Methods(dmFileName)('c:MyFolder\MyFile.pas',
  189.     FOutput) = true) and (FOutput = 'MyFile.pas'));
  190. end;
  191. procedure TXPDUnitMacrosTests.FileStemExtraDelim;
  192. begin
  193.   Check((FMacros.Methods(dmFileStem)('c:MyFolder\MyFile.pas',
  194.     FOutput) = true) and (FOutput = 'MyFile'));
  195. end;
  196. procedure TXPDUnitMacrosTests.EnumerationLimits;
  197. begin
  198.   Check(System.Low(TXPDUnitMacro) = dmTestedClassName);
  199.   Check(System.High(TXPDUnitMacro) = dmEnviroVar);
  200.   CheckEquals(9, integer(dmEnviroVar));
  201.   Check(System.Low(TXPDUnitMethodMacro) = dmFilePath);
  202.   Check(System.High(TXPDUnitMethodMacro) = dmEnviroVar);
  203.   CheckEquals(5, integer(dmFilePath));
  204.   Check(System.Low(TXPDUnitValueMacro) = dmTestedClassName);
  205.   Check(System.High(TXPDUnitValueMacro) = dmProjectGroup);
  206.   CheckEquals(4, integer(dmProjectGroup));
  207.   Check(System.Low(TPDUnitContextValueMacro) = dmTestedClassName);
  208.   Check(System.High(TPDUnitContextValueMacro) = dmTestedMethodName);
  209.   CheckEquals(1, integer(dmTestedMethodName));
  210. end;
  211. procedure TXPDUnitMacrosTests.ContextMacros;
  212. begin
  213.   CheckEquals(FMacros.Text(dmTestedClassName),
  214.    FMacros.Values(dmTestedClassName), 'default tested class name');
  215.   CheckEquals(FMacros.Text(dmTestedMethodName),
  216.    FMacros.Values(dmTestedMethodName), 'default tested method name');
  217.   FMacros.SetContextValue(dmTestedClassName, 'AClassName');
  218.   CheckEquals('AClassName', FMacros.Values(dmTestedClassName),
  219.     'tested class name = AClassName');
  220.   CheckEquals(FMacros.Text(dmTestedMethodName),
  221.     FMacros.Values(dmTestedMethodName),
  222.     'default tested method name after tested class name set');
  223.   FMacros.SetContextValue(dmTestedMethodName, 'AMethodName');
  224.   CheckEquals('AClassName', FMacros.Values(dmTestedClassName),
  225.     'tested class name = AClassName');
  226.   CheckEquals('AMethodName', FMacros.Values(dmTestedMethodName),
  227.    'tested method name = AMethodName');
  228.   FMacros.SetContextValue(dmTestedClassName, '');
  229.   CheckEquals(FMacros.Text(dmTestedClassName),
  230.    FMacros.Values(dmTestedClassName), 'default tested class name');
  231.   CheckEquals('AMethodName', FMacros.Values(dmTestedMethodName),
  232.    'tested method name = AMethodName');
  233.   FMacros.SetContextValue(dmTestedMethodName, '');
  234.   CheckEquals(FMacros.Text(dmTestedClassName),
  235.    FMacros.Values(dmTestedClassName), 'default tested class name');
  236.   CheckEquals(FMacros.Text(dmTestedMethodName),
  237.    FMacros.Values(dmTestedMethodName), 'default tested method name');
  238. end;
  239. initialization
  240.   TestFramework.RegisterTest('XPDUnitMacrosTests Suite',
  241.     TXPDUnitMacrosTests.Suite);
  242. end.