123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943 |
- { Component streaming tests.
- Copyright (C) 2020 Michael Van Canneyt [email protected]
- 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 TestTStringComponent;
- Procedure TestTStringComponentText;
- Procedure TestTStringComponent2;
- Procedure TestTStringComponent3;
- Procedure TestTStringComponent3Text;
- 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 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.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.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.TestTStringComponent3Text;
- Const
- SData10 =
- 'object TestTStringComponent3: TStringComponent3'+sLineBreak+
- ' StringProp = ''A ''''quoted'''' string'''+sLineBreak+
- 'end'+sLineBreak;
- begin
- TestTStringComponent3;
- CheckAsString(SData10);
- 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.3E+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.
|