lasarus_compotents/RXLib/.svn/pristine/5d/5d62bb7b6a672a789fe33e2ac1644e3352ce3835.svn-base

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.