183 lines
4.2 KiB
Plaintext
183 lines
4.2 KiB
Plaintext
unit rx_ext_test_case_1;
|
|
|
|
{$mode objfpc}{$H+}
|
|
|
|
interface
|
|
|
|
uses
|
|
Classes, SysUtils, fpcunit, testutils, testregistry, rxmemds, Dialogs;
|
|
|
|
type
|
|
|
|
{ TTCRxMemDataLifecycle }
|
|
|
|
TTCRxMemDataLifecycle= class(TTestCase)
|
|
protected
|
|
procedure SetUp; override;
|
|
procedure TearDown; override;
|
|
published
|
|
procedure TestHookUp;
|
|
procedure TestSave;
|
|
end;
|
|
|
|
implementation
|
|
|
|
uses
|
|
db, ex_rx_datapacket;
|
|
|
|
procedure TTCRxMemDataLifecycle.TestHookUp;
|
|
var
|
|
ads : TRxMemoryData;
|
|
aField : TField;
|
|
i : integer;
|
|
begin
|
|
ads := TRxMemoryData.Create(nil);
|
|
|
|
aField := TIntegerField.Create(nil);
|
|
aField.FieldName:= 'IntegerField1';
|
|
aField.Name := 'adsIntegerField1';
|
|
aField.DataSet := ads;
|
|
|
|
aField := TStringField.Create(nil);
|
|
aField.FieldName:= 'StringField1';
|
|
aField.Name := 'adsStringField1';
|
|
aField.Size := 20;
|
|
aField.DataSet := ads;
|
|
|
|
aField := TFloatField.Create(nil);
|
|
aField.FieldName:= 'FloatField1';
|
|
aField.Name := 'adsFloatField1';
|
|
aField.DataSet := ads;
|
|
|
|
ads.Open;
|
|
|
|
for i := 0 to 500 do
|
|
begin
|
|
ads.AppendRecord([i,'Name '+ IntToStr(i), 200 + (i*0.1)]);
|
|
end;
|
|
|
|
ads.First;
|
|
|
|
i:= 0;
|
|
while not ads.EOF do
|
|
begin
|
|
AssertTrue('Integer is incorrect ' + IntToStr(i), ads.FieldByName('IntegerField1').AsInteger = i);
|
|
AssertTrue('Float is incorrect ' + IntToStr(i), ads.FieldByName('FloatField1').AsFloat - (200 + (i*0.1)) < 0.01);
|
|
AssertTrue('String is incorrect ' + IntToStr(i), ads.FieldByName('StringField1').AsString = 'Name '+ IntToStr(i));
|
|
inc(i);
|
|
ads.Next;
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
procedure TTCRxMemDataLifecycle.TestSave;
|
|
var
|
|
ads1,ads2 : TRxMemoryData;
|
|
aField : TField;
|
|
i : integer;
|
|
sMemoTest : String;
|
|
begin
|
|
ads1 := TRxMemoryData.Create(nil);
|
|
ads2 := TRxMemoryData.Create(nil);
|
|
|
|
aField := TIntegerField.Create(nil);
|
|
aField.FieldName:= 'IntegerField1';
|
|
aField.Name := 'adsIntegerField1';
|
|
aField.DataSet := ads1;
|
|
|
|
aField := TStringField.Create(nil);
|
|
aField.FieldName:= 'StringField1';
|
|
aField.Name := 'adsStringField1';
|
|
aField.Size := 20;
|
|
aField.DataSet := ads1;
|
|
|
|
aField := TFloatField.Create(nil);
|
|
aField.FieldName:= 'FloatField1';
|
|
aField.Name := 'adsFloatField1';
|
|
aField.DataSet := ads1;
|
|
|
|
// TBooleanField
|
|
|
|
aField := TBooleanField.Create(nil);
|
|
aField.FieldName:= 'BooleanField1';
|
|
aField.Name := 'adsBooleanField1';
|
|
aField.DataSet := ads1;
|
|
|
|
// TDateTimeField
|
|
|
|
aField := TDateTimeField.Create(nil);
|
|
aField.FieldName:= 'DateTimeField1';
|
|
aField.Name := 'adsDateTimeField1';
|
|
aField.DataSet := ads1;
|
|
|
|
|
|
// TMemoField
|
|
|
|
aField := TMemoField.Create(nil);
|
|
aField.FieldName:= 'MemoField1';
|
|
aField.Name := 'adsMemoField1';
|
|
aField.Size:= 600;
|
|
aField.DataSet := ads1;
|
|
|
|
// TCurrencyField
|
|
|
|
aField := TCurrencyField.Create(nil);
|
|
aField.FieldName:= 'CurrencyField1';
|
|
aField.Name := 'adsCurrencyField1';
|
|
aField.DataSet := ads1;
|
|
|
|
ads1.Open;
|
|
ads2.Open;
|
|
|
|
sMemoTest := 'memo1';
|
|
for i := 0 to 500 do
|
|
begin
|
|
ads1.AppendRecord([i,'Name '+ IntToStr(i), 200 + (i*0.1),(i div 2) = 1, EncodeDate(2011,10,03) + i, sMemoTest, 1000 + (i*0.1)]);
|
|
sMemoTest := sMemoTest + 'a';
|
|
end;
|
|
|
|
ads1.SaveToFile('/tmp/testfile.xml',dfXML);
|
|
ads2.LoadFromFile('/tmp/testfile.xml',dfXML);
|
|
|
|
ads2.First;
|
|
|
|
sMemoTest := 'memo1';
|
|
i:= 0;
|
|
while not ads2.EOF do
|
|
begin
|
|
AssertTrue('Integer is incorrect ' + IntToStr(i), ads2.FieldByName('IntegerField1').AsInteger = i);
|
|
AssertTrue('Float is incorrect ' + IntToStr(i), ads2.FieldByName('FloatField1').AsFloat - (200 + (i*0.1)) < 0.01);
|
|
AssertTrue('String is incorrect ' + IntToStr(i), ads2.FieldByName('StringField1').AsString = 'Name '+ IntToStr(i));
|
|
|
|
AssertTrue('Currency is incorrect ' + IntToStr(i), ads2.FieldByName('CurrencyField1').AsFloat - (1000 + (i*0.1)) < 0.01);
|
|
AssertTrue('DateTime is incorrect ' + IntToStr(i), ads2.FieldByName('DateTimeField1').AsDateTime = EncodeDate(2011,10,03) + i);
|
|
AssertTrue('Memo is incorrect ' + IntToStr(i) + ads2.FieldByName('MemoField1').AsString, StrComp(Pchar(ads2.FieldByName('MemoField1').asString),Pchar(sMemoTest)) = 0);
|
|
|
|
sMemoTest := sMemoTest + 'a';
|
|
inc(i);
|
|
ads2.Next;
|
|
end;
|
|
|
|
ads1.Free;
|
|
ads2.Free;
|
|
|
|
|
|
end;
|
|
|
|
procedure TTCRxMemDataLifecycle.SetUp;
|
|
begin
|
|
|
|
end;
|
|
|
|
procedure TTCRxMemDataLifecycle.TearDown;
|
|
begin
|
|
|
|
end;
|
|
|
|
initialization
|
|
|
|
RegisterTest(TTCRxMemDataLifecycle);
|
|
end.
|
|
|