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 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
|
unit TestInsightController;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils;
Const
DefaultPort = 6789;
DefaultAutoFetchTests = True;
DefaultBasePath = '/tests';
TestInsightConfig = 'TestInsight.xml';
Type
{ TTestInsightOptions }
TTestInsightOptions = class(TPersistent)
private
FAutoFetchTests: Boolean;
FBasePath: String;
FPort: Word;
Public
Constructor Create;
procedure Reset; virtual;
procedure LoadFromFile(FileName : String);
procedure SaveToFile(FileName: String);
Property Port : Word Read FPort Write FPort;
property BasePath : String Read FBasePath Write FBasePath;
Property AutoFetchTests : Boolean Read FAutoFetchTests Write FautoFetchTests;
end;
{ TTestInsightController }
TTestInsightController = class(TObject)
private
class var _instance : TTestInsightController;
Class constructor Init;
Class destructor Done;
private
FOptions: TTestInsightOptions;
public
Public
Constructor Create;
Destructor Destroy; override;
Class Property Instance : TTestInsightController Read _instance;
Property Options : TTestInsightOptions Read FOptions;
end;
Function gTestInsightController : TTestInsightController;
implementation
Uses BaseIDEIntf, LazConfigStorage;
Const
KeyPort = 'Port/Value';
KeyAutoFetchTests = 'AutoFetchTests/Value';
KeyBasePath = 'BasePath/Value';
function gTestInsightController: TTestInsightController;
begin
Result:=TTestInsightController.Instance
end;
{ TTestInsightOptions }
procedure TTestInsightOptions.SaveToFile(FileName: String);
var
Cfg: TConfigStorage;
begin
Cfg:=GetIDEConfigStorage(Filename,False);
try
Cfg.SetDeleteValue(KeyPort,Port,DefaultPort);
Cfg.SetDeleteValue(KeyBasePath,BasePath,DefaultBasePath);
Cfg.SetDeleteValue(KeyAutoFetchTests,AutoFetchTests,DefaultAutoFetchTests);
Cfg.WriteToDisk;
finally
Cfg.Free;
end;
end;
constructor TTestInsightOptions.Create;
begin
Reset;
end;
procedure TTestInsightOptions.Reset;
begin
Port:=DefaultPort;
BasePath:=DefaultBasePath;
AutoFetchTests:=DefaultAutoFetchTests;
end;
procedure TTestInsightOptions.LoadFromFile(FileName: String);
var
Cfg: TConfigStorage;
begin
Cfg:=GetIDEConfigStorage(Filename,True);
try
Port:=Cfg.GetValue(KeyPort,DefaultPort);
BasePath:=Cfg.GetValue(KeyBasePath,DefaultBasePath);
AutoFetchTests:=Cfg.GetValue(KeyAutoFetchTests,DefaultAutoFetchTests);
finally
Cfg.Free;
end;
end;
{ TTestInsightController }
class constructor TTestInsightController.Init;
begin
_Instance:=TTestInsightController.Create;
end;
class destructor TTestInsightController.Done;
begin
FreeAndNil(_Instance)
end;
constructor TTestInsightController.Create;
begin
FOptions:=TTestInsightOptions.Create;
end;
destructor TTestInsightController.Destroy;
begin
FreeAndNil(FOptions);
inherited Destroy;
end;
end.
|