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

Email服务器

开发平台:

Delphi

  1. unit TestedUnitParserTest_1;
  2. interface
  3. uses
  4.   TestFrameWork,
  5.   XPTestedUnitParser,
  6.   Classes;          // TStream;
  7. function GlobalFunction1: integer;
  8. procedure GlobalProcedure1;
  9. type
  10.   TXPStubClass1 = class(TTestCase)
  11.     procedure StubPublishedMethod(const idx: integer);
  12.   private
  13.     FParser: IXPTestedUnitParser;
  14.     FStream: TStream;
  15.     property PrivateProperty1;
  16.     procedure StubPrivateMethod;
  17.     property PrivateProperty2;
  18.   public
  19.     procedure StubPublicMethod;
  20.     class procedure StubPublicClassMethod;
  21.     protected procedure SetUp; override;
  22.     procedure TearDown; override;
  23.   published
  24.     property PublishedProperty1;
  25.     property PublishedProperty2;
  26.     procedure TestParse;
  27.     procedure TestGetError;
  28.     procedure TestExistsMethods;
  29.     procedure TestInitiallyEmptyMethods;
  30.     procedure TestMethodCount;
  31.     procedure TestReParse;
  32.     property PublishedProperty3;
  33.     procedure TestPrivateMethodCount;
  34.     procedure TestProtectedMethodCount;
  35.     procedure TestPublicMethodCount;
  36.     procedure TestPublishedMethodCount;
  37.   end;
  38.   TTClass = class of TXPStubClass1;
  39.   TXPStubClass6 = class(TXPStubClass5, IXPTestedUnitParser, IUnknown);
  40.   TXPStubClass5 = class;
  41.   TXPStubClass2 = class
  42.     procedure StubPublishedMethod;
  43.   private
  44.     FParser: IXPTestedUnitParser;
  45.     FStream: TStream;
  46.     procedure StubPrivateMethod(const idx: integer);
  47.   public
  48.     procedure StubPublicMethod;
  49.     class procedure StubPublicClassMethod;
  50.     property PublicProperty1;
  51.     protected procedure SetUp; override;
  52.     procedure TearDown; override;
  53.   published
  54.     procedure TestParse;
  55.     procedure TestGetError;
  56.     procedure TestExistsMethods;
  57.     procedure TestInitiallyEmptyMethods;
  58.     property PublishedProperty1;
  59.     property PublishedProperty2;
  60.     procedure TestMethodCount;
  61.     procedure TestPrivateMethodCount;
  62.     procedure TestProtectedMethodCount;
  63.     procedure TestPublicMethodCount;
  64.     procedure TestPublishedMethodCount;
  65.   end;
  66. type
  67.   TProceduralType1 = procedure;
  68. procedure GlobalProcedure2;
  69. function GlobalFunction2: integer;
  70. implementation
  71. uses
  72.   XPTestedUnitUtils,
  73.   SysUtils;
  74. type
  75.   TXPStubClass3 = class
  76.     procedure StubPublishedMethod;
  77.   private
  78.     FParser: IXPTestedUnitParser;
  79.     FStream: TStream;
  80.     procedure StubPrivateMethod;
  81.   public
  82.     procedure StubPublicMethod;
  83.     class procedure StubPublicClassMethod;
  84.     property PublicProperty1;
  85.     protected procedure SetUp; override;
  86.     procedure TearDown; override;
  87.   published
  88.     procedure TestParse;
  89.     procedure TestGetError;
  90.     procedure TestExistsMethods;
  91.     procedure TestInitiallyEmptyMethods;
  92.     property PublishedProperty1;
  93.     property PublishedProperty2;
  94.     procedure TestMethodCount;
  95.     procedure TestPrivateMethodCount;
  96.     procedure TestProtectedMethodCount;
  97.     procedure TestPublicMethodCount;
  98.     procedure TestPublishedMethodCount;
  99.   end;
  100.   TXPStubClass4 = class(TXPStubClass3);
  101. { TXPStubClass1 }
  102. procedure TXPStubClass1.SetUp;
  103. begin
  104.   inherited;
  105.   FParser := XPTestedUnitParser.CreateXPTestedUnitParser;
  106.   FStream := TFileStream.Create('XPTestedUnitParserTests.pas', fmOpenRead);
  107. end;
  108. procedure TXPStubClass1.TearDown;
  109. begin
  110.   FStream.Free;
  111.   FParser := nil;
  112.   inherited;
  113. end;
  114. procedure TXPStubClass1.TestInitiallyEmptyMethods;
  115. var
  116.   MethodNode: TXPMethodNode;
  117. begin
  118.   FParser.Classes.Iterator.Rest;
  119.   Check(not FParser.Classes.Iterator.Next(MethodNode));
  120. end;
  121. procedure TXPStubClass1.TestExistsMethods;
  122. begin
  123.   Check(FParser.Classes.Iterator <> nil);
  124. end;
  125. procedure TXPStubClass1.TestGetError;
  126. var
  127.   Description: string;
  128.   Error: TXPParserError;
  129. begin
  130.   FParser.GetError(Description, Error);
  131.   Check(Error = peNone);
  132. end;
  133. procedure TXPStubClass1.TestParse;
  134. begin
  135.   Check(FParser.Parse(FStream));
  136. end;
  137. procedure TXPStubClass1.TestMethodCount;
  138. var
  139.   MethodNode: TXPMethodNode;
  140.   Count: integer;
  141. begin
  142.   Count := 0;
  143.   FParser.Parse(FStream);
  144.   FParser.Classes.Iterator.Reset;
  145.   while FParser.Classes.Iterator.Next(MethodNode) do
  146.     System.Inc(Count);
  147.   CheckEquals(MethodCount, Count);
  148. end;
  149. procedure TXPStubClass1.TestPrivateMethodCount;
  150. var
  151.   MethodNode: TXPMethodNode;
  152.   Count: integer;
  153. begin
  154.   Count := 0;
  155.   FParser.Parse(FStream);
  156.   FParser.Classes.Iterator.Reset;
  157.   while FParser.Classes.Iterator.Next(MethodNode) do
  158.     if MethodNode.Visibility = cvPrivate then
  159.       System.Inc(Count);
  160.   CheckEquals(PrivateMethodCount, Count);
  161. end;
  162. procedure TXPStubClass1.TestProtectedMethodCount;
  163. var
  164.   MethodNode: TXPMethodNode;
  165.   Count: integer;
  166. begin
  167.   Count := 0;
  168.   FParser.Parse(FStream);
  169.   FParser.Classes.Iterator.Reset;
  170.   while FParser.Classes.Iterator.Next(MethodNode) do
  171.     if MethodNode.Visibility = cvProtected then
  172.       System.Inc(Count);
  173.   CheckEquals(ProtectedMethodCount, Count);
  174. end;
  175. procedure TXPStubClass1.TestPublicMethodCount;
  176. var
  177.   MethodNode: TXPMethodNode;
  178.   Count: integer;
  179. begin
  180.   Count := 0;
  181.   FParser.Parse(FStream);
  182.   FParser.Classes.Iterator.Reset;
  183.   while FParser.Classes.Iterator.Next(MethodNode) do
  184.     if MethodNode.Visibility = cvPublic then
  185.       System.Inc(Count);
  186.   CheckEquals(PublicMethodCount, Count);
  187. end;
  188. procedure TXPStubClass1.TestPublishedMethodCount;
  189. var
  190.   MethodNode: TXPMethodNode;
  191.   Count: integer;
  192. begin
  193.   Count := 0;
  194.   FParser.Parse(FStream);
  195.   FParser.Classes.Iterator.Reset;
  196.   while FParser.Classes.Iterator.Next(MethodNode) do
  197.     if MethodNode.Visibility = cvPublished then
  198.       System.Inc(Count);
  199.   CheckEquals(PublishedMethodCount, Count);
  200. end;
  201. procedure TXPStubClass1.StubPrivateMethod;
  202. begin
  203. end;
  204. procedure TXPStubClass1.StubPublicMethod;
  205. begin
  206. end;
  207. procedure TXPStubClass1.StubPublishedMethod(const idx: integer);
  208. begin
  209. end;
  210. class procedure TXPStubClass1.StubPublicClassMethod;
  211. begin
  212. end;
  213. procedure TXPStubClass1.TestReParse;
  214. var
  215.   MethodNode: TXPMethodNode;
  216.   Count: integer;
  217.   StreamPos: integer;
  218. begin
  219.   Count := 0;
  220.   StreamPos := FStream.Position;
  221.   FParser.Parse(FStream);
  222.   FStream.Position := StreamPos;
  223.   FParser.Parse(FStream);
  224.   FParser.Classes.Iterator.Reset;
  225.   while FParser.Classes.Iterator.Next(MethodNode) do
  226.     System.Inc(Count);
  227.   CheckEquals(MethodCount, Count);
  228. end;
  229. { TXPStubClass2 }
  230. procedure TXPStubClass2.SetUp;
  231. begin
  232.   inherited;
  233. end;
  234. procedure TXPStubClass2.StubPrivateMethod(const idx: integer);
  235. begin
  236. end;
  237. class procedure TXPStubClass2.StubPublicClassMethod;
  238. begin
  239. end;
  240. procedure TXPStubClass2.StubPublicMethod;
  241. begin
  242. end;
  243. procedure TXPStubClass2.StubPublishedMethod;
  244. begin
  245. end;
  246. procedure TXPStubClass2.TearDown;
  247. begin
  248.   inherited;
  249. end;
  250. procedure TXPStubClass2.TestExistsMethods;
  251. begin
  252. end;
  253. procedure TXPStubClass2.TestGetError;
  254. begin
  255. end;
  256. procedure TXPStubClass2.TestInitiallyEmptyMethods;
  257. begin
  258. end;
  259. procedure TXPStubClass2.TestMethodCount;
  260. begin
  261. end;
  262. procedure TXPStubClass2.TestParse;
  263. begin
  264. end;
  265. procedure TXPStubClass2.TestPrivateMethodCount;
  266. begin
  267. end;
  268. procedure TXPStubClass2.TestProtectedMethodCount;
  269. begin
  270. end;
  271. procedure TXPStubClass2.TestPublicMethodCount;
  272. begin
  273. end;
  274. procedure TXPStubClass2.TestPublishedMethodCount;
  275. begin
  276. end;
  277. { TXPStubClass3 }
  278. procedure TXPStubClass3.SetUp;
  279. begin
  280.   inherited;
  281. end;
  282. procedure TXPStubClass3.StubPrivateMethod;
  283. begin
  284. end;
  285. class procedure TXPStubClass3.StubPublicClassMethod;
  286. begin
  287. end;
  288. procedure TXPStubClass3.StubPublicMethod;
  289. begin
  290. end;
  291. procedure TXPStubClass3.StubPublishedMethod;
  292. begin
  293. end;
  294. procedure TXPStubClass3.TearDown;
  295. begin
  296.   inherited;
  297. end;
  298. procedure TXPStubClass3.TestExistsMethods;
  299. begin
  300. end;
  301. procedure TXPStubClass3.TestGetError;
  302. begin
  303. end;
  304. procedure TXPStubClass3.TestInitiallyEmptyMethods;
  305. begin
  306. end;
  307. procedure TXPStubClass3.TestMethodCount;
  308. begin
  309. end;
  310. procedure TXPStubClass3.TestParse;
  311. begin
  312. end;
  313. procedure TXPStubClass3.TestPrivateMethodCount;
  314. begin
  315. end;
  316. procedure TXPStubClass3.TestProtectedMethodCount;
  317. begin
  318. end;
  319. procedure TXPStubClass3.TestPublicMethodCount;
  320. begin
  321. end;
  322. procedure TXPStubClass3.TestPublishedMethodCount;
  323. begin
  324. end;
  325. type
  326.   TXPStubClass5 = class(TXPStubClass4);
  327. initialization
  328.   TestFramework.RegisterTest('TestedUnitParserTest_1 Suite',
  329.     TXPStubClass1.Suite);
  330. end.