Стартовый пул
This commit is contained in:
		@@ -0,0 +1,182 @@
 | 
			
		||||
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.
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user