123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- unit utcIniFile;
- {$mode objfpc}{$H+}
- interface
- uses
- Classes, SysUtils, punit, inifiles;
- procedure RegisterTests;
- implementation
- var
- Fini: TCustomIniFile;
- function Setup: TTestString;
- begin
- Result := '';
- if Assigned(Fini) then
- Fini.Free;
- Fini := nil;
- if FileExists('tmp.ini') then
- DeleteFile('tmp.ini');
- try
- Fini := TMemIniFile.Create('tmp.ini');
- except
- on E: Exception do
- Result := 'Setup failed: ' + E.Message;
- end;
- end;
- function TearDown: TTestString;
- begin
- Result := '';
- if Assigned(Fini) then
- Fini.Free;
- Fini := nil;
- if FileExists('tmp.ini') then
- DeleteFile('tmp.ini');
- end;
- function TIniFile_TestWriteBoolean: TTestString;
- begin
- Result := '';
- AssertNotNull('Ini object should be created', Fini);
- if not Assigned(Fini) then Exit;
- Fini.WriteBool('a','b',true);
- AssertEquals('Default true','1',Fini.ReadString('a','b',''));
- Fini.WriteBool('a','b',False);
- AssertEquals('Default false','0',Fini.ReadString('a','b',''));
- Fini.Options:=Fini.Options+[ifoWriteStringBoolean];
- Fini.WriteBool('a','b',true);
- AssertEquals('Default string true','true',Fini.ReadString('a','b',''));
- Fini.WriteBool('a','b',false);
- AssertEquals('Default string false','false',Fini.ReadString('a','b',''));
- Fini.SetBoolStringValues(true,['t','true']);
- Fini.WriteBool('a','b',true);
- AssertEquals('True from string array','t',Fini.ReadString('a','b',''));
- Fini.SetBoolStringValues(false,['f','false']);
- Fini.WriteBool('a','b',false);
- AssertEquals('False from string array','f',Fini.ReadString('a','b',''));
- end;
- function TIniFile_TestReadBoolean: TTestString;
- begin
- Result := '';
- AssertNotNull('Ini object should be created', Fini);
- if not Assigned(Fini) then Exit;
- Fini.WriteString('a','b','1');
- AssertEquals('Default true',true,Fini.ReadBool('a','b',False));
- Fini.WriteString('a','b','0');
- AssertEquals('Default false',false,Fini.ReadBool('a','b',True));
- Fini.WriteString('a','b','');
- AssertEquals('Empty returns Default ',true,Fini.ReadBool('a','b',true));
- Fini.SetBoolStringValues(true,['t','true']);
- Fini.WriteString('a','b','t');
- AssertEquals('First string match',true,Fini.ReadBool('a','b',false));
- Fini.WriteString('a','b','true');
- AssertEquals('Second string match',true,Fini.ReadBool('a','b',false));
- Fini.WriteString('a','b','d');
- AssertEquals('No string match, default',true,Fini.ReadBool('a','b',true));
- Fini.SetBoolStringValues(true,[]);
- Fini.SetBoolStringValues(false,['f','false']);
- Fini.WriteString('a','b','f');
- AssertEquals('First string match false',false,Fini.ReadBool('a','b',true));
- Fini.WriteString('a','b','false');
- AssertEquals('Second string match false',false,Fini.ReadBool('a','b',true));
- Fini.WriteString('a','b','d');
- AssertEquals('No string match, default false',false,Fini.ReadBool('a','b',false));
- Fini.SetBoolStringValues(true,['t','true']);
- AssertEquals('No string match, default false 2',false,Fini.ReadBool('a','b',false));
- Fini.SetBoolStringValues(true,[]);
- Fini.SetBoolStringValues(False,[]);
- Fini.Options:=Fini.Options+[ifoWriteStringBoolean];
- Fini.WriteString('a','b','true');
- AssertEquals('ifoWriteStringBoolean, true string ',True,Fini.ReadBool('a','b',false));
- Fini.WriteString('a','b','false');
- AssertEquals('ifoWriteStringBoolean, false string',false,Fini.ReadBool('a','b',true));
- Fini.WriteString('a','b','soso');
- AssertEquals('ifoWriteStringBoolean, No string match, default',True,Fini.ReadBool('a','b',true));
- end;
- procedure RegisterTests;
- begin
- AddSuite('TIniFileTests', @Setup, @TearDown, Nil, True);
- AddTest('TestWriteBoolean', @TIniFile_TestWriteBoolean, 'TIniFileTests');
- AddTest('TestReadBoolean', @TIniFile_TestReadBoolean, 'TIniFileTests');
- end;
- end.
|