123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- unit tcxmlreg;
- {$mode objfpc}{$H+}
- interface
- uses
- fpcunit, testutils, testregistry, testdecorator, Classes, SysUtils, xmlreg;
- Type
- { TTestXMLRegistry }
- TTestXMLRegistry = Class(TTestCase)
- private
- FXMLReg: TXmlRegistry;
- Protected
- Procedure Setup; override;
- Procedure TearDown; override;
- Property XMLReg : TXmlRegistry Read FXMLReg;
- Published
- Procedure TestReadBufDataDWord;
- Procedure TestReadBufDataString;
- Procedure TestReadBufDataBinary;
- end;
- implementation
- { TTestXMLRegistry }
- procedure TTestXMLRegistry.Setup;
- begin
- inherited Setup;
- DeleteFile('test.xml');
- FXMLReg:=TXmlRegistry.Create('test.xml');
- end;
- procedure TTestXMLRegistry.TearDown;
- begin
- FreeAndNil(FXMLReg);
- inherited TearDown;
- end;
- procedure TTestXMLRegistry.TestReadBufDataDWord;
- Var
- C : Cardinal;
- I : Smallint;
- DS : Integer;
- dt : TDataType;
- begin
- XMLReg.SetKey('a',True);
- C:=123456;
- XMLReg.SetValueData('b',dtDWORD,C,SizeOf(C));
- XMLReg.Flush;
- DS:=SizeOf(SmallInt);
- AssertEquals('Cannot read, buffer size too small',False,XMLReg.GetValueData('b',dt,I,ds));
- AssertTrue('Correct data type reported',dt=dtDWord);
- AssertEquals('Correct data buffer size reported',SizeOf(C),DS);
- end;
- procedure TTestXMLRegistry.TestReadBufDataString;
- Var
- S1,S2 : String;
- I : Smallint;
- DS : Integer;
- dt : TDataType;
- begin
- XMLReg.SetKey('a',True);
- S1:=StringOfChar('*',100);
- XMLReg.SetValueData('b',dtString,S1[1],Length(S1));
- XMLReg.Flush;
- DS:=SizeOf(S1) div 2;
- S2:=StringOfChar('*',DS);
- AssertEquals('Cannot read, buffer size too small',False,XMLReg.GetValueData('b',dt,S2[1],ds));
- AssertTrue('Correct data type reported',dt=dtString);
- AssertEquals('Correct data buffer size reported',Length(S1),DS);
- end;
- procedure TTestXMLRegistry.TestReadBufDataBinary;
- Var
- S1,S2 : Array of byte;
- I : Smallint;
- DS : Integer;
- dt : TDataType;
- begin
- XMLReg.SetKey('a',True);
- SetLength(S1,100);
- For I:=0 to 99 do
- S1[I]:=i;
- XMLReg.SetValueData('b',dtBinary,S1[1],Length(S1));
- XMLReg.Flush;
- DS:=SizeOf(S1) div 4;
- SetLength(S2,DS);
- For I:=0 to DS-1 do
- S2[I]:=i;
- AssertEquals('Cannot read, buffer size too small',False,XMLReg.GetValueData('b',dt,S2[1],ds));
- AssertTrue('Correct data type reported',dt=dtBinary);
- AssertEquals('Correct data buffer size reported',Length(S1),DS);
- end;
- begin
- RegisterTest(TTestXMLRegistry);
- end.
|