{ ************************************************************** Package: XWB - Kernel RPCBroker Date Created: Sept 18, 1997 (Version 1.1) Site Name: Oakland, OI Field Office, Dept of Veteran Affairs Developers: Joel Ivey Description: Unit tests for RPCBroker functionality - requires dUnit to run unit tests. Current Release: Version 1.1 Patch 40 (January 7, 2005)) *************************************************************** } unit uUnitTestBroker; interface uses TestFramework, Sgnoncnf, Classes, Graphics, SysUtils, Forms; type TTestType = class(TTestCase) private // any private fields needed for processing protected // procedure SetUp; override; // procedure TearDown; override; published // procedure TestName1; // procedure TestName2; end; TTestSgnoncnf = class(TTestCase) private FSignonConfiguration: TSignonConfiguration; FRegValues: TStringList; protected procedure SetUp; override; procedure TearDown; override; published procedure TestReadRegistry; procedure TestShowModal1; procedure TestShowModal2; end; TTestMFunStr = class(TTestCase) private protected procedure Setup; override; public published procedure TestPiece1; procedure TestPiece2; procedure TestPiece3; procedure TestPiece4; procedure TestPiece5; procedure TestPiece6; procedure TestPiece7; procedure TestPiece8; procedure TestPiece9; end; implementation uses XWBut1, Dialogs, MFunStr, LoginFrm; var Str: String; Val: String; procedure TTestSgnoncnf.SetUp; begin { setup as would be done in loginfrm.pas } FSignonConfiguration := TSignonConfiguration.Create; { // if any data currently in registry then save it FRegValues := TStringList.Create; ReadRegValues(HKCU,'Software\Vista\Signon',FRegValues); // Now delete current data DeleteRegData(HKCU,'Software\Vista\Signon'); // Test for reading without registry data FOriginalValues := TSignonValues.Create; } with SignonDefaults do begin Position := '0'; Size := '0'; IntroFont := 'Courier New^11'; IntroFontStyles := 'B'; TextColor := clWindowText; BackColor := clWindow; end; // with FSignonConfiguration.SignonDefaults frmSignon := TfrmSignon.Create(Application); end; procedure TTestSgnoncnf.TearDown; begin FSignonConfiguration.Free; frmSignon.Free; end; procedure TTestSgnoncnf.TestReadRegistry; begin FSignonConfiguration.ReadRegistrySettings; with InitialValues do begin Check(Position = '0', 'ReadRegistry Error in Position value-'+Position); Check(Size = '0', 'ReadRegistry Error in Size value-'+Size); Check(IntroFont = 'Courier New^11', 'ReadRegistry Error in IntroFont-'+IntroFont); Check(IntroFontStyles = 'B', 'ReadRegistry Error in IntroFontStyles value-'+IntroFontStyles); Check(BackColor = clWindow, 'ReadRegistry Error in BackColor = '+IntToStr(BackColor)); Check(TextColor = clWindowText, 'ReadRegistry Error in TextColor = '+IntToStr(TextColor)); end; // with end; procedure TTestSgnoncnf.TestShowModal1; begin ShowMessage('Click on Default Button'); InitialValues.TextColor := clWindow; FSignonConfiguration.ShowModal; with InitialValues do begin Check(TextColor = clWindowText, 'TestShowModal bad TextColor on restore'); end; // with end; procedure TTestSgnoncnf.TestShowModal2; begin ShowMessage('Click on ''Select New'' Background Color then select OK (Standard) on next form Then click OK on Main Form'); InitialValues.TextColor := clWindowText; FSignonConfiguration.ShowModal; with InitialValues do begin Check(BackColor = clWindow, 'TestShowModal bad TextColor on restore'); end; // with end; procedure TTestMFunStr.TestPiece1; begin Val := Piece(Str,'^'); Check(Val = 'Piece1','Failed Piece not specified'); end; procedure TTestMFunStr.Setup; begin Str := 'Piece1^Piece2^Piece3'; end; procedure TTestMFunStr.TestPiece2; begin Val := Piece(Str,'^',2); Check(Val = 'Piece2', 'Failed Piece specified as 2'); end; procedure TTestMFunStr.TestPiece3; begin Val := Piece(Str,'^',3); Check(Val = 'Piece3', 'Failed Piece specifed as 3'); end; procedure TTestMFunStr.TestPiece4; begin Val := Piece(Str,'^',4); Check(Val = '','Failed piece specifed as 4'); end; procedure TTestMFunStr.TestPiece5; begin Val := Piece(Str,'^',1,2); Check(Val = 'Piece1^Piece2','Failed Piece 1,2'); end; procedure TTestMFunStr.TestPiece6; begin Val := Piece(Str,'^',2,3); Check(Val = 'Piece2^Piece3','Failed Piece 2,3'); end; procedure TTestMFunStr.TestPiece7; begin Val := Piece(Str,'^',2,4); Check(Val = 'Piece2^Piece3', 'Failed on Piece 2,4'); end; procedure TTestMFunStr.TestPiece8; begin Val := Piece(Str,'^',3,5); Check(Val = 'Piece3','Failed on Piece 3,5'); end; procedure TTestMFunStr.TestPiece9; begin Val := Piece(Str,'^',4,6); Check(Val = '','Failed on Piece 4,6'); end; { // used with second method of registering tests function UnitTests: ITestSuite; var ATestSuite: TTestSuite; begin ATestSuite := TTestSuite.create('Some trivial tests'); // add each test suite to be tested ATestSuite.addSuite(TTestType.Suite); // ATestSuite.addSuite(TTestStringlist.Suite); Result := ATestSuite; end; } { procedure TTestType.TestName1; begin // Check( Boolean true for success, String comment for failed test) Check(1+1=2,'Comment on Failure') end; } initialization // one entry per testclass TestFramework.RegisterTest('ReadRegistry',TTestSgnoncnf.Suite); TestFramework.RegisterTest('Test Piece',TTestMFunStr.Suite); // or // TestFramework.RegisterTest('SimpleTest',UnitTests); end.