File: testconfigmemstorage.pas

package info (click to toggle)
lazarus 4.0%2Bdfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 275,760 kB
  • sloc: pascal: 2,341,904; xml: 509,420; makefile: 348,726; cpp: 93,608; sh: 3,387; java: 609; perl: 297; sql: 222; ansic: 137
file content (87 lines) | stat: -rw-r--r-- 2,831 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
unit TestConfigMemStorage;

{$mode objfpc}{$H+}

interface

uses
  Classes,
  SysUtils,
  fpcunit,
  testregistry,
  XMLPropStorage,
  LazConfigStorage;

type
  TTestConfigMemStorage1 = class(TTestCase)
  published
    procedure TestDefaultValues;
  end;

implementation

procedure TTestConfigMemStorage1.TestDefaultValues;
var
  Storage: TConfigMemStorage;
  LazConfig: TXMLConfigStorage;
begin
  LazConfig := TXMLConfigStorage.Create('', False);
  try
    Storage := TConfigMemStorage.Create('', False);
    try
      CheckEquals(True, Storage.GetValue('Key/DefTrue1', True));
      CheckEquals(True, Storage.GetValue('Key/DefTrue2', True));
      CheckEquals(False, Storage.GetValue('Key/DefFalse1', False));
      CheckEquals(False, Storage.GetValue('Key/DefFalse2', False));

      CheckEquals('NonEmpty', Storage.GetValue('Key/DefNonEmpty1', 'NonEmpty'));
      CheckEquals('NonEmpty', Storage.GetValue('Key/DefNonEmpty2', 'NonEmpty'));
      CheckEquals('NonEmpty', Storage.GetValue('Key/DefNonEmpty3', 'NonEmpty'));

      Storage.SetDeleteValue('Key/DefTrue1', True, True);
      Storage.SetDeleteValue('Key/DefTrue2', False, True);
      Storage.SetDeleteValue('Key/DefFalse1', True, False);
      Storage.SetDeleteValue('Key/DefFalse2', False, False);

      Storage.SetDeleteValue('Key/DefNonEmpty1', 'NonEmpty', 'NonEmpty');
      Storage.SetDeleteValue('Key/DefNonEmpty2', '', 'NonEmpty');
      Storage.SetDeleteValue('Key/DefNonEmpty3', 'Val', 'NonEmpty');

      CheckEquals(True, Storage.GetValue('Key/DefTrue1', True));
      CheckEquals(False, Storage.GetValue('Key/DefTrue2', True));
      CheckEquals(True, Storage.GetValue('Key/DefFalse1', False));
      CheckEquals(False, Storage.GetValue('Key/DefFalse2', False));

      CheckEquals('NonEmpty', Storage.GetValue('Key/DefNonEmpty1', 'NonEmpty'));
      CheckEquals('', Storage.GetValue('Key/DefNonEmpty2', 'NonEmpty'));
      CheckEquals('Val', Storage.GetValue('Key/DefNonEmpty3', 'NonEmpty'));

      Storage.SaveToConfig(LazConfig, 'CustomOptions');
    finally
      Storage.Free;
    end;

    Storage := TConfigMemStorage.Create('', False);
    try
      Storage.LoadFromConfig(LazConfig, 'CustomOptions');

      CheckEquals(True, Storage.GetValue('Key/DefTrue1', True));
      CheckEquals(False, Storage.GetValue('Key/DefTrue2', True));
      CheckEquals(True, Storage.GetValue('Key/DefFalse1', False));
      CheckEquals(False, Storage.GetValue('Key/DefFalse2', False));

      CheckEquals('NonEmpty', Storage.GetValue('Key/DefNonEmpty1', 'NonEmpty'));
      CheckEquals('', Storage.GetValue('Key/DefNonEmpty2', 'NonEmpty'));
      CheckEquals('Val', Storage.GetValue('Key/DefNonEmpty3', 'NonEmpty'));
    finally
      Storage.Free;
    end;
  finally
    LazConfig.Free;
  end;
end;

initialization
  RegisterTest(TTestConfigMemStorage1);
end.