tcinifile.pp 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. unit tcinifile;
  2. {$mode objfpc}{$H+}
  3. interface
  4. uses
  5. Classes, SysUtils, fpcunit, testutils, inifiles, testregistry;
  6. type
  7. { TTestIniFile }
  8. TTestIniFile= class(TTestCase)
  9. private
  10. Fini: TCustomIniFile;
  11. protected
  12. Procedure CreateIni;
  13. procedure SetUp; override;
  14. procedure TearDown; override;
  15. Property Ini : TCustomIniFile Read Fini;
  16. published
  17. procedure TestWriteBoolean;
  18. procedure TestReadBoolean;
  19. end;
  20. implementation
  21. procedure TTestIniFile.CreateIni;
  22. begin
  23. Fini:=TMemIniFIle.Create('tmp.ini');
  24. end;
  25. procedure TTestIniFile.TestWriteBoolean;
  26. begin
  27. CreateIni;
  28. Ini.WriteBool('a','b',true);
  29. AssertEquals('Default true','1',Ini.ReadString('a','b',''));
  30. Ini.WriteBool('a','b',False);
  31. AssertEquals('Default false','0',Ini.ReadString('a','b',''));
  32. Ini.Options:=Ini.Options+[ifoWriteStringBoolean];
  33. Ini.WriteBool('a','b',true);
  34. AssertEquals('Default string true','true',Ini.ReadString('a','b',''));
  35. Ini.WriteBool('a','b',false);
  36. AssertEquals('Default string false','false',Ini.ReadString('a','b',''));
  37. Ini.SetBoolStringValues(true,['t','true']);
  38. Ini.WriteBool('a','b',true);
  39. AssertEquals('True from string array','t',Ini.ReadString('a','b',''));
  40. Ini.SetBoolStringValues(false,['f','false']);
  41. Ini.WriteBool('a','b',false);
  42. AssertEquals('True from string array','f',Ini.ReadString('a','b',''));
  43. end;
  44. procedure TTestIniFile.TestReadBoolean;
  45. begin
  46. CreateIni;
  47. Ini.WriteString('a','b','1');
  48. AssertEquals('Default true',true,Ini.ReadBool('a','b',False));
  49. Ini.WriteString('a','b','0');
  50. AssertEquals('Default false',false,Ini.ReadBool('a','b',True));
  51. Ini.WriteString('a','b','');
  52. AssertEquals('Empty returns Default ',true,Ini.ReadBool('a','b',true));
  53. Ini.SetBoolStringValues(true,['t','true']);
  54. Ini.WriteString('a','b','t');
  55. AssertEquals('First string match',true,Ini.ReadBool('a','b',false));
  56. Ini.WriteString('a','b','true');
  57. AssertEquals('Second string match',true,Ini.ReadBool('a','b',false));
  58. Ini.WriteString('a','b','d');
  59. AssertEquals('No string match, default',true,Ini.ReadBool('a','b',true));
  60. Ini.SetBoolStringValues(true,[]);
  61. Ini.SetBoolStringValues(false,['f','false']);
  62. Ini.WriteString('a','b','f');
  63. AssertEquals('First string match',false,Ini.ReadBool('a','b',true));
  64. Ini.WriteString('a','b','false');
  65. AssertEquals('Second string match',false,Ini.ReadBool('a','b',true));
  66. Ini.WriteString('a','b','d');
  67. AssertEquals('No string match, default',false,Ini.ReadBool('a','b',false));
  68. Ini.SetBoolStringValues(true,['t','true']);
  69. AssertEquals('No string match, default',false,Ini.ReadBool('a','b',false));
  70. Ini.SetBoolStringValues(true,[]);
  71. Ini.SetBoolStringValues(False,[]);
  72. Ini.Options:=Ini.Options+[ifoWriteStringBoolean];
  73. Ini.WriteString('a','b','true');
  74. AssertEquals('ifoWriteStringBoolean, true string ',True,Ini.ReadBool('a','b',false));
  75. Ini.WriteString('a','b','false');
  76. AssertEquals('ifoWriteStringBoolean, false string',false,Ini.ReadBool('a','b',true));
  77. Ini.WriteString('a','b','soso');
  78. AssertEquals('ifoWriteStringBoolean, No string match, default',True,Ini.ReadBool('a','b',true));
  79. end;
  80. procedure TTestIniFile.SetUp;
  81. begin
  82. DeleteFile('tmp.ini');
  83. end;
  84. procedure TTestIniFile.TearDown;
  85. begin
  86. DeleteFile('tmp.ini');
  87. end;
  88. initialization
  89. RegisterTest(TTestIniFile);
  90. end.