mirror of
https://gitlab.com/freepascal.org/fpc/pas2js.git
synced 2025-04-06 08:17:46 +02:00
3038 lines
65 KiB
ObjectPascal
3038 lines
65 KiB
ObjectPascal
{ Component streaming tests.
|
|
|
|
Copyright (C) 2020 Michael Van Canneyt michael@freepascal.org
|
|
|
|
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public
|
|
License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version
|
|
with the following modification:
|
|
|
|
As a special exception, the copyright holders of this library give you permission to link this library with independent modules
|
|
to produce an executable, regardless of the license terms of these independent modules,and to copy and distribute the resulting
|
|
executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions
|
|
of the license of that module. An independent module is a module which is not derived from or based on this library. If you
|
|
modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do
|
|
not wish to do so, delete this exception statement from your version.
|
|
|
|
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details.
|
|
|
|
You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free
|
|
Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1335, USA.
|
|
}
|
|
|
|
Unit tccompstreaming;
|
|
|
|
interface
|
|
|
|
Uses
|
|
SysUtils, Classes, tcstreaming, fpcunit, testregistry, testcomps;
|
|
|
|
Type
|
|
|
|
{ TTestComponentStream }
|
|
|
|
TTestComponentStream = Class(TTestStreaming)
|
|
Published
|
|
Procedure TestTEmptyComponent;
|
|
Procedure TestTEmptyComponentText;
|
|
Procedure TestTIntegerComponent;
|
|
Procedure TestTIntegerComponentText;
|
|
Procedure TestTIntegerComponent2;
|
|
Procedure TestTIntegerComponent2Text;
|
|
Procedure TestTIntegerComponent3;
|
|
Procedure TestTIntegerComponent3Text;
|
|
Procedure TestTIntegerComponent4;
|
|
Procedure TestTIntegerComponent5;
|
|
Procedure TestTInt64Component;
|
|
Procedure TestTInt64ComponentText;
|
|
Procedure TestTInt64Component2;
|
|
Procedure TestTInt64Component2Text;
|
|
Procedure TestTInt64Component3;
|
|
Procedure TestTInt64Component3Text;
|
|
Procedure TestTInt64Component4;
|
|
Procedure TestTInt64Component4Text;
|
|
Procedure TestTInt64Component5;
|
|
Procedure TestTInt64Component6;
|
|
Procedure TestTCharComponent;
|
|
Procedure TestTCharComponentText;
|
|
Procedure TestTStringComponent;
|
|
Procedure TestTStringComponentText;
|
|
Procedure TestTStringComponent2;
|
|
Procedure TestTStringComponent3;
|
|
Procedure TestTStringComponent4;
|
|
Procedure TestTStringComponent3Text;
|
|
Procedure TestTStringComponent4Text;
|
|
Procedure TestTWideStringComponent;
|
|
Procedure TestTWideStringComponentText;
|
|
Procedure TestTWideStringComponent2;
|
|
Procedure TestTSingleComponent;
|
|
Procedure TestTDoubleComponent;
|
|
Procedure TestTDoubleComponentText;
|
|
Procedure TestTExtendedComponent;
|
|
// Procedure TestTCompComponent;
|
|
Procedure TestTCurrencyComponent;
|
|
procedure TestTCurrencyComponentText;
|
|
Procedure TestTDateTimeComponent;
|
|
Procedure TestTDateTimeComponent2;
|
|
Procedure TestTDateTimeComponent3;
|
|
Procedure TestTEnumComponent;
|
|
Procedure TestTEnumComponentText;
|
|
Procedure TestTEnumComponent2;
|
|
Procedure TestTEnumComponent3;
|
|
Procedure TestTEnumComponent4;
|
|
Procedure TestTEnumComponent5;
|
|
Procedure TestTSetComponent;
|
|
Procedure TestTSetComponentText;
|
|
Procedure TestTSetComponent2;
|
|
Procedure TestTSetComponent3;
|
|
Procedure TestTSetComponent4;
|
|
Procedure TestTMultipleComponent;
|
|
Procedure TestTMultipleComponentText;
|
|
Procedure TestTPersistentComponent;
|
|
Procedure TestTPersistentComponentText;
|
|
Procedure TestTCollectionComponent;
|
|
Procedure TestTCollectionComponentText;
|
|
Procedure TestTCollectionComponent2;
|
|
Procedure TestTCollectionComponent2Text;
|
|
Procedure TestTCollectionComponent3;
|
|
Procedure TestTCollectionComponent4;
|
|
Procedure TestTCollectionComponent5;
|
|
Procedure TestTOwnedComponent;
|
|
Procedure TestTOwnedComponentText;
|
|
Procedure TestTStreamedOwnedComponent;
|
|
Procedure TestTStreamedOwnedComponentText;
|
|
Procedure TestTStreamedOwnedComponents;
|
|
Procedure TestTStreamedOwnedComponentsText;
|
|
Procedure TestTMethodComponent;
|
|
Procedure TestTMethodComponentText;
|
|
Procedure TestTMethodComponent2;
|
|
Procedure TestTMethodComponent2Text;
|
|
// Read
|
|
// ReadText will convert to text by calling text version, and read back after objecttexttobinary.
|
|
Procedure TestTEmptyComponentRead;
|
|
procedure TestTEmptyComponentReadText;
|
|
Procedure TestTIntegerComponentRead;
|
|
procedure TestTIntegerComponentReadText;
|
|
Procedure TestTIntegerComponent2Read;
|
|
Procedure TestTIntegerComponent2ReadText;
|
|
Procedure TestTIntegerComponent3Read;
|
|
Procedure TestTIntegerComponent3ReadText;
|
|
Procedure TestTIntegerComponent4Read;
|
|
Procedure TestTIntegerComponent5Read;
|
|
Procedure TestTInt64ComponentRead;
|
|
Procedure TestTInt64ComponentReadText;
|
|
Procedure TestTInt64Component2Read;
|
|
Procedure TestTInt64Component2ReadText;
|
|
Procedure TestTInt64Component3Read;
|
|
Procedure TestTInt64Component3ReadText;
|
|
Procedure TestTInt64Component4Read;
|
|
Procedure TestTInt64Component4ReadText;
|
|
Procedure TestTInt64Component5Read;
|
|
Procedure TestTInt64Component6Read;
|
|
Procedure TestTCharComponentRead;
|
|
Procedure TestTStringComponentRead;
|
|
Procedure TestTStringComponentReadText;
|
|
Procedure TestTStringComponent2Read;
|
|
Procedure TestTWideStringComponentRead;
|
|
Procedure TestTWideStringComponentReadText;
|
|
Procedure TestTWideStringComponent2Read;
|
|
Procedure TestTSingleComponentRead;
|
|
Procedure TestTDoubleComponentRead;
|
|
Procedure TestTDoubleComponentReadText;
|
|
Procedure TestTExtendedComponentRead;
|
|
// Procedure TestTCompComponent;
|
|
Procedure TestTCurrencyComponentRead;
|
|
Procedure TestTDateTimeComponentRead;
|
|
Procedure TestTDateTimeComponent2Read;
|
|
Procedure TestTDateTimeComponent3Read;
|
|
Procedure TestTEnumComponentRead;
|
|
Procedure TestTEnumComponentReadText;
|
|
Procedure TestTEnumComponent2Read;
|
|
Procedure TestTEnumComponent3Read;
|
|
Procedure TestTEnumComponent4Read;
|
|
Procedure TestTEnumComponent5Read;
|
|
Procedure TestTSetComponentRead;
|
|
Procedure TestTSetComponentReadText;
|
|
Procedure TestTSetComponent2Read;
|
|
Procedure TestTSetComponent3Read;
|
|
Procedure TestTSetComponent4Read;
|
|
Procedure TestTMultipleComponentRead;
|
|
Procedure TestTMultipleComponentReadText;
|
|
Procedure TestTPersistentComponentRead;
|
|
Procedure TestTPersistentComponentReadText;
|
|
Procedure TestTCollectionComponentRead;
|
|
Procedure TestTCollectionComponentReadText;
|
|
Procedure TestTCollectionComponent2Read;
|
|
Procedure TestTCollectionComponent2ReadText;
|
|
Procedure TestTCollectionComponent3Read;
|
|
Procedure TestTCollectionComponent4Read;
|
|
Procedure TestTCollectionComponent5Read;
|
|
Procedure TestTOwnedComponentRead;
|
|
Procedure TestTOwnedComponentReadText;
|
|
Procedure TestTStreamedOwnedComponentRead;
|
|
Procedure TestTStreamedOwnedComponentReadText;
|
|
Procedure TestTStreamedOwnedComponentsRead;
|
|
Procedure TestTStreamedOwnedComponentsReadText;
|
|
end;
|
|
|
|
|
|
{ TTestCollectionStream }
|
|
|
|
TTestCollectionStream = Class(TTestCase)
|
|
private
|
|
procedure CompareColl(CA, CB: TMyColl);
|
|
function CreateColl(Anr: Integer): TCollComp;
|
|
function EmptyComp: TCollComp;
|
|
procedure TestNr(ACount: Integer);
|
|
Published
|
|
procedure Test1;
|
|
procedure Test2;
|
|
procedure Test3;
|
|
procedure TestClear;
|
|
procedure TestEmpty;
|
|
end;
|
|
|
|
Implementation
|
|
|
|
Const
|
|
LE = sLineBreak;
|
|
|
|
procedure TTestComponentStream.TestTEmptyComponent;
|
|
|
|
|
|
Var
|
|
C : TComponent;
|
|
|
|
begin
|
|
C:=TEmptyComponent.Create(Nil);
|
|
Try
|
|
SaveToStream(C);
|
|
ExpectSignature;
|
|
ExpectFlags([],0);
|
|
ExpectBareString('TEmptyComponent');
|
|
ExpectBareString('TestTEmptyComponent');
|
|
ExpectEndOfList;
|
|
ExpectEndOfList;
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTEmptyComponentText;
|
|
|
|
Const
|
|
SData = 'object TestTEmptyComponent: TEmptyComponent'+sLineBreak+'end'+sLineBreak;
|
|
|
|
begin
|
|
TestTEmptyComponent;
|
|
CheckAsString(sData);
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTEmptyComponentRead;
|
|
|
|
Var
|
|
C : TEmptyComponent;
|
|
begin
|
|
TestTEmptyComponent;
|
|
C:=TEmptyComponent.Create(Nil);
|
|
try
|
|
LoadFromStream(C);
|
|
AssertEquals('Name','TestTEmptyComponent',C.Name);
|
|
finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTEmptyComponentReadText;
|
|
|
|
Var
|
|
C : TEmptyComponent;
|
|
|
|
begin
|
|
TestTEmptyComponentText;
|
|
C:=TEmptyComponent.Create(Nil);
|
|
try
|
|
LoadFromtextStream(C);
|
|
AssertEquals('Name','TestTEmptyComponent',C.Name);
|
|
finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTIntegerComponent;
|
|
|
|
|
|
Var
|
|
C : TComponent;
|
|
|
|
begin
|
|
C:=TIntegerComponent.Create(Nil);
|
|
Try
|
|
SaveToStream(C);
|
|
ExpectSignature;
|
|
ExpectFlags([],0);
|
|
ExpectBareString('TIntegerComponent');
|
|
ExpectBareString('TestTIntegerComponent');
|
|
ExpectBareString('IntProp');
|
|
ExpectInteger(3);
|
|
ExpectEndOfList;
|
|
ExpectEndOfList;
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTIntegerComponentText;
|
|
|
|
Const
|
|
SData =
|
|
'object TestTIntegerComponent: TIntegerComponent'+sLineBreak+
|
|
' IntProp = 3'+sLineBreak+
|
|
'end'+sLineBreak;
|
|
|
|
begin
|
|
TestTIntegerComponent;
|
|
CheckAsString(sData);
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTIntegerComponentRead;
|
|
|
|
Var
|
|
C : TIntegerComponent;
|
|
|
|
begin
|
|
TestTIntegerComponent;
|
|
C:=TIntegerComponent.Create(Nil);
|
|
Try
|
|
LoadFromStream(C);
|
|
AssertEquals('Name','TestTIntegerComponent',C.Name);
|
|
AssertEquals('IntProp',3,C.IntProp);
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTIntegerComponentReadText;
|
|
|
|
Var
|
|
C : TIntegerComponent;
|
|
|
|
begin
|
|
TestTIntegerComponentText;
|
|
C:=TIntegerComponent.Create(Nil);
|
|
Try
|
|
LoadFromTextStream(C);
|
|
AssertEquals('Name','TestTIntegerComponent',C.Name);
|
|
AssertEquals('IntProp',3,C.IntProp);
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTIntegerComponent2Read;
|
|
|
|
Var
|
|
C : TIntegerComponent2;
|
|
|
|
begin
|
|
TestTIntegerComponent2;
|
|
C:=TIntegerComponent2.Create(Nil);
|
|
Try
|
|
LoadFromStream(C);
|
|
AssertEquals('Name','TestTIntegerComponent2',C.Name);
|
|
AssertEquals('IntProp',1024,C.IntProp);
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTIntegerComponent2ReadText;
|
|
Var
|
|
C : TIntegerComponent2;
|
|
|
|
begin
|
|
TestTIntegerComponent2Text;
|
|
C:=TIntegerComponent2.Create(Nil);
|
|
Try
|
|
LoadFromTextStream(C);
|
|
AssertEquals('Name','TestTIntegerComponent2',C.Name);
|
|
AssertEquals('IntProp',1024,C.IntProp);
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTIntegerComponent3Read;
|
|
|
|
Var
|
|
C : TIntegerComponent3;
|
|
|
|
begin
|
|
TestTIntegerComponent3;
|
|
C:=TIntegerComponent3.Create(Nil);
|
|
Try
|
|
LoadFromStream(C);
|
|
AssertEquals('Name','TestTIntegerComponent3',C.Name);
|
|
AssertEquals('IntProp',262144,C.IntProp);
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTIntegerComponent3ReadText;
|
|
Var
|
|
C : TIntegerComponent3;
|
|
|
|
begin
|
|
TestTIntegerComponent3Text;
|
|
C:=TIntegerComponent3.Create(Nil);
|
|
Try
|
|
LoadFromTextStream(C);
|
|
AssertEquals('Name','TestTIntegerComponent3',C.Name);
|
|
AssertEquals('IntProp',262144,C.IntProp);
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTIntegerComponent4Read;
|
|
|
|
Var
|
|
C : TIntegerComponent4;
|
|
|
|
begin
|
|
TestTIntegerComponent4;
|
|
C:=TIntegerComponent4.Create(Nil);
|
|
Try
|
|
LoadFromStream(C);
|
|
AssertEquals('Name','TestTIntegerComponent4',C.Name);
|
|
AssertEquals('IntProp',6,C.IntProp);
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTIntegerComponent5Read;
|
|
|
|
Var
|
|
C : TIntegerComponent5;
|
|
|
|
begin
|
|
TestTIntegerComponent5;
|
|
C:=TIntegerComponent5.Create(Nil);
|
|
Try
|
|
LoadFromStream(C);
|
|
AssertEquals('Name','TestTIntegerComponent5',C.Name);
|
|
AssertEquals('IntProp',5,C.IntProp);
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTInt64ComponentRead;
|
|
|
|
Var
|
|
C : TInt64Component;
|
|
|
|
begin
|
|
TestTInt64Component;
|
|
C:=TInt64Component.Create(Nil);
|
|
Try
|
|
C.Int64Prop:=0;
|
|
LoadFromStream(C);
|
|
AssertEquals('Name','TestTInt64Component',C.Name);
|
|
AssertEquals('Int64Prop',4,C.Int64Prop);
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTInt64ComponentReadText;
|
|
Var
|
|
C : TInt64Component;
|
|
|
|
begin
|
|
TestTInt64ComponentText;
|
|
C:=TInt64Component.Create(Nil);
|
|
Try
|
|
C.Int64Prop:=0;
|
|
LoadFromTextStream(C);
|
|
AssertEquals('Name','TestTInt64Component',C.Name);
|
|
AssertEquals('Int64Prop',4,C.Int64Prop);
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTInt64Component2Read;
|
|
|
|
Var
|
|
C : TInt64Component2;
|
|
|
|
begin
|
|
TestTInt64Component2;
|
|
C:=TInt64Component2.Create(Nil);
|
|
Try
|
|
C.Int64Prop:=0;
|
|
LoadFromStream(C);
|
|
AssertEquals('Name','TestTInt64Component2',C.Name);
|
|
AssertEquals('Int64Prop',2 shl 9,C.Int64Prop);
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTInt64Component2ReadText;
|
|
|
|
Var
|
|
C : TInt64Component2;
|
|
|
|
begin
|
|
TestTInt64Component2Text;
|
|
C:=TInt64Component2.Create(Nil);
|
|
Try
|
|
C.Int64Prop:=0;
|
|
LoadFromTextStream(C);
|
|
AssertEquals('Name','TestTInt64Component2',C.Name);
|
|
AssertEquals('Int64Prop',2 shl 9,C.Int64Prop);
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTInt64Component3Read;
|
|
|
|
Var
|
|
C : TInt64Component3;
|
|
|
|
begin
|
|
TestTInt64Component3;
|
|
C:=TInt64Component3.Create(Nil);
|
|
Try
|
|
C.Int64Prop:=0;
|
|
LoadFromStream(C);
|
|
AssertEquals('Name','TestTInt64Component3',C.Name);
|
|
AssertEquals('Int64Prop',2 shl 17,C.Int64Prop);
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTInt64Component3ReadText;
|
|
Var
|
|
C : TInt64Component3;
|
|
|
|
begin
|
|
TestTInt64Component3Text;
|
|
C:=TInt64Component3.Create(Nil);
|
|
Try
|
|
C.Int64Prop:=0;
|
|
LoadFromTextStream(C);
|
|
AssertEquals('Name','TestTInt64Component3',C.Name);
|
|
AssertEquals('Int64Prop',2 shl 17,C.Int64Prop);
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTInt64Component4Read;
|
|
|
|
Var
|
|
C : TInt64Component4;
|
|
|
|
begin
|
|
TestTInt64Component4;
|
|
C:=TInt64Component4.Create(Nil);
|
|
Try
|
|
C.Int64Prop:=0;
|
|
LoadFromStream(C);
|
|
AssertEquals('Name','TestTInt64Component4',C.Name);
|
|
AssertEquals('Int64Prop',NativeInt(MaxInt)+NativeInt(2 shl 14),C.Int64Prop);
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTInt64Component4ReadText;
|
|
Var
|
|
C : TInt64Component4;
|
|
|
|
begin
|
|
TestTInt64Component4Text;
|
|
C:=TInt64Component4.Create(Nil);
|
|
Try
|
|
C.Int64Prop:=0;
|
|
LoadFromTextStream(C);
|
|
AssertEquals('Name','TestTInt64Component4',C.Name);
|
|
AssertEquals('Int64Prop',NativeInt(MaxInt)+NativeInt(2 shl 14),C.Int64Prop);
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTInt64Component5Read;
|
|
|
|
Var
|
|
C : TInt64Component5;
|
|
|
|
begin
|
|
TestTInt64Component5;
|
|
C:=TInt64Component5.Create(Nil);
|
|
Try
|
|
C.Int64Prop:=0;
|
|
LoadFromStream(C);
|
|
AssertEquals('Name','TestTInt64Component5',C.Name);
|
|
// Not written, so zero remains
|
|
AssertEquals('Int64Prop',0,C.Int64Prop);
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTInt64Component6Read;
|
|
Var
|
|
C : TInt64Component6;
|
|
|
|
begin
|
|
TestTInt64Component6;
|
|
C:=TInt64Component6.Create(Nil);
|
|
Try
|
|
C.Int64Prop:=0;
|
|
LoadFromStream(C);
|
|
AssertEquals('Name','TestTInt64Component6',C.Name);
|
|
AssertEquals('Int64Prop',8,C.Int64Prop);
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTCharComponentRead;
|
|
Var
|
|
C : TCharComponent;
|
|
|
|
begin
|
|
TestTCharComponent;
|
|
C:=TCharComponent.Create(Nil);
|
|
Try
|
|
C.CharProp:='A';
|
|
LoadFromStream(C);
|
|
AssertEquals('Name','TestTCharComponent',C.Name);
|
|
AssertEquals('StringProp',#10,C.CharProp);
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTStringComponentRead;
|
|
|
|
Var
|
|
C : TStringComponent;
|
|
|
|
begin
|
|
TestTStringComponent;
|
|
C:=TStringComponent.Create(Nil);
|
|
Try
|
|
C.StringProp:='';
|
|
LoadFromStream(C);
|
|
AssertEquals('Name','TestTStringComponent',C.Name);
|
|
AssertEquals('StringProp','A string',C.StringProp);
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTStringComponentReadText;
|
|
Var
|
|
C : TStringComponent;
|
|
|
|
begin
|
|
TestTStringComponentText;
|
|
C:=TStringComponent.Create(Nil);
|
|
Try
|
|
C.StringProp:='';
|
|
LoadFromTextStream(C);
|
|
AssertEquals('Name','TestTStringComponent',C.Name);
|
|
AssertEquals('StringProp','A string',C.StringProp);
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTStringComponent2Read;
|
|
|
|
Var
|
|
C : TStringComponent2;
|
|
|
|
begin
|
|
TestTStringComponent2;
|
|
C:=TStringComponent2.Create(Nil);
|
|
Try
|
|
C.StringProp:='abc';
|
|
LoadFromStream(C);
|
|
AssertEquals('Name','TestTStringComponent2',C.Name);
|
|
AssertEquals('StringProp','abc',C.StringProp);
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTWideStringComponentRead;
|
|
|
|
Var
|
|
C : TWideStringComponent;
|
|
|
|
begin
|
|
TestTWideStringComponent;
|
|
C:=TWideStringComponent.Create(Nil);
|
|
Try
|
|
C.WideStringProp:='abc';
|
|
LoadFromStream(C);
|
|
AssertEquals('Name','TestTWideStringComponent',C.Name);
|
|
AssertEquals('WideStringProp','Some WideString',C.WideStringProp);
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTWideStringComponentReadText;
|
|
Var
|
|
C : TWideStringComponent;
|
|
|
|
begin
|
|
TestTWideStringComponentText;
|
|
C:=TWideStringComponent.Create(Nil);
|
|
Try
|
|
C.WideStringProp:='abc';
|
|
LoadFromTextStream(C);
|
|
AssertEquals('Name','TestTWideStringComponent',C.Name);
|
|
AssertEquals('WideStringProp','Some WideString',C.WideStringProp);
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTWideStringComponent2Read;
|
|
Var
|
|
C : TWideStringComponent2;
|
|
|
|
begin
|
|
TestTWideStringComponent2;
|
|
C:=TWideStringComponent2.Create(Nil);
|
|
Try
|
|
C.WideStringProp:='abc';
|
|
LoadFromStream(C);
|
|
AssertEquals('Name','TestTWideStringComponent2',C.Name);
|
|
AssertEquals('WideStringProp','abc',C.WideStringProp);
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTSingleComponentRead;
|
|
|
|
Var
|
|
C : TSingleComponent;
|
|
|
|
begin
|
|
TestTSingleComponent;
|
|
C:=TSingleComponent.Create(Nil);
|
|
Try
|
|
C.SingleProp:=0;
|
|
LoadFromStream(C);
|
|
AssertEquals('Name','TestTSingleComponent',C.Name);
|
|
AssertEquals('SingleProp',1.23,C.SingleProp,0.01);
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTDoubleComponentRead;
|
|
|
|
Var
|
|
C : TDoubleComponent;
|
|
|
|
begin
|
|
TestTDoubleComponent;
|
|
C:=TDoubleComponent.Create(Nil);
|
|
Try
|
|
C.DoubleProp:=0;
|
|
LoadFromStream(C);
|
|
AssertEquals('Name','TestTDoubleComponent',C.Name);
|
|
AssertEquals('DoubleProp',2.34,C.DoubleProp,0.01);
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTDoubleComponentReadText;
|
|
Var
|
|
C : TDoubleComponent;
|
|
|
|
begin
|
|
TestTDoubleComponentText;
|
|
C:=TDoubleComponent.Create(Nil);
|
|
Try
|
|
C.DoubleProp:=0;
|
|
LoadFromTextStream(C);
|
|
AssertEquals('Name','TestTDoubleComponent',C.Name);
|
|
// TODO: extend precision to 0.1
|
|
AssertEquals('DoubleProp',2.34,C.DoubleProp,0.1);
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTExtendedComponentRead;
|
|
|
|
Var
|
|
C : TExtendedComponent;
|
|
|
|
begin
|
|
TestTExtendedComponent;
|
|
C:=TExtendedComponent.Create(Nil);
|
|
Try
|
|
C.ExtendedProp:=0;
|
|
LoadFromStream(C);
|
|
AssertEquals('Name','TestTExtendedComponent',C.Name);
|
|
AssertEquals('ExtendedProp',3.45,C.ExtendedProp,0.01);
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTCurrencyComponentRead;
|
|
|
|
Var
|
|
C : TCurrencyComponent;
|
|
|
|
begin
|
|
TestTCurrencyComponent;
|
|
C:=TCurrencyComponent.Create(Nil);
|
|
Try
|
|
C.CurrencyProp:=0;
|
|
LoadFromStream(C);
|
|
AssertEquals('Name','TestTCurrencyComponent',C.Name);
|
|
AssertEquals('CurrencyProp',5.67,C.CurrencyProp,0.01);
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTDateTimeComponentRead;
|
|
|
|
Var
|
|
C : TDateTimeComponent;
|
|
|
|
begin
|
|
TestTDateTimeComponent;
|
|
C:=TDateTimeComponent.Create(Nil);
|
|
Try
|
|
C.DateTimeProp:=0;
|
|
LoadFromStream(C);
|
|
AssertEquals('Name','TestTDateTimeComponent',C.Name);
|
|
AssertEquals('DateTimeProp',35278.00,C.DateTimeProp,0.01);
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTDateTimeComponent2Read;
|
|
|
|
Var
|
|
C : TDateTimeComponent2;
|
|
|
|
begin
|
|
TestTDateTimeComponent2;
|
|
C:=TDateTimeComponent2.Create(Nil);
|
|
Try
|
|
C.DateTimeProp:=0;
|
|
LoadFromStream(C);
|
|
AssertEquals('Name','TestTDateTimeComponent2',C.Name);
|
|
AssertEquals('DateTimeProp',0.97,C.DateTimeProp,0.01);
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTDateTimeComponent3Read;
|
|
Var
|
|
C : TDateTimeComponent3;
|
|
|
|
begin
|
|
TestTDateTimeComponent3;
|
|
C:=TDateTimeComponent3.Create(Nil);
|
|
Try
|
|
C.DateTimeProp:=0;
|
|
LoadFromStream(C);
|
|
AssertEquals('Name','TestTDateTimeComponent3',C.Name);
|
|
AssertEquals('DateTimeProp',35278.97,C.DateTimeProp,0.01);
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTEnumComponentRead;
|
|
|
|
Var
|
|
C : TEnumComponent;
|
|
|
|
begin
|
|
TestTEnumComponent;
|
|
C:=TEnumComponent.Create(Nil);
|
|
Try
|
|
C.Dice:=One;
|
|
LoadFromStream(C);
|
|
AssertEquals('Name','TestTEnumComponent',C.Name);
|
|
AssertTrue('Dice',four=C.Dice);
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTEnumComponentReadText;
|
|
Var
|
|
C : TEnumComponent;
|
|
|
|
begin
|
|
TestTEnumComponentText;
|
|
C:=TEnumComponent.Create(Nil);
|
|
Try
|
|
C.Dice:=One;
|
|
LoadFromTextStream(C);
|
|
AssertEquals('Name','TestTEnumComponent',C.Name);
|
|
AssertTrue('Dice',four=C.Dice);
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTEnumComponent2Read;
|
|
|
|
Var
|
|
C : TEnumComponent2;
|
|
|
|
begin
|
|
TestTEnumComponent2;
|
|
C:=TEnumComponent2.Create(Nil);
|
|
Try
|
|
C.Dice:=Three;
|
|
LoadFromStream(C);
|
|
AssertEquals('Name','TestTEnumComponent2',C.Name);
|
|
// Stream does a value
|
|
AssertTrue('Dice',One=C.Dice);
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTEnumComponent3Read;
|
|
|
|
Var
|
|
C : TEnumComponent3;
|
|
|
|
begin
|
|
TestTEnumComponent3;
|
|
C:=TEnumComponent3.Create(Nil);
|
|
Try
|
|
LoadFromStream(C);
|
|
AssertEquals('Name','TestTEnumComponent3',C.Name);
|
|
// Stream does not contain a value
|
|
AssertTrue('Dice',Three=C.Dice);
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTEnumComponent4Read;
|
|
|
|
Var
|
|
C : TEnumComponent4;
|
|
|
|
begin
|
|
TestTEnumComponent4;
|
|
C:=TEnumComponent4.Create(Nil);
|
|
Try
|
|
C.Dice:=six;
|
|
LoadFromStream(C);
|
|
AssertEquals('Name','TestTEnumComponent4',C.Name);
|
|
// Stream does not contain a value
|
|
AssertTrue('Dice',Six=C.Dice);
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTEnumComponent5Read;
|
|
Var
|
|
C : TEnumComponent5;
|
|
|
|
begin
|
|
TestTEnumComponent5;
|
|
C:=TEnumComponent5.Create(Nil);
|
|
Try
|
|
C.Dice:=six;
|
|
LoadFromStream(C);
|
|
AssertEquals('Name','TestTEnumComponent5',C.Name);
|
|
// Stream does not contain a value
|
|
AssertTrue('Dice',Six=C.Dice);
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTSetComponentRead;
|
|
|
|
Var
|
|
C : TSetComponent;
|
|
|
|
begin
|
|
TestTSetComponent;
|
|
C:=TSetComponent.Create(Nil);
|
|
Try
|
|
C.Throw:=[];
|
|
LoadFromStream(C);
|
|
AssertEquals('Name','TestTSetComponent',C.Name);
|
|
AssertTrue('Throw',[two,five]=C.Throw);
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTSetComponentReadText;
|
|
Var
|
|
C : TSetComponent;
|
|
|
|
begin
|
|
TestTSetComponentText;
|
|
C:=TSetComponent.Create(Nil);
|
|
Try
|
|
C.Throw:=[];
|
|
LoadFromTextStream(C);
|
|
AssertEquals('Name','TestTSetComponent',C.Name);
|
|
AssertTrue('Throw',[two,five]=C.Throw);
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTSetComponent2Read;
|
|
|
|
Var
|
|
C : TSetComponent2;
|
|
|
|
begin
|
|
TestTSetComponent2;
|
|
C:=TSetComponent2.Create(Nil);
|
|
Try
|
|
C.Throw:=[one,six];
|
|
LoadFromStream(C);
|
|
AssertEquals('Name','TestTSetComponent2',C.Name);
|
|
// Nothing was streamed
|
|
AssertTrue('Throw',[one,six]=C.Throw);
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTSetComponent3Read;
|
|
|
|
Var
|
|
C : TSetComponent3;
|
|
|
|
begin
|
|
TestTSetComponent3;
|
|
C:=TSetComponent3.Create(Nil);
|
|
Try
|
|
C.Throw:=[two,six];
|
|
LoadFromStream(C);
|
|
AssertEquals('Name','TestTSetComponent3',C.Name);
|
|
// Nothing was streamed
|
|
AssertTrue('Throw',[one,four]=C.Throw);
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTSetComponent4Read;
|
|
|
|
Var
|
|
C : TSetComponent4;
|
|
|
|
begin
|
|
TestTSetComponent4;
|
|
C:=TSetComponent4.Create(Nil);
|
|
Try
|
|
C.Throw:=[two,six];
|
|
LoadFromStream(C);
|
|
AssertEquals('Name','TestTSetComponent4',C.Name);
|
|
// Nothing was streamed
|
|
AssertTrue('Throw',[two,six]=C.Throw);
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTMultipleComponentRead;
|
|
|
|
Var
|
|
C : TMultipleComponent;
|
|
|
|
begin
|
|
TestTMultipleComponent;
|
|
C:=TMultipleComponent.Create(Nil);
|
|
Try
|
|
c.IntProp:=23;
|
|
C.Dice:=six;
|
|
C.CurrencyProp:=12.3;
|
|
C.StringProp:='abc';
|
|
LoadFromStream(C);
|
|
AssertEquals('Name','TestTMultipleComponent',C.Name);
|
|
AssertEquals('IntProp',1,C.IntProp);
|
|
AssertEquals('StringProp','A String',C.StringProp);
|
|
AssertEquals('CurrencyProp',2.3,C.CurrencyProp,0.1);
|
|
AssertTrue('Dice',two=C.Dice);
|
|
AssertTrue('Throw',[three,four]=C.Throw);
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTMultipleComponentReadText;
|
|
|
|
Var
|
|
C : TMultipleComponent;
|
|
|
|
begin
|
|
TestTMultipleComponentText;
|
|
C:=TMultipleComponent.Create(Nil);
|
|
Try
|
|
c.IntProp:=23;
|
|
C.Dice:=six;
|
|
C.CurrencyProp:=12.3;
|
|
C.StringProp:='abc';
|
|
LoadFromTextStream(C);
|
|
AssertEquals('Name','TestTMultipleComponent',C.Name);
|
|
AssertEquals('IntProp',1,C.IntProp);
|
|
AssertEquals('StringProp','A String',C.StringProp);
|
|
AssertEquals('CurrencyProp',2.3,C.CurrencyProp,0.1);
|
|
AssertTrue('Dice',two=C.Dice);
|
|
AssertTrue('Throw',[three,four]=C.Throw);
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTPersistentComponentRead;
|
|
|
|
Var
|
|
C : TPersistentComponent;
|
|
|
|
begin
|
|
TestTPersistentComponent;
|
|
C:=TPersistentComponent.Create(Nil);
|
|
Try
|
|
C.Persist.AInteger:=36;
|
|
C.Persist.AString:='nono';
|
|
LoadFromStream(C);
|
|
AssertEquals('Name','TestTPersistentComponent',C.Name);
|
|
AssertEquals('Persist.AInteger',3,C.Persist.AInteger);
|
|
AssertEquals('Persist.AString','A persistent string',C.Persist.AString);
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTPersistentComponentReadText;
|
|
Var
|
|
C : TPersistentComponent;
|
|
|
|
begin
|
|
TestTPersistentComponentText;
|
|
C:=TPersistentComponent.Create(Nil);
|
|
Try
|
|
C.Persist.AInteger:=36;
|
|
C.Persist.AString:='nono';
|
|
LoadFromTextStream(C);
|
|
AssertEquals('Name','TestTPersistentComponent',C.Name);
|
|
AssertEquals('Persist.AInteger',3,C.Persist.AInteger);
|
|
AssertEquals('Persist.AString','A persistent string',C.Persist.AString);
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTCollectionComponentRead;
|
|
|
|
Var
|
|
C : TCollectionComponent;
|
|
|
|
begin
|
|
TestTCollectionComponent;
|
|
C:=TCollectionComponent.Create(Nil);
|
|
Try
|
|
C.Coll.Add;
|
|
LoadFromStream(C);
|
|
AssertEquals('Name','TestTCollectionComponent',C.Name);
|
|
// If the stream does not have a collection, it does not get cleared
|
|
AssertEquals('Coll count',1,C.Coll.Count);
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTCollectionComponentReadText;
|
|
|
|
Var
|
|
C : TCollectionComponent;
|
|
|
|
begin
|
|
TestTCollectionComponentText;
|
|
C:=TCollectionComponent.Create(Nil);
|
|
Try
|
|
C.Coll.Add;
|
|
LoadFromTextStream(C);
|
|
AssertEquals('Name','TestTCollectionComponent',C.Name);
|
|
// If the stream does not have a collection, it does not get cleared
|
|
AssertEquals('Coll count',1,C.Coll.Count);
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTCollectionComponent2Read;
|
|
|
|
Var
|
|
C : TCollectionComponent2;
|
|
|
|
begin
|
|
TestTCollectionComponent2;
|
|
C:=TCollectionComponent2.Create(Nil);
|
|
Try
|
|
C.Coll.Add;
|
|
LoadFromStream(C);
|
|
AssertEquals('Name','TestTCollectionComponent2',C.Name);
|
|
AssertEquals('Coll count',3,C.Coll.Count);
|
|
AssertEquals('Correct class type',TTestItem,C.Coll.Items[0].ClassType);
|
|
AssertEquals('Coll 0 Property','First',TTestItem(C.Coll.items[0]).StrProp);
|
|
AssertEquals('Coll 1 Property','Second',TTestItem(C.Coll.Items[1]).StrProp);
|
|
AssertEquals('Coll 2 Property','Third',TTestItem(C.Coll.Items[2]).StrProp);
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTCollectionComponent2ReadText;
|
|
|
|
Var
|
|
C : TCollectionComponent2;
|
|
|
|
begin
|
|
TestTCollectionComponent2Text;
|
|
C:=TCollectionComponent2.Create(Nil);
|
|
Try
|
|
C.Coll.Add;
|
|
LoadFromTextStream(C);
|
|
AssertEquals('Name','TestTCollectionComponent2',C.Name);
|
|
AssertEquals('Coll count',3,C.Coll.Count);
|
|
AssertEquals('Correct class type',TTestItem,C.Coll.Items[0].ClassType);
|
|
AssertEquals('Coll 0 Property','First',TTestItem(C.Coll.items[0]).StrProp);
|
|
AssertEquals('Coll 1 Property','Second',TTestItem(C.Coll.Items[1]).StrProp);
|
|
AssertEquals('Coll 2 Property','Third',TTestItem(C.Coll.Items[2]).StrProp);
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTCollectionComponent3Read;
|
|
|
|
Var
|
|
C : TCollectionComponent3;
|
|
|
|
begin
|
|
TestTCollectionComponent3;
|
|
C:=TCollectionComponent3.Create(Nil);
|
|
Try
|
|
C.Coll.Add;
|
|
LoadFromStream(C);
|
|
AssertEquals('Name','TestTCollectionComponent3',C.Name);
|
|
AssertEquals('Coll count',3,C.Coll.Count);
|
|
AssertEquals('Correct class type',TTestItem,C.Coll.Items[0].ClassType);
|
|
AssertEquals('Coll 0 Property','First',TTestItem(C.Coll.items[0]).StrProp);
|
|
AssertEquals('Coll 1 Property','',TTestItem(C.Coll.Items[1]).StrProp);
|
|
AssertEquals('Coll 2 Property','Third',TTestItem(C.Coll.Items[2]).StrProp);
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTCollectionComponent4Read;
|
|
|
|
Var
|
|
C : TCollectionComponent4;
|
|
|
|
begin
|
|
TestTCollectionComponent4;
|
|
C:=TCollectionComponent4.Create(Nil);
|
|
Try
|
|
C.Coll.Add;
|
|
LoadFromStream(C);
|
|
AssertEquals('Name','TestTCollectionComponent4',C.Name);
|
|
AssertEquals('Coll count',1,C.Coll.Count);
|
|
AssertEquals('Correct class type',TTestItem,C.Coll.Items[0].ClassType);
|
|
AssertEquals('Coll 0 Property','Something',TTestItem(C.Coll.items[0]).StrProp);
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTCollectionComponent5Read;
|
|
|
|
Var
|
|
C : TCollectionComponent5;
|
|
|
|
begin
|
|
TestTCollectionComponent5;
|
|
C:=TCollectionComponent5.Create(Nil);
|
|
Try
|
|
C.Coll.Add;
|
|
LoadFromStream(C);
|
|
AssertEquals('Name','TestTCollectionComponent5',C.Name);
|
|
AssertEquals('Coll count',2,C.Coll.Count);
|
|
AssertEquals('Correct class type',TTest2Item,C.Coll.Items[0].ClassType);
|
|
AssertEquals('Coll 0 Property 1','Something',TTest2Item(C.Coll.items[0]).StrProp1);
|
|
AssertEquals('Coll 0 Property 2','Otherthing',TTest2Item(C.Coll.items[0]).StrProp2);
|
|
AssertEquals('Coll 1 property 1','Something 2',TTest2Item(C.Coll.items[1]).StrProp1);
|
|
AssertEquals('Coll 1 property 2','Otherthing 2',TTest2Item(C.Coll.items[1]).StrProp2);
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTOwnedComponentRead;
|
|
|
|
Var
|
|
C : TOwnedComponent;
|
|
C2 : TComponent;
|
|
begin
|
|
TestTOwnedComponent;
|
|
C:=TOwnedComponent.Create(Nil);
|
|
try
|
|
C2:=C.CompProp;
|
|
C.CompProp:=nil;
|
|
LoadFromStream(C);
|
|
AssertEquals('Name','TestTOwnedComponent',C.Name);
|
|
AssertEquals('ComponentCount',1,C.ComponentCount);
|
|
AssertSame('ComponentCount',C2,C.CompProp);
|
|
finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTOwnedComponentReadText;
|
|
|
|
Var
|
|
C : TOwnedComponent;
|
|
C2 : TComponent;
|
|
|
|
begin
|
|
TestTOwnedComponentText;
|
|
C:=TOwnedComponent.Create(Nil);
|
|
try
|
|
C2:=C.CompProp;
|
|
C.CompProp:=nil;
|
|
LoadFromTextStream(C);
|
|
AssertEquals('Name','TestTOwnedComponent',C.Name);
|
|
AssertEquals('ComponentCount',1,C.ComponentCount);
|
|
AssertSame('ComponentCount',C2,C.CompProp);
|
|
finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTStreamedOwnedComponentRead;
|
|
|
|
Var
|
|
C : TStreamedOwnedComponent;
|
|
|
|
begin
|
|
TestTStreamedOwnedComponent;
|
|
C:=TStreamedOwnedComponent.Create(Nil);
|
|
Try
|
|
C.Sub.Free;
|
|
C.Sub:=Nil;
|
|
LoadFromStream(C);
|
|
AssertEquals('Name','TestTStreamedOwnedComponent',C.Name);
|
|
AssertNotNull('Have sub',C.Sub);
|
|
AssertEquals('Correct class',TIntegerComponent,C.Sub.ClassType);
|
|
AssertEquals('Name','Sub',C.Sub.Name);
|
|
AssertEquals('Name',3,C.Sub.IntProp);
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTStreamedOwnedComponentReadText;
|
|
|
|
Var
|
|
C : TStreamedOwnedComponent;
|
|
|
|
begin
|
|
TestTStreamedOwnedComponentText;
|
|
C:=TStreamedOwnedComponent.Create(Nil);
|
|
Try
|
|
C.Sub.Free;
|
|
C.Sub:=Nil;
|
|
LoadFromTextStream(C);
|
|
AssertEquals('Name','TestTStreamedOwnedComponent',C.Name);
|
|
AssertNotNull('Have sub',C.Sub);
|
|
AssertEquals('Correct class',TIntegerComponent,C.Sub.ClassType);
|
|
AssertEquals('Name','Sub',C.Sub.Name);
|
|
AssertEquals('Name',3,C.Sub.IntProp);
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTStreamedOwnedComponentsRead;
|
|
|
|
Var
|
|
C : TStreamedOwnedComponents;
|
|
|
|
begin
|
|
TestTStreamedOwnedComponents;
|
|
C:=TStreamedOwnedComponents.Create(Nil);
|
|
Try
|
|
C.SubA.Free;
|
|
C.SubA:=Nil;
|
|
C.SubB.Free;
|
|
C.SubB:=Nil;
|
|
LoadFromStream(C);
|
|
AssertEquals('Name','TestTStreamedOwnedComponents',C.Name);
|
|
AssertNotNull('Have sub A',C.SubA);
|
|
AssertEquals('Correct sub A class',TIntegerComponent,C.SubA.ClassType);
|
|
AssertEquals('Name','SubA',C.SubA.Name);
|
|
AssertEquals('Name',3,C.SubA.IntProp);
|
|
AssertNotNull('Have sub B',C.SubB);
|
|
AssertEquals('Correct sub B class',TStringComponent,C.SubB.ClassType);
|
|
AssertEquals('Name','SubB',C.SubB.Name);
|
|
AssertEquals('Name','A string',C.SubB.StringProp);
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTStreamedOwnedComponentsReadText;
|
|
|
|
Var
|
|
C : TStreamedOwnedComponents;
|
|
|
|
begin
|
|
TestTStreamedOwnedComponentsText;
|
|
C:=TStreamedOwnedComponents.Create(Nil);
|
|
Try
|
|
C.SubA.Free;
|
|
C.SubA:=Nil;
|
|
C.SubB.Free;
|
|
C.SubB:=Nil;
|
|
LoadFromTextStream(C);
|
|
AssertEquals('Name','TestTStreamedOwnedComponents',C.Name);
|
|
AssertNotNull('Have sub A',C.SubA);
|
|
AssertEquals('Correct sub A class',TIntegerComponent,C.SubA.ClassType);
|
|
AssertEquals('Name','SubA',C.SubA.Name);
|
|
AssertEquals('Name',3,C.SubA.IntProp);
|
|
AssertNotNull('Have sub B',C.SubB);
|
|
AssertEquals('Correct sub B class',TStringComponent,C.SubB.ClassType);
|
|
AssertEquals('Name','SubB',C.SubB.Name);
|
|
AssertEquals('Name','A string',C.SubB.StringProp);
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTIntegerComponent2;
|
|
|
|
Var
|
|
C : TComponent;
|
|
|
|
begin
|
|
C:=TIntegerComponent2.Create(Nil);
|
|
Try
|
|
SaveToStream(C);
|
|
ExpectSignature;
|
|
ExpectFlags([],0);
|
|
ExpectBareString('TIntegerComponent2');
|
|
ExpectBareString('TestTIntegerComponent2');
|
|
ExpectBareString('IntProp');
|
|
ExpectInteger(1024);
|
|
ExpectEndOfList;
|
|
ExpectEndOfList;
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTIntegerComponent2Text;
|
|
|
|
Const
|
|
SData3 =
|
|
'object TestTIntegerComponent2: TIntegerComponent2'+sLineBreak+
|
|
' IntProp = 1024'+sLineBreak+
|
|
'end'+sLineBreak;
|
|
|
|
begin
|
|
TestTIntegerComponent2;
|
|
CheckAsString(SData3);
|
|
end;
|
|
|
|
|
|
procedure TTestComponentStream.TestTIntegerComponent3;
|
|
|
|
Var
|
|
C : TComponent;
|
|
|
|
begin
|
|
C:=TIntegerComponent3.Create(Nil);
|
|
Try
|
|
SaveToStream(C);
|
|
ExpectSignature;
|
|
ExpectFlags([],0);
|
|
ExpectBareString('TIntegerComponent3');
|
|
ExpectBareString('TestTIntegerComponent3');
|
|
ExpectBareString('IntProp');
|
|
ExpectInteger(262144);
|
|
ExpectEndOfList;
|
|
ExpectEndOfList;
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTIntegerComponent3Text;
|
|
|
|
Const
|
|
SData4 =
|
|
'object TestTIntegerComponent3: TIntegerComponent3'+sLineBreak+
|
|
' IntProp = 262144'+sLineBreak+
|
|
'end'+sLineBreak;
|
|
|
|
begin
|
|
TestTIntegerComponent3;
|
|
CheckAsString(SData4);
|
|
end;
|
|
|
|
|
|
procedure TTestComponentStream.TestTIntegerComponent4;
|
|
|
|
Var
|
|
C : TComponent;
|
|
|
|
begin
|
|
C:=TIntegerComponent4.Create(Nil);
|
|
Try
|
|
SaveToStream(C);
|
|
ExpectSignature;
|
|
ExpectFlags([],0);
|
|
ExpectBareString('TIntegerComponent4');
|
|
ExpectBareString('TestTIntegerComponent4');
|
|
ExpectEndOfList;
|
|
ExpectEndOfList;
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestComponentStream.TestTIntegerComponent5;
|
|
|
|
Var
|
|
C : TComponent;
|
|
|
|
begin
|
|
C:=TIntegerComponent5.Create(Nil);
|
|
Try
|
|
SaveToStream(C);
|
|
ExpectSignature;
|
|
ExpectFlags([],0);
|
|
ExpectBareString('TIntegerComponent5');
|
|
ExpectBareString('TestTIntegerComponent5');
|
|
ExpectBareString('IntProp');
|
|
ExpectInteger(5);
|
|
ExpectEndOfList;
|
|
ExpectEndOfList;
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestComponentStream.TestTInt64Component;
|
|
|
|
Var
|
|
C : TComponent;
|
|
|
|
begin
|
|
C:=TInt64Component.Create(Nil);
|
|
Try
|
|
SaveToStream(C);
|
|
ExpectSignature;
|
|
ExpectFlags([],0);
|
|
ExpectBareString('TInt64Component');
|
|
ExpectBareString('TestTInt64Component');
|
|
ExpectBareString('Int64Prop');
|
|
ExpectInteger(4);
|
|
ExpectEndOfList;
|
|
ExpectEndOfList;
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTInt64ComponentText;
|
|
|
|
Const
|
|
SData5 =
|
|
'object TestTInt64Component: TInt64Component'+sLineBreak+
|
|
' Int64Prop = 4'+sLineBreak+
|
|
'end'+sLineBreak;
|
|
|
|
begin
|
|
TestTInt64Component;
|
|
CheckAsString(SData5);
|
|
end;
|
|
|
|
|
|
procedure TTestComponentStream.TestTInt64Component2;
|
|
|
|
Var
|
|
C : TComponent;
|
|
|
|
begin
|
|
C:=TInt64Component2.Create(Nil);
|
|
Try
|
|
SaveToStream(C);
|
|
ExpectSignature;
|
|
ExpectFlags([],0);
|
|
ExpectBareString('TInt64Component2');
|
|
ExpectBareString('TestTInt64Component2');
|
|
ExpectBareString('Int64Prop');
|
|
ExpectInteger(1024);
|
|
ExpectEndOfList;
|
|
ExpectEndOfList;
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTInt64Component2Text;
|
|
|
|
Const
|
|
SData6 =
|
|
'object TestTInt64Component2: TInt64Component2'+sLineBreak+
|
|
' Int64Prop = 1024'+sLineBreak+
|
|
'end'+sLineBreak;
|
|
|
|
begin
|
|
TestTInt64Component2;
|
|
CheckAsString(SData6);
|
|
end;
|
|
|
|
|
|
procedure TTestComponentStream.TestTInt64Component3;
|
|
|
|
Var
|
|
C : TComponent;
|
|
|
|
begin
|
|
C:=TInt64Component3.Create(Nil);
|
|
Try
|
|
SaveToStream(C);
|
|
ExpectSignature;
|
|
ExpectFlags([],0);
|
|
ExpectBareString('TInt64Component3');
|
|
ExpectBareString('TestTInt64Component3');
|
|
ExpectBareString('Int64Prop');
|
|
ExpectInteger(262144);
|
|
ExpectEndOfList;
|
|
ExpectEndOfList;
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTInt64Component3Text;
|
|
|
|
Const
|
|
SData7 =
|
|
'object TestTInt64Component3: TInt64Component3'+sLineBreak+
|
|
' Int64Prop = 262144'+sLineBreak+
|
|
'end'+sLineBreak;
|
|
|
|
begin
|
|
TestTInt64Component3;
|
|
CheckAsString(SData7);
|
|
end;
|
|
|
|
|
|
procedure TTestComponentStream.TestTInt64Component4;
|
|
|
|
Var
|
|
C : TComponent;
|
|
|
|
begin
|
|
C:=TInt64Component4.Create(Nil);
|
|
Try
|
|
SaveToStream(C);
|
|
ExpectSignature;
|
|
ExpectFlags([],0);
|
|
ExpectBareString('TInt64Component4');
|
|
ExpectBareString('TestTInt64Component4');
|
|
ExpectBareString('Int64Prop');
|
|
ExpectInt64(2147516415{ 2147745791});
|
|
ExpectEndOfList;
|
|
ExpectEndOfList;
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTInt64Component4Text;
|
|
|
|
Const
|
|
SData8 =
|
|
'object TestTInt64Component4: TInt64Component4'+sLineBreak+
|
|
' Int64Prop = 2147516415'+sLineBreak+
|
|
'end'+sLineBreak;
|
|
|
|
begin
|
|
TestTInt64Component4;
|
|
CheckAsString(SData8);
|
|
end;
|
|
|
|
|
|
procedure TTestComponentStream.TestTInt64Component5;
|
|
|
|
Var
|
|
C : TComponent;
|
|
|
|
begin
|
|
C:=TInt64Component5.Create(Nil);
|
|
Try
|
|
SaveToStream(C);
|
|
ExpectSignature;
|
|
ExpectFlags([],0);
|
|
ExpectBareString('TInt64Component5');
|
|
ExpectBareString('TestTInt64Component5');
|
|
// ExpectBareString('Int64Prop');
|
|
// ExpectInteger(7);
|
|
ExpectEndOfList;
|
|
ExpectEndOfList;
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestComponentStream.TestTInt64Component6;
|
|
|
|
Var
|
|
C : TComponent;
|
|
|
|
begin
|
|
C:=TInt64Component6.Create(Nil);
|
|
Try
|
|
SaveToStream(C);
|
|
ExpectSignature;
|
|
ExpectFlags([],0);
|
|
ExpectBareString('TInt64Component6');
|
|
ExpectBareString('TestTInt64Component6');
|
|
ExpectBareString('Int64Prop');
|
|
ExpectInteger(8);
|
|
ExpectEndOfList;
|
|
ExpectEndOfList;
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTCharComponent;
|
|
|
|
Var
|
|
C : TComponent;
|
|
|
|
begin
|
|
C:=TCharComponent.Create(Nil);
|
|
Try
|
|
SaveToStream(C);
|
|
ExpectSignature;
|
|
ExpectFlags([],0);
|
|
ExpectBareString('TCharComponent');
|
|
ExpectBareString('TestTCharComponent');
|
|
ExpectBareString('CharProp');
|
|
ExpectString(#10);
|
|
ExpectEndOfList;
|
|
ExpectEndOfList;
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTCharComponentText;
|
|
|
|
Const
|
|
SData111 =
|
|
'object TestTCharComponent: TCharComponent'+sLineBreak+
|
|
' CharProp = #10'+sLineBreak+
|
|
'end'+sLineBreak;
|
|
|
|
|
|
begin
|
|
TestTCharComponent;
|
|
CheckAsString(SData111);
|
|
end;
|
|
|
|
|
|
procedure TTestComponentStream.TestTStringComponent;
|
|
|
|
Var
|
|
C : TComponent;
|
|
|
|
begin
|
|
C:=TStringComponent.Create(Nil);
|
|
Try
|
|
SaveToStream(C);
|
|
ExpectSignature;
|
|
ExpectFlags([],0);
|
|
ExpectBareString('TStringComponent');
|
|
ExpectBareString('TestTStringComponent');
|
|
ExpectBareString('StringProp');
|
|
ExpectString('A string');
|
|
ExpectEndOfList;
|
|
ExpectEndOfList;
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTStringComponentText;
|
|
|
|
Const
|
|
SData9 =
|
|
'object TestTStringComponent: TStringComponent'+sLineBreak+
|
|
' StringProp = ''A string'''+sLineBreak+
|
|
'end'+sLineBreak;
|
|
|
|
begin
|
|
TestTStringComponent;
|
|
CheckAsString(SData9);
|
|
end;
|
|
|
|
|
|
procedure TTestComponentStream.TestTStringComponent2;
|
|
|
|
Var
|
|
C : TComponent;
|
|
|
|
begin
|
|
C:=TStringComponent2.Create(Nil);
|
|
Try
|
|
SaveToStream(C);
|
|
ExpectSignature;
|
|
ExpectFlags([],0);
|
|
ExpectBareString('TStringComponent2');
|
|
ExpectBareString('TestTStringComponent2');
|
|
ExpectEndOfList;
|
|
ExpectEndOfList;
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTStringComponent3;
|
|
|
|
Var
|
|
C : TComponent;
|
|
|
|
begin
|
|
C:=TStringComponent3.Create(Nil);
|
|
Try
|
|
SaveToStream(C);
|
|
ExpectSignature;
|
|
ExpectFlags([],0);
|
|
ExpectBareString('TStringComponent3');
|
|
ExpectBareString('TestTStringComponent3');
|
|
ExpectBareString('StringProp');
|
|
ExpectString('A ''quoted'' string');
|
|
ExpectEndOfList;
|
|
ExpectEndOfList;
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTStringComponent4;
|
|
Var
|
|
C : TComponent;
|
|
|
|
begin
|
|
C:=TStringComponent3.Create(Nil);
|
|
Try
|
|
TStringComponent3(C).StringProp:='A '#10' whitespace string';
|
|
SaveToStream(C);
|
|
ExpectSignature;
|
|
ExpectFlags([],0);
|
|
ExpectBareString('TStringComponent3');
|
|
ExpectBareString('TestTStringComponent3');
|
|
ExpectBareString('StringProp');
|
|
ExpectString('A '#10' whitespace string');
|
|
ExpectEndOfList;
|
|
ExpectEndOfList;
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTStringComponent3Text;
|
|
Const
|
|
SData10 =
|
|
'object TestTStringComponent3: TStringComponent3'+sLineBreak+
|
|
' StringProp = ''A ''''quoted'''' string'''+sLineBreak+
|
|
'end'+sLineBreak;
|
|
|
|
begin
|
|
TestTStringComponent3;
|
|
CheckAsString(SData10);
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTStringComponent4Text;
|
|
Const
|
|
SData101 =
|
|
'object TestTStringComponent3: TStringComponent3'+sLineBreak+
|
|
' StringProp = ''A ''#10'' whitespace string'''+sLineBreak+
|
|
'end'+sLineBreak;
|
|
|
|
begin
|
|
TestTStringComponent4;
|
|
CheckAsString(SData101);
|
|
end;
|
|
|
|
|
|
procedure TTestComponentStream.TestTWideStringComponent;
|
|
|
|
Var
|
|
C : TComponent;
|
|
|
|
begin
|
|
C:=TWideStringComponent.Create(Nil);
|
|
Try
|
|
SaveToStream(C);
|
|
ExpectSignature;
|
|
ExpectFlags([],0);
|
|
ExpectBareString('TWideStringComponent');
|
|
ExpectBareString('TestTWideStringComponent');
|
|
ExpectBareString('WideStringProp');
|
|
ExpectString('Some WideString');
|
|
ExpectEndOfList;
|
|
ExpectEndOfList;
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTWideStringComponentText;
|
|
Const
|
|
SData11 =
|
|
'object TestTWideStringComponent: TWideStringComponent'+sLineBreak+
|
|
' WideStringProp = ''Some WideString'''+sLineBreak+
|
|
'end'+sLineBreak;
|
|
|
|
begin
|
|
TestTWideStringComponent;
|
|
CheckAsString(SData11);
|
|
end;
|
|
|
|
|
|
procedure TTestComponentStream.TestTWideStringComponent2;
|
|
|
|
Var
|
|
C : TComponent;
|
|
|
|
begin
|
|
C:=TWideStringComponent2.Create(Nil);
|
|
Try
|
|
SaveToStream(C);
|
|
ExpectSignature;
|
|
ExpectFlags([],0);
|
|
ExpectBareString('TWideStringComponent2');
|
|
ExpectBareString('TestTWideStringComponent2');
|
|
ExpectEndOfList;
|
|
ExpectEndOfList;
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestComponentStream.TestTSingleComponent;
|
|
|
|
Var
|
|
C : TComponent;
|
|
|
|
begin
|
|
C:=TSingleComponent.Create(Nil);
|
|
Try
|
|
SaveToStream(C);
|
|
ExpectSignature;
|
|
ExpectFlags([],0);
|
|
ExpectBareString('TSingleComponent');
|
|
ExpectBareString('TestTSingleComponent');
|
|
ExpectBareString('SingleProp');
|
|
ExpectExtended(1.23);
|
|
ExpectEndOfList;
|
|
ExpectEndOfList;
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestComponentStream.TestTDoubleComponent;
|
|
|
|
Var
|
|
C : TComponent;
|
|
|
|
begin
|
|
C:=TDoubleComponent.Create(Nil);
|
|
Try
|
|
SaveToStream(C);
|
|
ExpectSignature;
|
|
ExpectFlags([],0);
|
|
ExpectBareString('TDoubleComponent');
|
|
ExpectBareString('TestTDoubleComponent');
|
|
ExpectBareString('DoubleProp');
|
|
ExpectExtended(2.34);
|
|
ExpectEndOfList;
|
|
ExpectEndOfList;
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTDoubleComponentText;
|
|
|
|
Const
|
|
SData12 =
|
|
'object TestTDoubleComponent: TDoubleComponent'+sLineBreak+
|
|
' DoubleProp = 2.3399999999999999E+000'+sLineBreak+
|
|
'end'+sLineBreak;
|
|
|
|
begin
|
|
TestTDoubleComponent;
|
|
CheckAsString(SData12);
|
|
end;
|
|
|
|
|
|
procedure TTestComponentStream.TestTExtendedComponent;
|
|
|
|
Var
|
|
C : TComponent;
|
|
|
|
begin
|
|
C:=TExtendedComponent.Create(Nil);
|
|
Try
|
|
SaveToStream(C);
|
|
ExpectSignature;
|
|
ExpectFlags([],0);
|
|
ExpectBareString('TExtendedComponent');
|
|
ExpectBareString('TestTExtendedComponent');
|
|
ExpectBareString('ExtendedProp');
|
|
ExpectExtended(3.45);
|
|
ExpectEndOfList;
|
|
ExpectEndOfList;
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
|
|
(*
|
|
Procedure TTestComponentStream.TestTCompComponent;
|
|
|
|
Var
|
|
C : TComponent;
|
|
|
|
begin
|
|
C:=TCompComponent.Create(Nil);
|
|
Try
|
|
SaveToStream(C);
|
|
ExpectSignature;
|
|
ExpectFlags([],0);
|
|
ExpectBareString('TCompComponent');
|
|
ExpectBareString('TestTCompComponent');
|
|
ExpectBareString('ExtendedProp');
|
|
ExpectExtended(5.00);
|
|
ExpectEndOfList;
|
|
ExpectEndOfList;
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
*)
|
|
|
|
procedure TTestComponentStream.TestTCurrencyComponent;
|
|
|
|
Var
|
|
C : TComponent;
|
|
|
|
begin
|
|
C:=TCurrencyComponent.Create(Nil);
|
|
Try
|
|
SaveToStream(C);
|
|
ExpectSignature;
|
|
ExpectFlags([],0);
|
|
ExpectBareString('TCurrencyComponent');
|
|
ExpectBareString('TestTCurrencyComponent');
|
|
ExpectBareString('CurrencyProp');
|
|
ExpectInteger(56700);
|
|
// Natively, this is:
|
|
// ExpectExtended(5.67);
|
|
ExpectEndOfList;
|
|
ExpectEndOfList;
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTCurrencyComponentText;
|
|
Const
|
|
SData13 =
|
|
'object TestTCurrencyComponent: TCurrencyComponent'+sLineBreak+
|
|
' CurrencyProp = 56700'+sLineBreak+
|
|
'end'+sLineBreak;
|
|
|
|
begin
|
|
TestTCurrencyComponent;
|
|
CheckAsString(SData13);
|
|
end;
|
|
|
|
|
|
procedure TTestComponentStream.TestTDateTimeComponent;
|
|
|
|
Var
|
|
C : TComponent;
|
|
|
|
begin
|
|
C:=TDateTimeComponent.Create(Nil);
|
|
Try
|
|
SaveToStream(C);
|
|
ExpectSignature;
|
|
ExpectFlags([],0);
|
|
ExpectBareString('TDateTimeComponent');
|
|
ExpectBareString('TestTDateTimeComponent');
|
|
ExpectBareString('DateTimeProp');
|
|
ExpectExtended(35278.00);
|
|
ExpectEndOfList;
|
|
ExpectEndOfList;
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestComponentStream.TestTDateTimeComponent2;
|
|
|
|
Var
|
|
C : TComponent;
|
|
|
|
begin
|
|
C:=TDateTimeComponent2.Create(Nil);
|
|
Try
|
|
SaveToStream(C);
|
|
ExpectSignature;
|
|
ExpectFlags([],0);
|
|
ExpectBareString('TDateTimeComponent2');
|
|
ExpectBareString('TestTDateTimeComponent2');
|
|
ExpectBareString('DateTimeProp');
|
|
ExpectExtended(0.97);
|
|
ExpectEndOfList;
|
|
ExpectEndOfList;
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestComponentStream.TestTDateTimeComponent3;
|
|
|
|
Var
|
|
C : TComponent;
|
|
|
|
begin
|
|
C:=TDateTimeComponent3.Create(Nil);
|
|
Try
|
|
SaveToStream(C);
|
|
ExpectSignature;
|
|
ExpectFlags([],0);
|
|
ExpectBareString('TDateTimeComponent3');
|
|
ExpectBareString('TestTDateTimeComponent3');
|
|
ExpectBareString('DateTimeProp');
|
|
ExpectExtended(35278.97);
|
|
ExpectEndOfList;
|
|
ExpectEndOfList;
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestComponentStream.TestTEnumComponent;
|
|
|
|
Var
|
|
C : TComponent;
|
|
|
|
begin
|
|
C:=TEnumComponent.Create(Nil);
|
|
Try
|
|
SaveToStream(C);
|
|
ExpectSignature;
|
|
ExpectFlags([],0);
|
|
ExpectBareString('TEnumComponent');
|
|
ExpectBareString('TestTEnumComponent');
|
|
ExpectBareString('Dice');
|
|
ExpectIdent('four');
|
|
ExpectEndOfList;
|
|
ExpectEndOfList;
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTEnumComponentText;
|
|
|
|
Const
|
|
SData14 =
|
|
'object TestTEnumComponent: TEnumComponent'+sLineBreak+
|
|
' Dice = four'+sLineBreak+
|
|
'end'+sLineBreak;
|
|
|
|
begin
|
|
TestTEnumComponent;
|
|
CheckAsString(SData14);
|
|
end;
|
|
|
|
|
|
procedure TTestComponentStream.TestTEnumComponent2;
|
|
|
|
Var
|
|
C : TComponent;
|
|
|
|
begin
|
|
C:=TEnumComponent2.Create(Nil);
|
|
Try
|
|
SaveToStream(C);
|
|
ExpectSignature;
|
|
ExpectFlags([],0);
|
|
ExpectBareString('TEnumComponent2');
|
|
ExpectBareString('TestTEnumComponent2');
|
|
{$ifndef FPC}
|
|
// FPC does not stream an undeclared default value, it assumes the
|
|
// 0-the value is the default.
|
|
ExpectBareString('Dice');
|
|
ExpectIdent('one');
|
|
{$endif FPC}
|
|
ExpectEndOfList;
|
|
ExpectEndOfList;
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestComponentStream.TestTEnumComponent3;
|
|
|
|
Var
|
|
C : TComponent;
|
|
|
|
begin
|
|
C:=TEnumComponent3.Create(Nil);
|
|
Try
|
|
SaveToStream(C);
|
|
ExpectSignature;
|
|
ExpectFlags([],0);
|
|
ExpectBareString('TEnumComponent3');
|
|
ExpectBareString('TestTEnumComponent3');
|
|
ExpectBareString('Dice');
|
|
ExpectIdent('three');
|
|
ExpectEndOfList;
|
|
ExpectEndOfList;
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestComponentStream.TestTEnumComponent4;
|
|
|
|
Var
|
|
C : TComponent;
|
|
|
|
begin
|
|
C:=TEnumComponent4.Create(Nil);
|
|
Try
|
|
SaveToStream(C);
|
|
ExpectSignature;
|
|
ExpectFlags([],0);
|
|
ExpectBareString('TEnumComponent4');
|
|
ExpectBareString('TestTEnumComponent4');
|
|
ExpectEndOfList;
|
|
ExpectEndOfList;
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTEnumComponent5;
|
|
|
|
Var
|
|
C : TComponent;
|
|
|
|
begin
|
|
C:=TEnumComponent5.Create(Nil);
|
|
Try
|
|
SaveToStream(C);
|
|
ExpectSignature;
|
|
ExpectFlags([],0);
|
|
ExpectBareString('TEnumComponent5');
|
|
ExpectBareString('TestTEnumComponent5');
|
|
ExpectEndOfList;
|
|
ExpectEndOfList;
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestComponentStream.TestTSetComponent;
|
|
|
|
Var
|
|
C : TComponent;
|
|
|
|
begin
|
|
C:=TSetComponent.Create(Nil);
|
|
Try
|
|
SaveToStream(C);
|
|
ExpectSignature;
|
|
ExpectFlags([],0);
|
|
ExpectBareString('TSetComponent');
|
|
ExpectBareString('TestTSetComponent');
|
|
ExpectBareString('Throw');
|
|
ExpectValue(vaSet);
|
|
ExpectBareString('two');
|
|
ExpectBareString('five');
|
|
ExpectBareString('');
|
|
ExpectEndOfList;
|
|
ExpectEndOfList;
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTSetComponentText;
|
|
Const
|
|
SData15 =
|
|
'object TestTSetComponent: TSetComponent'+sLineBreak+
|
|
' Throw = [two, five]'+sLineBreak+
|
|
'end'+sLineBreak;
|
|
|
|
begin
|
|
TestTSetComponent;
|
|
CheckAsString(SData15);
|
|
end;
|
|
|
|
|
|
procedure TTestComponentStream.TestTSetComponent2;
|
|
|
|
Var
|
|
C : TComponent;
|
|
|
|
begin
|
|
C:=TSetComponent2.Create(Nil);
|
|
Try
|
|
SaveToStream(C);
|
|
ExpectSignature;
|
|
ExpectFlags([],0);
|
|
ExpectBareString('TSetComponent2');
|
|
ExpectBareString('TestTSetComponent2');
|
|
{$ifdef delphi}
|
|
// Same as for sets: a set with undeclared default is regarded as
|
|
// A set with default [], and is not streamed if it is empty.
|
|
ExpectBareString('Throw');
|
|
ExpectValue(vaSet);
|
|
ExpectBareString('');
|
|
{$endif delphi}
|
|
ExpectEndOfList;
|
|
ExpectEndOfList;
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestComponentStream.TestTSetComponent3;
|
|
|
|
Var
|
|
C : TComponent;
|
|
|
|
begin
|
|
C:=TSetComponent3.Create(Nil);
|
|
Try
|
|
SaveToStream(C);
|
|
ExpectSignature;
|
|
ExpectFlags([],0);
|
|
ExpectBareString('TSetComponent3');
|
|
ExpectBareString('TestTSetComponent3');
|
|
ExpectBareString('Throw');
|
|
ExpectValue(vaSet);
|
|
ExpectBareString('one');
|
|
ExpectBareString('four');
|
|
ExpectBareString('');
|
|
ExpectEndOfList;
|
|
ExpectEndOfList;
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestComponentStream.TestTSetComponent4;
|
|
|
|
Var
|
|
C : TComponent;
|
|
|
|
begin
|
|
// Writeln('Start test');
|
|
C:=TSetComponent4.Create(Nil);
|
|
Try
|
|
SaveToStream(C);
|
|
ExpectSignature;
|
|
ExpectFlags([],0);
|
|
ExpectBareString('TSetComponent4');
|
|
ExpectBareString('TestTSetComponent4');
|
|
ExpectEndOfList;
|
|
ExpectEndOfList;
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestComponentStream.TestTMultipleComponent;
|
|
|
|
Var
|
|
C : TComponent;
|
|
|
|
begin
|
|
C:=TMultipleComponent.Create(Nil);
|
|
Try
|
|
SaveToStream(C);
|
|
ExpectSignature;
|
|
ExpectFlags([],0);
|
|
ExpectBareString('TMultipleComponent');
|
|
ExpectBareString('TestTMultipleComponent');
|
|
ExpectBareString('IntProp');
|
|
ExpectInteger(1);
|
|
ExpectBareString('StringProp');
|
|
ExpectString('A String');
|
|
ExpectBareString('CurrencyProp');
|
|
ExpectInteger(23000);
|
|
// ExpectExtended(2.30);
|
|
ExpectBareString('Dice');
|
|
ExpectIdent('two');
|
|
ExpectBareString('Throw');
|
|
ExpectValue(vaSet);
|
|
ExpectBareString('three');
|
|
ExpectBareString('four');
|
|
ExpectBareString('');
|
|
ExpectEndOfList;
|
|
ExpectEndOfList;
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTMultipleComponentText;
|
|
Const
|
|
SData16 =
|
|
'object TestTMultipleComponent: TMultipleComponent'+sLineBreak+
|
|
' IntProp = 1'+sLineBreak+
|
|
' StringProp = ''A String'''+sLineBreak+
|
|
' CurrencyProp = 23000'+sLineBreak+
|
|
' Dice = two'+sLineBreak+
|
|
' Throw = [three, four]'+sLineBreak+
|
|
'end'+sLineBreak;
|
|
|
|
begin
|
|
TestTMultipleComponent;
|
|
CheckAsString(SData16);
|
|
end;
|
|
|
|
|
|
procedure TTestComponentStream.TestTPersistentComponent;
|
|
|
|
Var
|
|
C : TComponent;
|
|
|
|
begin
|
|
C:=TPersistentComponent.Create(Nil);
|
|
Try
|
|
SaveToStream(C);
|
|
ExpectSignature;
|
|
ExpectFlags([],0);
|
|
ExpectBareString('TPersistentComponent');
|
|
ExpectBareString('TestTPersistentComponent');
|
|
ExpectBareString('Persist.AInteger');
|
|
ExpectInteger(3);
|
|
ExpectBareString('Persist.AString');
|
|
ExpectString('A persistent string');
|
|
ExpectEndOfList;
|
|
ExpectEndOfList;
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTPersistentComponentText;
|
|
|
|
Const
|
|
SData17 =
|
|
'object TestTPersistentComponent: TPersistentComponent'+sLineBreak+
|
|
' Persist.AInteger = 3'+sLineBreak+
|
|
' Persist.AString = ''A persistent string'''+sLineBreak+
|
|
'end'+sLineBreak;
|
|
|
|
begin
|
|
TestTPersistentComponent;
|
|
CheckAsString(SData17);
|
|
end;
|
|
|
|
|
|
procedure TTestComponentStream.TestTCollectionComponent;
|
|
|
|
Var
|
|
C : TComponent;
|
|
|
|
begin
|
|
C:=TCollectionComponent.Create(Nil);
|
|
Try
|
|
SaveToStream(C);
|
|
ExpectSignature;
|
|
ExpectFlags([],0);
|
|
ExpectBareString('TCollectionComponent');
|
|
ExpectBareString('TestTCollectionComponent');
|
|
ExpectBareString('Coll');
|
|
ExpectValue(vaCollection);
|
|
ExpectEndOfList;
|
|
ExpectEndOfList;
|
|
ExpectEndOfList;
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTCollectionComponentText;
|
|
Const
|
|
SData18 =
|
|
'object TestTCollectionComponent: TCollectionComponent'+sLineBreak+
|
|
' Coll = <>'+sLineBreak+
|
|
'end'+sLineBreak;
|
|
|
|
begin
|
|
TestTCollectionComponent;
|
|
CheckAsString(SData18);
|
|
end;
|
|
|
|
|
|
procedure TTestComponentStream.TestTCollectionComponent2;
|
|
|
|
Var
|
|
C : TComponent;
|
|
|
|
begin
|
|
C:=TCollectionComponent2.Create(Nil);
|
|
Try
|
|
SaveToStream(C);
|
|
ExpectSignature;
|
|
ExpectFlags([],0);
|
|
ExpectBareString('TCollectionComponent2');
|
|
ExpectBareString('TestTCollectionComponent2');
|
|
ExpectBareString('Coll');
|
|
ExpectValue(vaCollection);
|
|
ExpectValue(vaList);
|
|
ExpectBareString('StrProp');
|
|
ExpectString('First');
|
|
ExpectEndOfList;
|
|
ExpectValue(vaList);
|
|
ExpectBareString('StrProp');
|
|
ExpectString('Second');
|
|
ExpectEndOfList;
|
|
ExpectValue(vaList);
|
|
ExpectBareString('StrProp');
|
|
ExpectString('Third');
|
|
ExpectEndOfList;
|
|
ExpectEndOfList;
|
|
ExpectEndOfList;
|
|
ExpectEndOfList;
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTCollectionComponent2Text;
|
|
Const
|
|
SData19 =
|
|
'object TestTCollectionComponent2: TCollectionComponent2'+sLineBreak+
|
|
' Coll = < '+sLineBreak+
|
|
' item'+sLineBreak+
|
|
' StrProp = ''First'''+sLineBreak+
|
|
' end '+sLineBreak+
|
|
' item'+sLineBreak+
|
|
' StrProp = ''Second'''+sLineBreak+
|
|
' end '+sLineBreak+
|
|
' item'+sLineBreak+
|
|
' StrProp = ''Third'''+sLineBreak+
|
|
' end>'+sLineBreak+
|
|
'end'+sLineBreak;
|
|
|
|
begin
|
|
TestTCollectionComponent2;
|
|
CheckAsString(SData19);
|
|
end;
|
|
|
|
|
|
procedure TTestComponentStream.TestTCollectionComponent3;
|
|
|
|
Var
|
|
C : TComponent;
|
|
|
|
begin
|
|
C:=TCollectionComponent3.Create(Nil);
|
|
Try
|
|
SaveToStream(C);
|
|
ExpectSignature;
|
|
ExpectFlags([],0);
|
|
ExpectBareString('TCollectionComponent3');
|
|
ExpectBareString('TestTCollectionComponent3');
|
|
ExpectBareString('Coll');
|
|
ExpectValue(vaCollection);
|
|
ExpectValue(vaList);
|
|
ExpectBareString('StrProp');
|
|
ExpectString('First');
|
|
ExpectEndOfList;
|
|
ExpectValue(vaList);
|
|
ExpectEndOfList;
|
|
ExpectValue(vaList);
|
|
ExpectBareString('StrProp');
|
|
ExpectString('Third');
|
|
ExpectEndOfList;
|
|
ExpectEndOfList;
|
|
ExpectEndOfList;
|
|
ExpectEndOfList;
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestComponentStream.TestTCollectionComponent4;
|
|
|
|
Var
|
|
C : TComponent;
|
|
|
|
begin
|
|
C:=TCollectionComponent4.Create(Nil);
|
|
Try
|
|
SaveToStream(C);
|
|
ExpectSignature;
|
|
ExpectFlags([],0);
|
|
ExpectBareString('TCollectionComponent4');
|
|
ExpectBareString('TestTCollectionComponent4');
|
|
ExpectBareString('Coll');
|
|
ExpectValue(vaCollection);
|
|
ExpectValue(vaList);
|
|
ExpectBareString('StrProp');
|
|
ExpectString('Something');
|
|
ExpectEndOfList;
|
|
ExpectEndOfList;
|
|
ExpectEndOfList;
|
|
ExpectEndOfList;
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTCollectionComponent5;
|
|
|
|
Var
|
|
C : TComponent;
|
|
|
|
begin
|
|
C:=TCollectionComponent5.Create(Nil);
|
|
Try
|
|
SaveToStream(C);
|
|
ExpectSignature;
|
|
ExpectFlags([],0);
|
|
ExpectBareString('TCollectionComponent5');
|
|
ExpectBareString('TestTCollectionComponent5');
|
|
ExpectBareString('Coll');
|
|
ExpectValue(vaCollection);
|
|
ExpectValue(vaList);
|
|
ExpectBareString('StrProp1');
|
|
ExpectString('Something');
|
|
ExpectBareString('StrProp2');
|
|
ExpectString('Otherthing');
|
|
ExpectEndOfList;
|
|
ExpectValue(vaList);
|
|
ExpectBareString('StrProp1');
|
|
ExpectString('Something 2');
|
|
ExpectBareString('StrProp2');
|
|
ExpectString('Otherthing 2');
|
|
ExpectEndOfList;
|
|
ExpectEndOfList;
|
|
ExpectEndOfList;
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TTestComponentStream.TestTOwnedComponent;
|
|
|
|
Var
|
|
C : TComponent;
|
|
|
|
begin
|
|
C:=TOwnedComponent.Create(Nil);
|
|
Try
|
|
SaveToStream(C);
|
|
ExpectSignature;
|
|
ExpectFlags([],0);
|
|
ExpectBareString('TOwnedComponent');
|
|
ExpectBareString('TestTOwnedComponent');
|
|
ExpectBareString('CompProp');
|
|
ExpectIdent('SubComponent');
|
|
ExpectEndOfList;
|
|
ExpectEndOfList;
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTOwnedComponentText;
|
|
|
|
Const
|
|
SData20 =
|
|
'object TestTOwnedComponent: TOwnedComponent'+sLineBreak+
|
|
' CompProp = SubComponent'+sLineBreak+
|
|
'end'+sLineBreak;
|
|
|
|
begin
|
|
TestTOwnedComponent;
|
|
CheckAsString(SData20);
|
|
end;
|
|
|
|
|
|
procedure TTestComponentStream.TestTStreamedOwnedComponent;
|
|
|
|
Var
|
|
C : TComponent;
|
|
|
|
begin
|
|
C:=TStreamedOwnedComponent.Create(Nil);
|
|
Try
|
|
SaveToStream(C);
|
|
ExpectSignature;
|
|
ExpectFlags([],0);
|
|
ExpectBareString('TStreamedOwnedComponent');
|
|
ExpectBareString('TestTStreamedOwnedComponent');
|
|
ExpectEndOfList;
|
|
ExpectFlags([],0);
|
|
ExpectBareString('TIntegerComponent');
|
|
ExpectBareString('Sub');
|
|
ExpectBareString('IntProp');
|
|
ExpectInteger(3);
|
|
ExpectEndOfList;
|
|
ExpectEndOfList;
|
|
ExpectEndOfList;
|
|
ExpectEndOfStream;
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTStreamedOwnedComponentText;
|
|
Const
|
|
SData21 =
|
|
'object TestTStreamedOwnedComponent: TStreamedOwnedComponent'+sLineBreak+
|
|
' object Sub: TIntegerComponent'+sLineBreak+
|
|
' IntProp = 3'+sLineBreak+
|
|
' end'+sLineBreak+
|
|
'end'+sLineBreak;
|
|
|
|
begin
|
|
TestTStreamedOwnedComponent;
|
|
CheckAsString(SData21);
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTStreamedOwnedComponents;
|
|
|
|
Var
|
|
C : TComponent;
|
|
|
|
begin
|
|
C:=TStreamedOwnedComponents.Create(Nil);
|
|
Try
|
|
SaveToStream(C);
|
|
ExpectSignature;
|
|
ExpectFlags([],0);
|
|
ExpectBareString('TStreamedOwnedComponents');
|
|
ExpectBareString('TestTStreamedOwnedComponents');
|
|
ExpectEndOfList;
|
|
ExpectFlags([],0);
|
|
ExpectBareString('TIntegerComponent');
|
|
ExpectBareString('SubA');
|
|
ExpectBareString('IntProp');
|
|
ExpectInteger(3);
|
|
ExpectEndOfList;
|
|
ExpectEndOfList;
|
|
ExpectFlags([],0);
|
|
ExpectBareString('TStringComponent');
|
|
ExpectBareString('SubB');
|
|
ExpectBareString('StringProp');
|
|
ExpectString('A string');
|
|
ExpectEndOfList;
|
|
ExpectEndOfList;
|
|
ExpectEndOfList;
|
|
ExpectEndOfStream;
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTStreamedOwnedComponentsText;
|
|
Const
|
|
SData22 =
|
|
'object TestTStreamedOwnedComponents: TStreamedOwnedComponents'+sLineBreak+
|
|
' object SubA: TIntegerComponent'+sLineBreak+
|
|
' IntProp = 3'+sLineBreak+
|
|
' end'+sLineBreak+
|
|
' object SubB: TStringComponent'+sLineBreak+
|
|
' StringProp = ''A string'''+sLineBreak+
|
|
' end'+sLineBreak+
|
|
'end'+sLineBreak;
|
|
|
|
begin
|
|
TestTStreamedOwnedComponents;
|
|
CheckAsString(SData22);
|
|
end;
|
|
|
|
|
|
procedure TTestComponentStream.TestTMethodComponent;
|
|
|
|
Var
|
|
C : TComponent;
|
|
|
|
begin
|
|
C:=TMethodComponent.Create(Nil);
|
|
Try
|
|
SaveToStream(C);
|
|
ExpectSignature;
|
|
ExpectFlags([],0);
|
|
ExpectBareString('TMethodComponent');
|
|
ExpectBareString('TestTMethodComponent');
|
|
ExpectBareString('MethodProp');
|
|
ExpectIdent('MyMethod');
|
|
ExpectEndOfList;
|
|
ExpectEndOfList;
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTMethodComponentText;
|
|
|
|
Const
|
|
SData23 =
|
|
'object TestTMethodComponent: TMethodComponent'+sLineBreak+
|
|
' MethodProp = MyMethod'+sLineBreak+
|
|
'end'+sLineBreak;
|
|
|
|
begin
|
|
TestTMethodComponent;
|
|
CheckAsString(SData23);
|
|
end;
|
|
|
|
|
|
procedure TTestComponentStream.TestTMethodComponent2;
|
|
|
|
Var
|
|
C : TComponent;
|
|
|
|
begin
|
|
C:=TMethodComponent2.Create(Nil);
|
|
Try
|
|
SaveToStream(C);
|
|
ExpectSignature;
|
|
ExpectFlags([],0);
|
|
ExpectBareString('TMethodComponent2');
|
|
ExpectBareString('TestTMethodComponent2');
|
|
ExpectEndOfList;
|
|
ExpectFlags([],0);
|
|
ExpectBareString('TMethodComponent');
|
|
ExpectBareString('AComponent');
|
|
ExpectBareString('MethodProp');
|
|
ExpectIdent('MyMethod2');
|
|
ExpectEndOfList;
|
|
ExpectEndOfList;
|
|
ExpectEndOfList;
|
|
Finally
|
|
C.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestComponentStream.TestTMethodComponent2Text;
|
|
Const
|
|
SData24 =
|
|
'object TestTMethodComponent2: TMethodComponent2'+sLineBreak+
|
|
' object AComponent: TMethodComponent'+sLineBreak+
|
|
' MethodProp = MyMethod2'+sLineBreak+
|
|
' end'+sLineBreak+
|
|
'end'+sLineBreak;
|
|
|
|
begin
|
|
TestTMethodComponent2;
|
|
CheckAsString(SData24);
|
|
end;
|
|
|
|
|
|
|
|
Procedure TTestCollectionStream.CompareColl(CA,CB : TMyColl);
|
|
|
|
Var
|
|
I : Integer;
|
|
|
|
begin
|
|
AssertEquals('Counts differ: %d %d',CA.Count,CB.Count);
|
|
For I:=0 to CA.Count-1 do
|
|
begin
|
|
AssertEquals(Format('Nr property of element %d equals',[I]),CA[i].Nr,CB[i].Nr);
|
|
AssertEquals(Format('Str property of element %d equals',[I]),CA[i].Str,CB[i].Str);
|
|
end;
|
|
end;
|
|
|
|
Function TTestCollectionStream.EmptyComp : TCollComp;
|
|
|
|
begin
|
|
Result:=TCollComp.Create(Nil);
|
|
end;
|
|
|
|
Function TTestCollectionStream.CreateColl(Anr : Integer) : TCollComp;
|
|
|
|
Var
|
|
I : Integer;
|
|
T : TMyItem;
|
|
|
|
begin
|
|
Result:=EmptyComp;
|
|
Result.Name:='C'+IntToStr(Anr);
|
|
For I:=0 to ANr-1 do
|
|
begin
|
|
T:=Result.MyColl.Add as TMyItem;
|
|
T.Nr:=I; // not I+1, so the default value gets tested too
|
|
T.Str:=IntToStr(I+1);
|
|
end;
|
|
end;
|
|
|
|
Procedure TTestCollectionStream.TestEmpty;
|
|
|
|
Var
|
|
CA,CB : TCollComp;
|
|
|
|
begin
|
|
CA:=CreateColl(0);
|
|
try
|
|
CB:=EmptyComp;
|
|
Try
|
|
CB.FromStream(CA.ToStream);
|
|
CompareColl(CA.MyColl,CB.MyColl);
|
|
Finally
|
|
CB.Free;
|
|
end;
|
|
Finally
|
|
CA.Free;
|
|
end;
|
|
end;
|
|
|
|
Procedure TTestCollectionStream.TestNr(ACount : Integer);
|
|
|
|
Var
|
|
CA,CB : TCollComp;
|
|
|
|
begin
|
|
CA:=CreateColl(ACount);
|
|
try
|
|
CB:=EmptyComp;
|
|
Try
|
|
CB.FromStream(CA.ToStream);
|
|
CompareColl(CA.MyColl,CB.MyColl);
|
|
Finally
|
|
CB.Free;
|
|
end;
|
|
Finally
|
|
CA.Free;
|
|
end;
|
|
end;
|
|
|
|
Procedure TTestCollectionStream.TestClear;
|
|
|
|
Var
|
|
CA,CB : TCollComp;
|
|
|
|
begin
|
|
CA:=CreateColl(3);
|
|
try
|
|
CB:=CreateColl(1);
|
|
CB.Name:='';
|
|
Try
|
|
// CB collection should be cleared before loading.
|
|
CB.FromStream(CA.ToStream);
|
|
CompareColl(CA.MyColl,CB.MyColl);
|
|
Finally
|
|
CB.Free;
|
|
end;
|
|
Finally
|
|
CA.Free;
|
|
end;
|
|
end;
|
|
|
|
Procedure TTestCollectionStream.Test1;
|
|
|
|
begin
|
|
TestNr(1);
|
|
end;
|
|
|
|
Procedure TTestCollectionStream.Test2;
|
|
|
|
begin
|
|
TestNr(2);
|
|
end;
|
|
|
|
Procedure TTestCollectionStream.Test3;
|
|
|
|
begin
|
|
TestNr(3);
|
|
end;
|
|
|
|
begin
|
|
RegisterTests([TTestComponentStream{,TTestCollectionStream}]);
|
|
end.
|