| 1 | { **************************************************************
 | 
|---|
| 2 |         Package: XWB - Kernel RPCBroker
 | 
|---|
| 3 |         Date Created: Sept 18, 1997 (Version 1.1)
 | 
|---|
| 4 |         Site Name: Oakland, OI Field Office, Dept of Veteran Affairs
 | 
|---|
| 5 |         Developers: Joel Ivey
 | 
|---|
| 6 |         Description: Unit tests for RPCBroker functionality - requires
 | 
|---|
| 7 |                      dUnit to run unit tests.
 | 
|---|
| 8 |         Current Release: Version 1.1 Patch 40 (January 7, 2005))
 | 
|---|
| 9 | *************************************************************** }
 | 
|---|
| 10 | 
 | 
|---|
| 11 | unit uUnitTestBroker;
 | 
|---|
| 12 | 
 | 
|---|
| 13 | interface
 | 
|---|
| 14 | 
 | 
|---|
| 15 | uses
 | 
|---|
| 16 |   TestFramework, Sgnoncnf, Classes, Graphics, SysUtils, Forms;
 | 
|---|
| 17 | 
 | 
|---|
| 18 | type
 | 
|---|
| 19 |   TTestType = class(TTestCase)
 | 
|---|
| 20 |   private
 | 
|---|
| 21 |   // any private fields needed for processing
 | 
|---|
| 22 |   protected
 | 
|---|
| 23 |   // procedure SetUp; override;
 | 
|---|
| 24 |   // procedure TearDown; override;
 | 
|---|
| 25 |   published
 | 
|---|
| 26 |   // procedure TestName1;
 | 
|---|
| 27 |   // procedure TestName2;
 | 
|---|
| 28 |   end;
 | 
|---|
| 29 | 
 | 
|---|
| 30 |   TTestSgnoncnf = class(TTestCase)
 | 
|---|
| 31 |   private
 | 
|---|
| 32 |     FSignonConfiguration: TSignonConfiguration;
 | 
|---|
| 33 |     FRegValues: TStringList;
 | 
|---|
| 34 |   protected
 | 
|---|
| 35 |     procedure SetUp; override;
 | 
|---|
| 36 |     procedure TearDown; override;
 | 
|---|
| 37 |   published
 | 
|---|
| 38 |     procedure TestReadRegistry;
 | 
|---|
| 39 |     procedure TestShowModal1;
 | 
|---|
| 40 |     procedure TestShowModal2;
 | 
|---|
| 41 |   end;
 | 
|---|
| 42 | 
 | 
|---|
| 43 |   TTestMFunStr = class(TTestCase)
 | 
|---|
| 44 |   private
 | 
|---|
| 45 |   protected
 | 
|---|
| 46 |     procedure Setup; override;
 | 
|---|
| 47 |   public
 | 
|---|
| 48 |   published
 | 
|---|
| 49 |     procedure TestPiece1;
 | 
|---|
| 50 |     procedure TestPiece2;
 | 
|---|
| 51 |     procedure TestPiece3;
 | 
|---|
| 52 |     procedure TestPiece4;
 | 
|---|
| 53 |     procedure TestPiece5;
 | 
|---|
| 54 |     procedure TestPiece6;
 | 
|---|
| 55 |     procedure TestPiece7;
 | 
|---|
| 56 |     procedure TestPiece8;
 | 
|---|
| 57 |     procedure TestPiece9;
 | 
|---|
| 58 |   end;
 | 
|---|
| 59 | 
 | 
|---|
| 60 | implementation
 | 
|---|
| 61 | 
 | 
|---|
| 62 | uses
 | 
|---|
| 63 |   XWBut1, Dialogs, MFunStr, LoginFrm;
 | 
|---|
| 64 | 
 | 
|---|
| 65 | var
 | 
|---|
| 66 |   Str: String;
 | 
|---|
| 67 |   Val: String;
 | 
|---|
| 68 | 
 | 
|---|
| 69 | 
 | 
|---|
| 70 | procedure TTestSgnoncnf.SetUp;
 | 
|---|
| 71 | begin
 | 
|---|
| 72 | {   setup as would be done in loginfrm.pas }
 | 
|---|
| 73 | 
 | 
|---|
| 74 |   FSignonConfiguration := TSignonConfiguration.Create;
 | 
|---|
| 75 | {
 | 
|---|
| 76 |  //  if any data currently in registry then save it
 | 
|---|
| 77 |   FRegValues := TStringList.Create;
 | 
|---|
| 78 |   ReadRegValues(HKCU,'Software\Vista\Signon',FRegValues);
 | 
|---|
| 79 |   // Now delete current data
 | 
|---|
| 80 |   DeleteRegData(HKCU,'Software\Vista\Signon');
 | 
|---|
| 81 | 
 | 
|---|
| 82 |   // Test for reading without registry data
 | 
|---|
| 83 |   FOriginalValues := TSignonValues.Create;
 | 
|---|
| 84 | }
 | 
|---|
| 85 |   with SignonDefaults do
 | 
|---|
| 86 |   begin
 | 
|---|
| 87 |     Position := '0';
 | 
|---|
| 88 |     Size := '0';
 | 
|---|
| 89 |     IntroFont := 'Courier New^11';
 | 
|---|
| 90 |     IntroFontStyles := 'B';
 | 
|---|
| 91 |     TextColor := clWindowText;
 | 
|---|
| 92 |     BackColor := clWindow;
 | 
|---|
| 93 |   end;    // with FSignonConfiguration.SignonDefaults
 | 
|---|
| 94 |   frmSignon := TfrmSignon.Create(Application);
 | 
|---|
| 95 | end;
 | 
|---|
| 96 | 
 | 
|---|
| 97 | procedure TTestSgnoncnf.TearDown;
 | 
|---|
| 98 | begin
 | 
|---|
| 99 |   FSignonConfiguration.Free;
 | 
|---|
| 100 |   frmSignon.Free;
 | 
|---|
| 101 | end;
 | 
|---|
| 102 | 
 | 
|---|
| 103 | procedure TTestSgnoncnf.TestReadRegistry;
 | 
|---|
| 104 | begin
 | 
|---|
| 105 |   FSignonConfiguration.ReadRegistrySettings;
 | 
|---|
| 106 |   with InitialValues do
 | 
|---|
| 107 |   begin
 | 
|---|
| 108 |     Check(Position = '0', 'ReadRegistry Error in Position value-'+Position);
 | 
|---|
| 109 |     Check(Size = '0', 'ReadRegistry Error in Size value-'+Size);
 | 
|---|
| 110 |     Check(IntroFont = 'Courier New^11', 'ReadRegistry Error in IntroFont-'+IntroFont);
 | 
|---|
| 111 |     Check(IntroFontStyles = 'B', 'ReadRegistry Error in IntroFontStyles value-'+IntroFontStyles);
 | 
|---|
| 112 |     Check(BackColor = clWindow, 'ReadRegistry Error in BackColor = '+IntToStr(BackColor));
 | 
|---|
| 113 |     Check(TextColor = clWindowText, 'ReadRegistry Error in TextColor = '+IntToStr(TextColor));
 | 
|---|
| 114 |   end;    // with
 | 
|---|
| 115 | end;
 | 
|---|
| 116 | 
 | 
|---|
| 117 | procedure TTestSgnoncnf.TestShowModal1;
 | 
|---|
| 118 | begin
 | 
|---|
| 119 |   ShowMessage('Click on Default Button');
 | 
|---|
| 120 |   InitialValues.TextColor := clWindow;
 | 
|---|
| 121 |   FSignonConfiguration.ShowModal;
 | 
|---|
| 122 |   with InitialValues do
 | 
|---|
| 123 |   begin
 | 
|---|
| 124 |     Check(TextColor = clWindowText, 'TestShowModal bad TextColor on restore');
 | 
|---|
| 125 |   end;    // with
 | 
|---|
| 126 | end;
 | 
|---|
| 127 | 
 | 
|---|
| 128 | procedure TTestSgnoncnf.TestShowModal2;
 | 
|---|
| 129 | begin
 | 
|---|
| 130 |   ShowMessage('Click on ''Select New'' Background Color then select OK (Standard) on next form Then click OK on Main Form');
 | 
|---|
| 131 |   InitialValues.TextColor := clWindowText;
 | 
|---|
| 132 |   FSignonConfiguration.ShowModal;
 | 
|---|
| 133 |   with InitialValues do
 | 
|---|
| 134 |   begin
 | 
|---|
| 135 |     Check(BackColor = clWindow, 'TestShowModal bad TextColor on restore');
 | 
|---|
| 136 |   end;    // with
 | 
|---|
| 137 | end;
 | 
|---|
| 138 | 
 | 
|---|
| 139 | procedure TTestMFunStr.TestPiece1;
 | 
|---|
| 140 | begin
 | 
|---|
| 141 |   Val := Piece(Str,'^');
 | 
|---|
| 142 |   Check(Val = 'Piece1','Failed Piece not specified');
 | 
|---|
| 143 | end;
 | 
|---|
| 144 | 
 | 
|---|
| 145 | procedure TTestMFunStr.Setup;
 | 
|---|
| 146 | begin
 | 
|---|
| 147 |   Str := 'Piece1^Piece2^Piece3';
 | 
|---|
| 148 | end;
 | 
|---|
| 149 | 
 | 
|---|
| 150 | procedure TTestMFunStr.TestPiece2;
 | 
|---|
| 151 | begin
 | 
|---|
| 152 |   Val := Piece(Str,'^',2);
 | 
|---|
| 153 |   Check(Val = 'Piece2', 'Failed Piece specified as 2');
 | 
|---|
| 154 | end;
 | 
|---|
| 155 | 
 | 
|---|
| 156 | procedure TTestMFunStr.TestPiece3;
 | 
|---|
| 157 | begin
 | 
|---|
| 158 |   Val := Piece(Str,'^',3);
 | 
|---|
| 159 |   Check(Val = 'Piece3', 'Failed Piece specifed as 3');
 | 
|---|
| 160 | end;
 | 
|---|
| 161 | 
 | 
|---|
| 162 | procedure TTestMFunStr.TestPiece4;
 | 
|---|
| 163 | begin
 | 
|---|
| 164 |   Val := Piece(Str,'^',4);
 | 
|---|
| 165 |   Check(Val = '','Failed piece specifed as 4');
 | 
|---|
| 166 | end;
 | 
|---|
| 167 | 
 | 
|---|
| 168 | procedure TTestMFunStr.TestPiece5;
 | 
|---|
| 169 | begin
 | 
|---|
| 170 |   Val := Piece(Str,'^',1,2);
 | 
|---|
| 171 |   Check(Val = 'Piece1^Piece2','Failed Piece 1,2');
 | 
|---|
| 172 | end;
 | 
|---|
| 173 | 
 | 
|---|
| 174 | procedure TTestMFunStr.TestPiece6;
 | 
|---|
| 175 | begin
 | 
|---|
| 176 |   Val := Piece(Str,'^',2,3);
 | 
|---|
| 177 |   Check(Val = 'Piece2^Piece3','Failed Piece 2,3');
 | 
|---|
| 178 | end;
 | 
|---|
| 179 | 
 | 
|---|
| 180 | procedure TTestMFunStr.TestPiece7;
 | 
|---|
| 181 | begin
 | 
|---|
| 182 |   Val := Piece(Str,'^',2,4);
 | 
|---|
| 183 |   Check(Val = 'Piece2^Piece3', 'Failed on Piece 2,4');
 | 
|---|
| 184 | end;
 | 
|---|
| 185 | 
 | 
|---|
| 186 | procedure TTestMFunStr.TestPiece8;
 | 
|---|
| 187 | begin
 | 
|---|
| 188 |   Val := Piece(Str,'^',3,5);
 | 
|---|
| 189 |   Check(Val = 'Piece3','Failed on Piece 3,5');
 | 
|---|
| 190 | end;
 | 
|---|
| 191 | 
 | 
|---|
| 192 | procedure TTestMFunStr.TestPiece9;
 | 
|---|
| 193 | begin
 | 
|---|
| 194 |   Val := Piece(Str,'^',4,6);
 | 
|---|
| 195 |   Check(Val = '','Failed on Piece 4,6');
 | 
|---|
| 196 | end;
 | 
|---|
| 197 | 
 | 
|---|
| 198 | {  // used with second method of registering tests
 | 
|---|
| 199 | function UnitTests: ITestSuite;
 | 
|---|
| 200 | var
 | 
|---|
| 201 |   ATestSuite: TTestSuite;
 | 
|---|
| 202 | begin
 | 
|---|
| 203 |   ATestSuite := TTestSuite.create('Some trivial tests');
 | 
|---|
| 204 | // add each test suite to be tested
 | 
|---|
| 205 |   ATestSuite.addSuite(TTestType.Suite);
 | 
|---|
| 206 | //  ATestSuite.addSuite(TTestStringlist.Suite);
 | 
|---|
| 207 |   Result := ATestSuite;
 | 
|---|
| 208 | end;
 | 
|---|
| 209 | }
 | 
|---|
| 210 | 
 | 
|---|
| 211 | 
 | 
|---|
| 212 | {
 | 
|---|
| 213 | procedure TTestType.TestName1;
 | 
|---|
| 214 | begin
 | 
|---|
| 215 | // Check( Boolean true for success, String comment for failed test)
 | 
|---|
| 216 |   Check(1+1=2,'Comment on Failure')
 | 
|---|
| 217 | end;
 | 
|---|
| 218 | }
 | 
|---|
| 219 | 
 | 
|---|
| 220 | initialization
 | 
|---|
| 221 | // one entry per testclass
 | 
|---|
| 222 |   TestFramework.RegisterTest('ReadRegistry',TTestSgnoncnf.Suite);
 | 
|---|
| 223 |   TestFramework.RegisterTest('Test Piece',TTestMFunStr.Suite);
 | 
|---|
| 224 | // or
 | 
|---|
| 225 | //    TestFramework.RegisterTest('SimpleTest',UnitTests);
 | 
|---|
| 226 | end.
 | 
|---|