1unit Antlr.Runtime.Collections.Tests; 2{ 3 4 Delphi DUnit Test Case 5 ---------------------- 6 This unit contains a skeleton test case class generated by the Test Case Wizard. 7 Modify the generated code to correctly setup and call the methods from the unit 8 being tested. 9 10} 11 12interface 13 14uses 15 TestFramework, 16 Antlr.Runtime.Collections, 17 Generics.Collections, 18 Antlr.Runtime.Tools; 19 20type 21 // Test methods for class IHashList 22 TestIHashList = class(TTestCase) 23 strict private 24 FIHashList: IHashList<Integer, String>; 25 public 26 procedure SetUp; override; 27 procedure TearDown; override; 28 published 29 procedure TestInsertionOrder; 30 procedure TestRemove; 31 end; 32 33 // Test methods for class IStackList 34 TestIStackList = class(TTestCase) 35 strict private 36 FIStackList: IStackList<String>; 37 public 38 procedure SetUp; override; 39 procedure TearDown; override; 40 published 41 procedure TestPushPop; 42 procedure TestPeek; 43 end; 44 45implementation 46 47uses 48 SysUtils; 49 50const 51 Values: array [0..9] of Integer = (50, 1, 33, 76, -22, 22, 34, 2, 88, 12); 52 53procedure TestIHashList.SetUp; 54var 55 I: Integer; 56begin 57 FIHashList := THashList<Integer, String>.Create; 58 for I in Values do 59 FIHashList.Add(I,'Value' + IntToStr(I)); 60end; 61 62procedure TestIHashList.TearDown; 63begin 64 FIHashList := nil; 65end; 66 67procedure TestIHashList.TestInsertionOrder; 68var 69 I: Integer; 70 P: TPair<Integer, String>; 71begin 72 I := 0; 73 for P in FIHashList do 74 begin 75 CheckEquals(P.Key, Values[I]); 76 CheckEquals(P.Value, 'Value' + IntToStr(Values[I])); 77 Inc(I); 78 end; 79end; 80 81procedure TestIHashList.TestRemove; 82var 83 I: Integer; 84 P: TPair<Integer, String>; 85begin 86 FIHashList.Remove(34); 87 I := 0; 88 for P in FIHashList do 89 begin 90 if (Values[I] = 34) then 91 Inc(I); 92 CheckEquals(P.Key, Values[I]); 93 CheckEquals(P.Value, 'Value' + IntToStr(Values[I])); 94 Inc(I); 95 end; 96end; 97 98procedure TestIStackList.SetUp; 99begin 100 FIStackList := TStackList<String>.Create; 101end; 102 103procedure TestIStackList.TearDown; 104begin 105 FIStackList := nil; 106end; 107 108procedure TestIStackList.TestPushPop; 109var 110 Item: String; 111begin 112 Item := 'Item 1'; 113 FIStackList.Push(Item); 114 Item := 'Item 2'; 115 FIStackList.Push(Item); 116 CheckEquals(FIStackList.Pop,'Item 2'); 117 CheckEquals(FIStackList.Pop,'Item 1'); 118end; 119 120procedure TestIStackList.TestPeek; 121begin 122 FIStackList.Push('Item 1'); 123 FIStackList.Push('Item 2'); 124 FIStackList.Push('Item 3'); 125 FIStackList.Pop; 126 CheckEquals(FIStackList.Peek, 'Item 2'); 127 CheckEquals(FIStackList.Pop, 'Item 2'); 128end; 129 130initialization 131 // Register any test cases with the test runner 132 RegisterTest(TestIHashList.Suite); 133 RegisterTest(TestIStackList.Suite); 134end. 135