From: <na...@us...> - 2006-09-22 09:20:52
|
Revision: 707 http://svn.sourceforge.net/instantobjects/revision/?rev=707&view=rev Author: nandod Date: 2006-09-22 02:17:32 -0700 (Fri, 22 Sep 2006) Log Message: ----------- * ubmock and fpcunit integrated into the source tree. * Tests moved outside of Source. * svn:ignore set on several folders. Added Paths: ----------- trunk/Source/Catalogs/MSSql/D2006/__history/ trunk/Tests/ trunk/Tests/InstantMock.pas trunk/Tests/MinimalModel.pas trunk/Tests/Picture.bmp trunk/Tests/TestBlobText.txt trunk/Tests/TestBlobTextOut.txt trunk/Tests/TestIO.bdsproj trunk/Tests/TestIO.cfg trunk/Tests/TestIO.dof trunk/Tests/TestIO.dpr trunk/Tests/TestIO.lpi trunk/Tests/TestIO.mdr trunk/Tests/TestIO.mdrt trunk/Tests/TestIO.mdx trunk/Tests/TestIO.mdxt trunk/Tests/TestIO.res trunk/Tests/TestInstantAttribute.pas trunk/Tests/TestInstantAttributeMap.pas trunk/Tests/TestInstantAttributeMetadata.pas trunk/Tests/TestInstantBlob.pas trunk/Tests/TestInstantBoolean.pas trunk/Tests/TestInstantCache.pas trunk/Tests/TestInstantCircularReferences.pas trunk/Tests/TestInstantClassMetadata.pas trunk/Tests/TestInstantClasses.pas trunk/Tests/TestInstantComplex.pas trunk/Tests/TestInstantCurrency.pas trunk/Tests/TestInstantDateTime.pas trunk/Tests/TestInstantFieldMetadata.pas trunk/Tests/TestInstantFloat.pas trunk/Tests/TestInstantIndexMetadata.pas trunk/Tests/TestInstantInteger.pas trunk/Tests/TestInstantMetadata.pas trunk/Tests/TestInstantNumeric.pas trunk/Tests/TestInstantObject.pas trunk/Tests/TestInstantObjectReference.pas trunk/Tests/TestInstantObjectState.pas trunk/Tests/TestInstantObjectStore.pas trunk/Tests/TestInstantPart.pas trunk/Tests/TestInstantParts.pas trunk/Tests/TestInstantReference.pas trunk/Tests/TestInstantReferences.pas trunk/Tests/TestInstantRtti.pas trunk/Tests/TestInstantScheme.pas trunk/Tests/TestInstantString.pas trunk/Tests/TestInstantTableMetadata.pas trunk/Tests/TestMinimalModel.pas trunk/Tests/TestMockBroker.pas trunk/Tests/TestMockConnector.pas trunk/Tests/TestModel.pas trunk/Tests/ubmock/ trunk/Tests/ubmock/README.txt trunk/Tests/ubmock/src/ trunk/Tests/ubmock/src/COPYING.FPC trunk/Tests/ubmock/src/COPYING.TXT trunk/Tests/ubmock/src/GuiTestRunner.dfm trunk/Tests/ubmock/src/GuiTestRunner.pas trunk/Tests/ubmock/src/License_Notes.txt trunk/Tests/ubmock/src/NotRefCountIObject.pas trunk/Tests/ubmock/src/UbMockObject.pas trunk/Tests/ubmock/src/fpcunit.pas trunk/Tests/ubmock/src/fpcunitgui.res trunk/Tests/ubmock/src/testdecorator.pas trunk/Tests/ubmock/src/testregistry.pas trunk/Tests/ubmock/src/testreport.pas trunk/Tests/ubmock/src/testutils.pas trunk/Tests/ubmock/tests/ trunk/Tests/ubmock/tests/ConsoleTest.dpr trunk/Tests/ubmock/tests/GuiTests.dof trunk/Tests/ubmock/tests/GuiTests.dpr trunk/Tests/ubmock/tests/GuiTests.dsk trunk/Tests/ubmock/tests/GuiTests.res trunk/Tests/ubmock/tests/TestIMock.pas trunk/Tests/ubmock/tests/TestMock.pas trunk/Tests/ubmock/tests/TestMocks.dof trunk/Tests/ubmock/tests/TestMocks.dpr trunk/Tests/ubmock/tests/TestMocks.dsk trunk/Tests/ubmock/tests/TestMocks.res trunk/Tests/ubmock/tests/TestNotRefContInterface.pas trunk/Tests/ubmock/tests/asserttest.pas trunk/Tests/ubmock/tests/fpcunittests.pas trunk/Tests/ubmock/tests/suitetest.pas Removed Paths: ------------- trunk/Source/Tests/ Property Changed: ---------------- trunk/Source/Brokers/ADO/D2006/ trunk/Source/Brokers/BDE/D2006/ trunk/Source/Brokers/DBX/D2006/ trunk/Source/Brokers/IBX/ trunk/Source/Brokers/IBX/D2006/ trunk/Source/Brokers/XML/ trunk/Source/Brokers/XML/D2006/ trunk/Source/Catalogs/IBFb/ trunk/Source/Catalogs/IBFb/D2006/ trunk/Source/Catalogs/MSSql/ trunk/Source/Catalogs/MSSql/D2006/ trunk/Source/Core/D2006/ trunk/Source/Design/D2006/ trunk/Source/PackageGroups/D2006/ Property changes on: trunk/Source/Brokers/ADO/D2006 ___________________________________________________________________ Name: svn:ignore - *.dcu + *.dcu __history *.local *.cfg *.identcache Property changes on: trunk/Source/Brokers/BDE/D2006 ___________________________________________________________________ Name: svn:ignore - *.dcu + *.dcu __history *.local *.cfg Property changes on: trunk/Source/Brokers/DBX/D2006 ___________________________________________________________________ Name: svn:ignore - *.dcu + *.dcu __history *.local *.cfg Property changes on: trunk/Source/Brokers/IBX ___________________________________________________________________ Name: svn:ignore + *.dcu Property changes on: trunk/Source/Brokers/IBX/D2006 ___________________________________________________________________ Name: svn:ignore + __history *.dcu *.local *.cfg Property changes on: trunk/Source/Brokers/XML ___________________________________________________________________ Name: svn:ignore + *.dcu Property changes on: trunk/Source/Brokers/XML/D2006 ___________________________________________________________________ Name: svn:ignore - *.dcu + *.dcu __history *.local *.cfg Property changes on: trunk/Source/Catalogs/IBFb ___________________________________________________________________ Name: svn:ignore + *.dcu Property changes on: trunk/Source/Catalogs/IBFb/D2006 ___________________________________________________________________ Name: svn:ignore + __history *.local *.dcu *.identcache Property changes on: trunk/Source/Catalogs/MSSql ___________________________________________________________________ Name: svn:ignore + *.dcu Property changes on: trunk/Source/Catalogs/MSSql/D2006 ___________________________________________________________________ Name: svn:ignore + *.local *.dcu Property changes on: trunk/Source/Core/D2006 ___________________________________________________________________ Name: svn:ignore + __history *.local *.dcu *.identcache Property changes on: trunk/Source/Design/D2006 ___________________________________________________________________ Name: svn:ignore + *.local *.cfg *.dcu Property changes on: trunk/Source/PackageGroups/D2006 ___________________________________________________________________ Name: svn:ignore + __history *.local Property changes on: trunk/Tests ___________________________________________________________________ Name: svn:ignore + __history *.dcu *.local *.exe Copied: trunk/Tests/InstantMock.pas (from rev 706, trunk/Source/Tests/InstantMock.pas) =================================================================== --- trunk/Tests/InstantMock.pas (rev 0) +++ trunk/Tests/InstantMock.pas 2006-09-22 09:17:32 UTC (rev 707) @@ -0,0 +1,582 @@ +(* + * InstantObjects Test Suite + * InstantMock + *) + +(* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is: InstantObjects Test Suite/InstantMock + * + * The Initial Developer of the Original Code is: Uberto Barbini + * + * Portions created by the Initial Developer are Copyright (C) 2005 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Steven Mitchell + * + * ***** END LICENSE BLOCK ***** *) + +unit InstantMock; + +interface + +uses + SysUtils, Classes, DB, InstantPersistence, InstantBrokers, InstantMetadata, + InstantTypes, UbMockObject; + +type + TInstantBrokerClass = class of TInstantBroker; + + TInstantMockConnector = class(TInstantConnector) + private + FMock: TUbMockObject; + FBrokerClass: TInstantBrokerClass; + procedure SetBrokerClass(const Value: TInstantBrokerClass); + protected + procedure SetMock(const Value: TUbMockObject); + function CreateBroker: TInstantBroker; override; + procedure InternalConnect; override; + function InternalCreateScheme(Model: TInstantModel): TInstantScheme; override; + procedure InternalDisconnect; override; + procedure InternalStartTransaction; override; + procedure InternalCommitTransaction; override; + procedure InternalRollbackTransaction; override; + public + property MockManager: TUbMockObject read FMock write SetMock; + property BrokerClass: TInstantBrokerClass read FBrokerClass write SetBrokerClass; + class function ConnectionDefClass: TInstantConnectionDefClass; override; + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + end; + + TInstantMockConnectionDef = class(TInstantConnectionDef) + class function ConnectionTypeName: String; override; + class function ConnectorClass: TInstantConnectorClass; override; + function Edit: Boolean; override; + end; + + TInstantMockBroker = class(TInstantBroker) + private + FMock: TUbMockObject; + procedure SetMock(const Value: TUbMockObject); + protected + function InternalDisposeObject(AObject: TInstantObject; + ConflictAction: TInstantConflictAction): Boolean; override; + function InternalRetrieveObject(AObject: TInstantObject; + const AObjectId: string; + ConflictAction: TInstantConflictAction): Boolean; override; + function InternalStoreObject(AObject: TInstantObject; + ConflictAction: TInstantConflictAction): Boolean; override; + public + property MockManager: TUbMockObject read FMock write SetMock; + constructor Create(AConnector: TInstantConnector); override; + destructor Destroy; override; + end; + + TInstantMockCRBroker = class(TInstantCustomRelationalBroker) + private + FMock: TUbMockObject; + procedure SetMock(const Value: TUbMockObject); + protected + function EnsureResolver(Map: TInstantAttributeMap): TInstantCustomResolver; override; + function InternalDisposeObject(AObject: TInstantObject; + ConflictAction: TInstantConflictAction): Boolean; override; + function InternalRetrieveObject(AObject: TInstantObject; + const AObjectId: String; + ConflictAction: TInstantConflictAction): Boolean; override; + function InternalStoreObject(AObject: TInstantObject; + ConflictAction: TInstantConflictAction): Boolean; override; + public + property MockManager: TUbMockObject read FMock write SetMock; + constructor Create(AConnector: TInstantConnector); override; + destructor Destroy; override; + end; + + TInstantMockRelationalConnector = class(TInstantRelationalConnector) + private + FBrokerClass: TInstantBrokerClass; + FMock: TUbMockObject; + procedure SetBrokerClass(const Value: TInstantBrokerClass); + protected + function CreateBroker: TInstantBroker; override; + procedure InternalCommitTransaction; override; + procedure InternalConnect; override; + function InternalCreateScheme(Model: TInstantModel): TInstantScheme; override; + procedure InternalDisconnect; override; + procedure InternalRollbackTransaction; override; + procedure InternalStartTransaction; override; + procedure SetMock(const Value: TUbMockObject); + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + class function ConnectionDefClass: TInstantConnectionDefClass; override; + property BrokerClass: TInstantBrokerClass read FBrokerClass write + SetBrokerClass; + property MockManager: TUbMockObject read FMock write SetMock; + end; + + TInstantMockSQLBroker = class(TInstantSQLBroker) + private + FMock: TUbMockObject; + procedure SetMock(const Value: TUbMockObject); + protected + procedure AssignDataSetParams(DataSet : TDataSet; AParams: TParams); override; + function CreateDataSet(const AStatement: string; AParams: TParams = nil): + TDataSet; override; + function CreateResolver(Map: TInstantAttributeMap): TInstantSQLResolver; + override; + function EnsureResolver(Map: TInstantAttributeMap): TInstantCustomResolver; + override; + function InternalDisposeObject(AObject: TInstantObject; ConflictAction: + TInstantConflictAction): Boolean; override; + function InternalRetrieveObject(AObject: TInstantObject; const AObjectId: + String; ConflictAction: TInstantConflictAction): Boolean; override; + function InternalStoreObject(AObject: TInstantObject; ConflictAction: + TInstantConflictAction): Boolean; override; + public + constructor Create(AConnector: TInstantConnector); override; + destructor Destroy; override; + function DataTypeToColumnType(DataType: TInstantDataType; Size: Integer): + string; override; + property MockManager: TUbMockObject read FMock write SetMock; + end; + + TInstantMockDataset = class(TDataSet) + private + FMock: TUbMockObject; + procedure SetMock(const Value: TUbMockObject); + protected + function GetRecord(Buffer: PChar; GetMode: TGetMode; DoCheck: Boolean): + TGetResult; override; + procedure InternalClose; override; + procedure InternalHandleException; override; + procedure InternalInitFieldDefs; override; + procedure InternalOpen; override; + function IsCursorOpen: Boolean; override; + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + property MockManager: TUbMockObject read FMock write SetMock; + end; + +implementation + +function CaToStr(ConflictAction: TInstantConflictAction): string; +begin + if ConflictAction = caIgnore then + Result := 'caIgnore' + else if ConflictAction = caFail then + Result := 'caFail' + else + Result := '???'; +end; + +{ TMockIConnector } + +class function TInstantMockConnector.ConnectionDefClass: TInstantConnectionDefClass; +begin + result := TInstantMockConnectionDef; +end; + +constructor TInstantMockConnector.Create(AOwner: TComponent); +begin + inherited; + FMock := TUbMockObject.Create; +end; + +function TInstantMockConnector.CreateBroker: TInstantBroker; +begin + if not Assigned(FBrokerClass) then + raise Exception.Create('Undefined BrokerClass'); + FMock.AddExpectation('CreateBroker ' + FBrokerClass.ClassName); + Result := FBrokerClass.Create(Self); +end; + +{ TInstantMockConnectionDef } + +class function TInstantMockConnectionDef.ConnectionTypeName: String; +begin + result := 'Mock'; +end; + +class function TInstantMockConnectionDef.ConnectorClass: TInstantConnectorClass; +begin + result := TInstantMockConnector; +end; + +function TInstantMockConnectionDef.Edit: Boolean; +begin + result := True; //boh?? +end; + +{ TInstantMockBroker } + +destructor TInstantMockConnector.Destroy; +begin + FMock.Free; + inherited; +end; + +procedure TInstantMockConnector.InternalCommitTransaction; +begin + inherited; + FMock.AddExpectation('InternalCommitTransaction'); +end; + +procedure TInstantMockConnector.InternalConnect; +begin + FMock.AddExpectation('InternalConnect'); +end; + +function TInstantMockConnector.InternalCreateScheme( + Model: TInstantModel): TInstantScheme; +begin + FMock.AddExpectation('InternalCreateScheme'); + Result := TInstantScheme.Create; + Result.Catalog := TInstantModelCatalog.Create(Result, Model); +end; + +procedure TInstantMockConnector.InternalDisconnect; +begin + FMock.AddExpectation('InternalDisconnect'); +end; + +procedure TInstantMockBroker.SetMock(const Value: TUbMockObject); +begin + FMock := Value; +end; + +constructor TInstantMockBroker.Create(AConnector: TInstantConnector); +begin + inherited; + FMock := TUbMockObject.Create; +end; + +destructor TInstantMockBroker.Destroy; +begin + FMock.Free; + inherited; +end; + +{ TInstantMockBroker } + +function TInstantMockBroker.InternalDisposeObject(AObject: TInstantObject; + ConflictAction: TInstantConflictAction): Boolean; +begin + Result := True; + FMock.AddExpectation('InternalDisposeObject ' + AObject.Id); +end; + +function TInstantMockBroker.InternalRetrieveObject(AObject: TInstantObject; + const AObjectId: string; + ConflictAction: TInstantConflictAction): Boolean; +begin + Result := True; + FMock.AddExpectation('InternalRetrieveObject ' + AObjectId); +end; + +function TInstantMockBroker.InternalStoreObject(AObject: TInstantObject; + ConflictAction: TInstantConflictAction): Boolean; +begin + Result := True; + FMock.AddExpectation('InternalStoreObject ' + AObject.Id); +end; + +procedure TInstantMockConnector.InternalRollbackTransaction; +begin + inherited; + FMock.AddExpectation('InternalRollbackTransaction'); +end; + +procedure TInstantMockConnector.InternalStartTransaction; +begin + inherited; + FMock.AddExpectation('InternalStartTransaction'); +end; + +procedure TInstantMockConnector.SetBrokerClass( + const Value: TInstantBrokerClass); +begin + FBrokerClass := Value; +end; + +procedure TInstantMockConnector.SetMock(const Value: TUbMockObject); +begin + FMock := Value; +end; + +{ TInstantMockCRBroker } + +constructor TInstantMockCRBroker.Create(AConnector: TInstantConnector); +begin + inherited; + FMock := TUbMockObject.Create; +end; + +destructor TInstantMockCRBroker.Destroy; +begin + FMock.Free; + inherited; +end; + +function TInstantMockCRBroker.EnsureResolver( + Map: TInstantAttributeMap): TInstantCustomResolver; +begin + MockManager.AddExpectation('EnsureResolver'); + Result := nil; +end; + +function TInstantMockCRBroker.InternalDisposeObject( + AObject: TInstantObject; + ConflictAction: TInstantConflictAction): Boolean; +begin + Result := True; + MockManager.AddExpectation('InternalDisposeObject ' + CaToStr(ConflictAction) + ' ' + AObject.Id); +end; + +function TInstantMockCRBroker.InternalRetrieveObject( + AObject: TInstantObject; const AObjectId: String; + ConflictAction: TInstantConflictAction): Boolean; +begin + Result := True; + MockManager.AddExpectation('InternalRetrieveObject ' + CaToStr(ConflictAction) + ' ' + AObjectId); +end; + +function TInstantMockCRBroker.InternalStoreObject(AObject: TInstantObject; + ConflictAction: TInstantConflictAction): Boolean; +begin + Result := True; + MockManager.AddExpectation('InternalStoreObject ' + CaToStr(ConflictAction) + ' ' + AObject.Id); +end; + +procedure TInstantMockCRBroker.SetMock(const Value: TUbMockObject); +begin + FMock := Value; +end; + +constructor TInstantMockRelationalConnector.Create(AOwner: TComponent); +begin + inherited; + FMock := TUbMockObject.Create; +end; + +{ TInstantMockBroker } + +destructor TInstantMockRelationalConnector.Destroy; +begin + FMock.Free; + inherited; +end; + +{ TMockIConnector } + +class function TInstantMockRelationalConnector.ConnectionDefClass: + TInstantConnectionDefClass; +begin + result := TInstantMockConnectionDef; +end; + +function TInstantMockRelationalConnector.CreateBroker: TInstantBroker; +begin + if not Assigned(FBrokerClass) then + raise Exception.Create('Undefined BrokerClass'); + FMock.AddExpectation('CreateBroker ' + FBrokerClass.ClassName); + Result := FBrokerClass.Create(Self); +end; + +procedure TInstantMockRelationalConnector.InternalCommitTransaction; +begin + inherited; + FMock.AddExpectation('InternalCommitTransaction'); +end; + +procedure TInstantMockRelationalConnector.InternalConnect; +begin + FMock.AddExpectation('InternalConnect'); +end; + +function TInstantMockRelationalConnector.InternalCreateScheme(Model: + TInstantModel): TInstantScheme; +begin + FMock.AddExpectation('InternalCreateScheme'); + Result := TInstantScheme.Create; + Result.Catalog := TInstantModelCatalog.Create(Result, Model); +end; + +procedure TInstantMockRelationalConnector.InternalDisconnect; +begin + FMock.AddExpectation('InternalDisconnect'); +end; + +procedure TInstantMockRelationalConnector.InternalRollbackTransaction; +begin + inherited; + FMock.AddExpectation('InternalRollbackTransaction'); +end; + +procedure TInstantMockRelationalConnector.InternalStartTransaction; +begin + inherited; + FMock.AddExpectation('InternalStartTransaction'); +end; + +procedure TInstantMockRelationalConnector.SetBrokerClass(const Value: + TInstantBrokerClass); +begin + FBrokerClass := Value; +end; + +procedure TInstantMockRelationalConnector.SetMock(const Value: TUbMockObject); +begin + FMock := Value; +end; + +{ TInstantMockCRBroker } + +constructor TInstantMockSQLBroker.Create(AConnector: TInstantConnector); +begin + inherited; + FMock := TUbMockObject.Create; +end; + +destructor TInstantMockSQLBroker.Destroy; +begin + FMock.Free; + inherited; +end; + +procedure TInstantMockSQLBroker.AssignDataSetParams(DataSet : TDataSet; + AParams: TParams); +begin + MockManager.AddExpectation('AssignDataSetParams'); +end; + +function TInstantMockSQLBroker.CreateDataSet(const AStatement: string; AParams: + TParams = nil): TDataSet; +begin + MockManager.AddExpectation('CreateDataSet'); +// Result := nil; + Result := TInstantMockDataset.Create(nil); +end; + +function TInstantMockSQLBroker.CreateResolver(Map: TInstantAttributeMap): + TInstantSQLResolver; +begin + MockManager.AddExpectation('CreateResolver'); + Result := nil; +end; + +function TInstantMockSQLBroker.DataTypeToColumnType(DataType: TInstantDataType; + Size: Integer): string; +begin + MockManager.AddExpectation('DataTypeToColumnType'); + Result := ''; +end; + +function TInstantMockSQLBroker.EnsureResolver(Map: TInstantAttributeMap): + TInstantCustomResolver; +begin + MockManager.AddExpectation('EnsureResolver'); + Result := nil; +end; + +function TInstantMockSQLBroker.InternalDisposeObject(AObject: TInstantObject; + ConflictAction: TInstantConflictAction): Boolean; +begin + Result := True; + MockManager.AddExpectation('InternalDisposeObject ' + CaToStr(ConflictAction) + ' ' + AObject.Id); +end; + +function TInstantMockSQLBroker.InternalRetrieveObject(AObject: TInstantObject; + const AObjectId: String; ConflictAction: TInstantConflictAction): Boolean; +begin + Result := True; + MockManager.AddExpectation('InternalRetrieveObject ' + CaToStr(ConflictAction) + ' ' + AObjectId); +end; + +function TInstantMockSQLBroker.InternalStoreObject(AObject: TInstantObject; + ConflictAction: TInstantConflictAction): Boolean; +begin + Result := True; + MockManager.AddExpectation('InternalStoreObject ' + CaToStr(ConflictAction) + ' ' + AObject.Id); +end; + +procedure TInstantMockSQLBroker.SetMock(const Value: TUbMockObject); +begin + FMock := Value; +end; + +{ TInstantMockCRBroker } + +constructor TInstantMockDataset.Create(AOwner: TComponent); +begin + inherited; + FMock := TUbMockObject.Create; +end; + +destructor TInstantMockDataset.Destroy; +begin + FMock.Free; + inherited; +end; + +function TInstantMockDataset.GetRecord(Buffer: PChar; GetMode: TGetMode; + DoCheck: Boolean): TGetResult; +begin + MockManager.AddExpectation('GetRecord'); + Result := grError; +end; + +procedure TInstantMockDataset.InternalClose; +begin + MockManager.AddExpectation('InternalClose'); +end; + +procedure TInstantMockDataset.InternalHandleException; +begin + raise Exception.Create('Exception raised in InternalHandleException'); +end; + +procedure TInstantMockDataset.InternalInitFieldDefs; +begin + raise Exception.Create('Exception raised in InternalInitFieldDefs'); + MockManager.AddExpectation('InternalInitFieldDefs'); +end; + +procedure TInstantMockDataset.InternalOpen; +begin + MockManager.AddExpectation('InternalOpen'); +end; + +function TInstantMockDataset.IsCursorOpen: Boolean; +begin + MockManager.AddExpectation('IsCursorOpen'); + Result := False; +end; + +procedure TInstantMockDataset.SetMock(const Value: TUbMockObject); +begin + FMock := Value; +end; + +initialization + RegisterClass(TInstantMockConnectionDef); + TInstantMockConnector.RegisterClass; + +finalization + TInstantMockConnector.UnregisterClass; + +end. + Copied: trunk/Tests/MinimalModel.pas (from rev 706, trunk/Source/Tests/MinimalModel.pas) =================================================================== --- trunk/Tests/MinimalModel.pas (rev 0) +++ trunk/Tests/MinimalModel.pas 2006-09-22 09:17:32 UTC (rev 707) @@ -0,0 +1,113 @@ +(* + * InstantObjects Test Suite + * MinimalModel + *) + +(* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is: InstantObjects Test Suite/MinimalModel + * + * The Initial Developer of the Original Code is: Uberto Barbini + * + * Portions created by the Initial Developer are Copyright (C) 2005 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * Steven Mitchell + * + * ***** END LICENSE BLOCK ***** *) + +unit MinimalModel; + +interface + +uses + InstantPersistence; + +type + TSimpleClass = class(TInstantObject) + {IOMETADATA stored 'SIMPLE'; + StringProperty: String(20) stored 'STRING'; } + _StringProperty: TInstantString; + private + function GetStringProperty: string; + procedure SetStringProperty(const Value: string); + published + property StringProperty: string read GetStringProperty write SetStringProperty; + end; + +procedure CreateMinimalModel; + +implementation + +uses InstantMetadata, InstantTypes; + +procedure CreateMinimalModel; +var + InstantClassMetadata : TInstantClassMetadata; + InstantAttributeMetadata : TInstantAttributeMetadata; +begin +(* +<TInstantClassMetadatas> + <TInstantClassMetadata> + <Name>TSimpleClass</Name> + <Persistence>peStored</Persistence> + <StorageName>SIMPLE</StorageName> + <AttributeMetadatas> + <TInstantAttributeMetadatas> + <TInstantAttributeMetadata> + <Name>StringProperty</Name> + <AttributeType>atString</AttributeType> + <IsIndexed>FALSE</IsIndexed> + <IsRequired>FALSE</IsRequired> + <Size>10</Size> + <StorageName>STRING</StorageName> + </TInstantAttributeMetadata> + </TInstantAttributeMetadatas> + </AttributeMetadatas> + </TInstantClassMetadata> +</TInstantClassMetadatas> +*) + // An empty InstantModel.ClassMetadatas should already be available + InstantClassMetadata := InstantModel.ClassMetadatas.Add; + InstantClassMetadata.Name := 'TSimpleClass'; + InstantClassMetadata.Persistence := peStored; + InstantClassMetadata.StorageName := 'SIMPLE'; + InstantAttributeMetadata := InstantClassMetadata.AttributeMetadatas.Add; + InstantAttributeMetadata.Name := 'StringProperty'; + InstantAttributeMetadata.AttributeType := atString; + InstantAttributeMetadata.IsIndexed := FALSE; + InstantAttributeMetadata.IsRequired := FALSE; + InstantAttributeMetadata.Size := 10; + InstantAttributeMetadata.StorageName := 'STRING'; +end; + +{ TSimpleClass } + +function TSimpleClass.GetStringProperty: string; +begin + Result := _StringProperty.Value; +end; + +procedure TSimpleClass.SetStringProperty(const Value: string); +begin + _StringProperty.Value := Value; +end; + +initialization + InstantRegisterClasses([ + TSimpleClass + ]); + +end. Copied: trunk/Tests/Picture.bmp (from rev 706, trunk/Source/Tests/Picture.bmp) =================================================================== (Binary files differ) Copied: trunk/Tests/TestBlobText.txt (from rev 706, trunk/Source/Tests/TestBlobText.txt) =================================================================== --- trunk/Tests/TestBlobText.txt (rev 0) +++ trunk/Tests/TestBlobText.txt 2006-09-22 09:17:32 UTC (rev 707) @@ -0,0 +1 @@ +The following notes document the structure of the InstantObjects tree as stored in CVS, explaining what each folder is for. Added: trunk/Tests/TestBlobTextOut.txt =================================================================== --- trunk/Tests/TestBlobTextOut.txt (rev 0) +++ trunk/Tests/TestBlobTextOut.txt 2006-09-22 09:17:32 UTC (rev 707) @@ -0,0 +1 @@ +The following notes document the structure of the InstantObjects tree as stored in CVS, explaining what each folder is for. Added: trunk/Tests/TestIO.bdsproj =================================================================== --- trunk/Tests/TestIO.bdsproj (rev 0) +++ trunk/Tests/TestIO.bdsproj 2006-09-22 09:17:32 UTC (rev 707) @@ -0,0 +1,175 @@ +<?xml version="1.0" encoding="utf-8"?> +<BorlandProject> + <PersonalityInfo> + <Option> + <Option Name="Personality">Delphi.Personality</Option> + <Option Name="ProjectType">VCLApplication</Option> + <Option Name="Version">1.0</Option> + <Option Name="GUID">{D24F7242-7354-4FC2-9558-648DB0B6C6D4}</Option> + </Option> + </PersonalityInfo> + <Delphi.Personality> + <Source> + <Source Name="MainSource">TestIO.dpr</Source> + </Source> + <FileVersion> + <FileVersion Name="Version">7.0</FileVersion> + </FileVersion> + <Compiler> + <Compiler Name="A">8</Compiler> + <Compiler Name="B">0</Compiler> + <Compiler Name="C">1</Compiler> + <Compiler Name="D">1</Compiler> + <Compiler Name="E">0</Compiler> + <Compiler Name="F">0</Compiler> + <Compiler Name="G">1</Compiler> + <Compiler Name="H">1</Compiler> + <Compiler Name="I">1</Compiler> + <Compiler Name="J">0</Compiler> + <Compiler Name="K">0</Compiler> + <Compiler Name="L">1</Compiler> + <Compiler Name="M">0</Compiler> + <Compiler Name="N">1</Compiler> + <Compiler Name="O">0</Compiler> + <Compiler Name="P">1</Compiler> + <Compiler Name="Q">0</Compiler> + <Compiler Name="R">0</Compiler> + <Compiler Name="S">0</Compiler> + <Compiler Name="T">1</Compiler> + <Compiler Name="U">0</Compiler> + <Compiler Name="V">1</Compiler> + <Compiler Name="W">1</Compiler> + <Compiler Name="X">1</Compiler> + <Compiler Name="Y">1</Compiler> + <Compiler Name="Z">1</Compiler> + <Compiler Name="ShowHints">True</Compiler> + <Compiler Name="ShowWarnings">True</Compiler> + <Compiler Name="UnitAliases">WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;</Compiler> + <Compiler Name="NamespacePrefix"></Compiler> + <Compiler Name="GenerateDocumentation">False</Compiler> + <Compiler Name="DefaultNamespace"></Compiler> + <Compiler Name="SymbolDeprecated">True</Compiler> + <Compiler Name="SymbolLibrary">True</Compiler> + <Compiler Name="SymbolPlatform">True</Compiler> + <Compiler Name="SymbolExperimental">True</Compiler> + <Compiler Name="UnitLibrary">True</Compiler> + <Compiler Name="UnitPlatform">True</Compiler> + <Compiler Name="UnitDeprecated">True</Compiler> + <Compiler Name="UnitExperimental">True</Compiler> + <Compiler Name="HResultCompat">True</Compiler> + <Compiler Name="HidingMember">True</Compiler> + <Compiler Name="HiddenVirtual">True</Compiler> + <Compiler Name="Garbage">True</Compiler> + <Compiler Name="BoundsError">True</Compiler> + <Compiler Name="ZeroNilCompat">True</Compiler> + <Compiler Name="StringConstTruncated">True</Compiler> + <Compiler Name="ForLoopVarVarPar">True</Compiler> + <Compiler Name="TypedConstVarPar">True</Compiler> + <Compiler Name="AsgToTypedConst">True</Compiler> + <Compiler Name="CaseLabelRange">True</Compiler> + <Compiler Name="ForVariable">True</Compiler> + <Compiler Name="ConstructingAbstract">True</Compiler> + <Compiler Name="ComparisonFalse">True</Compiler> + <Compiler Name="ComparisonTrue">True</Compiler> + <Compiler Name="ComparingSignedUnsigned">True</Compiler> + <Compiler Name="CombiningSignedUnsigned">True</Compiler> + <Compiler Name="UnsupportedConstruct">True</Compiler> + <Compiler Name="FileOpen">True</Compiler> + <Compiler Name="FileOpenUnitSrc">True</Compiler> + <Compiler Name="BadGlobalSymbol">True</Compiler> + <Compiler Name="DuplicateConstructorDestructor">True</Compiler> + <Compiler Name="InvalidDirective">True</Compiler> + <Compiler Name="PackageNoLink">True</Compiler> + <Compiler Name="PackageThreadVar">True</Compiler> + <Compiler Name="ImplicitImport">True</Compiler> + <Compiler Name="HPPEMITIgnored">True</Compiler> + <Compiler Name="NoRetVal">True</Compiler> + <Compiler Name="UseBeforeDef">True</Compiler> + <Compiler Name="ForLoopVarUndef">True</Compiler> + <Compiler Name="UnitNameMismatch">True</Compiler> + <Compiler Name="NoCFGFileFound">True</Compiler> + <Compiler Name="ImplicitVariants">True</Compiler> + <Compiler Name="UnicodeToLocale">True</Compiler> + <Compiler Name="LocaleToUnicode">True</Compiler> + <Compiler Name="ImagebaseMultiple">True</Compiler> + <Compiler Name="SuspiciousTypecast">True</Compiler> + <Compiler Name="PrivatePropAccessor">True</Compiler> + <Compiler Name="UnsafeType">False</Compiler> + <Compiler Name="UnsafeCode">False</Compiler> + <Compiler Name="UnsafeCast">False</Compiler> + <Compiler Name="OptionTruncated">True</Compiler> + <Compiler Name="WideCharReduced">True</Compiler> + <Compiler Name="DuplicatesIgnored">True</Compiler> + <Compiler Name="UnitInitSeq">True</Compiler> + <Compiler Name="LocalPInvoke">True</Compiler> + <Compiler Name="MessageDirective">True</Compiler> + <Compiler Name="CodePage"></Compiler> + </Compiler> + <Linker> + <Linker Name="MapFile">0</Linker> + <Linker Name="OutputObjs">0</Linker> + <Linker Name="GenerateHpps">False</Linker> + <Linker Name="ConsoleApp">1</Linker> + <Linker Name="DebugInfo">False</Linker> + <Linker Name="RemoteSymbols">False</Linker> + <Linker Name="GenerateDRC">False</Linker> + <Linker Name="MinStackSize">16384</Linker> + <Linker Name="MaxStackSize">1048576</Linker> + <Linker Name="ImageBase">4194304</Linker> + <Linker Name="ExeDescription"></Linker> + </Linker> + <Directories> + <Directories Name="OutputDir"></Directories> + <Directories Name="UnitOutputDir"></Directories> + <Directories Name="PackageDLLOutputDir"></Directories> + <Directories Name="PackageDCPOutputDir"></Directories> + <Directories Name="SearchPath">..\Source\Core;.\ubmock\src</Directories> + <Directories Name="Packages">vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;adortl;vclactnband;vclshlctrls;CS30Logging70;Rz30Ctls70;Rz30DBCtls70;ip4000v7;Rave60VCL;Rave60CLX;madBasic_;madDisAsm_;CLXIB;ibxpress;VCLIB;IOCore;IOIBX</Directories> + <Directories Name="Conditionals"></Directories> + <Directories Name="DebugSourceDirs">..\Source\Core</Directories> + <Directories Name="UsePackages">False</Directories> + </Directories> + <Parameters> + <Parameters Name="RunParams"></Parameters> + <Parameters Name="HostApplication"></Parameters> + <Parameters Name="Launcher"></Parameters> + <Parameters Name="UseLauncher">False</Parameters> + <Parameters Name="DebugCWD"></Parameters> + <Parameters Name="Debug Symbols Search Path"></Parameters> + <Parameters Name="LoadAllSymbols">True</Parameters> + <Parameters Name="LoadUnspecifiedSymbols">False</Parameters> + </Parameters> + <Language> + <Language Name="ActiveLang"></Language> + <Language Name="ProjectLang">$00000000</Language> + <Language Name="RootDir">C:\Program Files\Borland\Delphi7\Bin\</Language> + </Language> + <VersionInfo> + <VersionInfo Name="IncludeVerInfo">False</VersionInfo> + <VersionInfo Name="AutoIncBuild">False</VersionInfo> + <VersionInfo Name="MajorVer">1</VersionInfo> + <VersionInfo Name="MinorVer">0</VersionInfo> + <VersionInfo Name="Release">0</VersionInfo> + <VersionInfo Name="Build">0</VersionInfo> + <VersionInfo Name="Debug">False</VersionInfo> + <VersionInfo Name="PreRelease">False</VersionInfo> + <VersionInfo Name="Special">False</VersionInfo> + <VersionInfo Name="Private">False</VersionInfo> + <VersionInfo Name="DLL">False</VersionInfo> + <VersionInfo Name="Locale">3081</VersionInfo> + <VersionInfo Name="CodePage">1252</VersionInfo> + </VersionInfo> + <VersionInfoKeys> + <VersionInfoKeys Name="CompanyName"></VersionInfoKeys> + <VersionInfoKeys Name="FileDescription"></VersionInfoKeys> + <VersionInfoKeys Name="FileVersion">1.0.0.0</VersionInfoKeys> + <VersionInfoKeys Name="InternalName"></VersionInfoKeys> + <VersionInfoKeys Name="LegalCopyright"></VersionInfoKeys> + <VersionInfoKeys Name="LegalTrademarks"></VersionInfoKeys> + <VersionInfoKeys Name="OriginalFilename"></VersionInfoKeys> + <VersionInfoKeys Name="ProductName"></VersionInfoKeys> + <VersionInfoKeys Name="ProductVersion">1.0.0.0</VersionInfoKeys> + <VersionInfoKeys Name="Comments"></VersionInfoKeys> + </VersionInfoKeys> + </Delphi.Personality> +</BorlandProject> Copied: trunk/Tests/TestIO.cfg (from rev 706, trunk/Source/Tests/TestIO.cfg) =================================================================== --- trunk/Tests/TestIO.cfg (rev 0) +++ trunk/Tests/TestIO.cfg 2006-09-22 09:17:32 UTC (rev 707) @@ -0,0 +1,42 @@ +-$A8 +-$B- +-$C+ +-$D+ +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J- +-$K- +-$L+ +-$M- +-$N+ +-$O- +-$P+ +-$Q- +-$R- +-$S- +-$T+ +-$U- +-$V+ +-$W+ +-$X+ +-$YD +-$Z1 +-cg +-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +-H+ +-W+ +-M +-$M16384,1048576 +-K$00400000 +-LE"C:\Documents and Settings\nandod\Documenti\Borland Studio Projects\Bpl" +-LN"C:\Documents and Settings\nandod\Documenti\Borland Studio Projects\Bpl" +-U"..\Source\Core;.\ubmock\src" +-O"..\Source\Core;.\ubmock\src" +-I"..\Source\Core;.\ubmock\src" +-R"..\Source\Core;.\ubmock\src" +-w-UNSAFE_TYPE +-w-UNSAFE_CODE +-w-UNSAFE_CAST Copied: trunk/Tests/TestIO.dof (from rev 706, trunk/Source/Tests/TestIO.dof) =================================================================== --- trunk/Tests/TestIO.dof (rev 0) +++ trunk/Tests/TestIO.dof 2006-09-22 09:17:32 UTC (rev 707) @@ -0,0 +1,142 @@ +[FileVersion] +Version=7.0 +[Compiler] +A=8 +B=0 +C=1 +D=1 +E=0 +F=0 +G=1 +H=1 +I=1 +J=0 +K=0 +L=1 +M=0 +N=1 +O=0 +P=1 +Q=0 +R=0 +S=0 +T=1 +U=0 +V=1 +W=1 +X=1 +Y=1 +Z=1 +ShowHints=1 +ShowWarnings=1 +UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +NamespacePrefix= +SymbolDeprecated=1 +SymbolLibrary=1 +SymbolPlatform=1 +UnitLibrary=1 +UnitPlatform=1 +UnitDeprecated=1 +HResultCompat=1 +HidingMember=1 +HiddenVirtual=1 +Garbage=1 +BoundsError=1 +ZeroNilCompat=1 +StringConstTruncated=1 +ForLoopVarVarPar=1 +TypedConstVarPar=1 +AsgToTypedConst=1 +CaseLabelRange=1 +ForVariable=1 +ConstructingAbstract=1 +ComparisonFalse=1 +ComparisonTrue=1 +ComparingSignedUnsigned=1 +CombiningSignedUnsigned=1 +UnsupportedConstruct=1 +FileOpen=1 +FileOpenUnitSrc=1 +BadGlobalSymbol=1 +DuplicateConstructorDestructor=1 +InvalidDirective=1 +PackageNoLink=1 +PackageThreadVar=1 +ImplicitImport=1 +HPPEMITIgnored=1 +NoRetVal=1 +UseBeforeDef=1 +ForLoopVarUndef=1 +UnitNameMismatch=1 +NoCFGFileFound=1 +MessageDirective=1 +ImplicitVariants=1 +UnicodeToLocale=1 +LocaleToUnicode=1 +ImagebaseMultiple=1 +SuspiciousTypecast=1 +PrivatePropAccessor=1 +UnsafeType=0 +UnsafeCode=0 +UnsafeCast=0 +[Linker] +MapFile=0 +OutputObjs=0 +ConsoleApp=1 +DebugInfo=0 +RemoteSymbols=0 +MinStackSize=16384 +MaxStackSize=1048576 +ImageBase=4194304 +ExeDescription= +[Directories] +OutputDir= +UnitOutputDir= +PackageDLLOutputDir= +PackageDCPOutputDir= +SearchPath=..\core +Packages=vcl;rtl;vclx;indy;inet;xmlrtl;vclie;inetdbbde;inetdbxpress;dbrtl;dsnap;vcldb;soaprtl;VclSmp;dbexpress;dbxcds;inetdb;bdertl;vcldbx;webdsnap;adortl;vclactnband;vclshlctrls;CS30Logging70;Rz30Ctls70;Rz30DBCtls70;ip4000v7;Rave60VCL;Rave60CLX;madBasic_;madDisAsm_;CLXIB;ibxpress;VCLIB;IOCore;IOIBX +Conditionals= +DebugSourceDirs=..\core +UsePackages=0 +[Parameters] +RunParams= +HostApplication= +Launcher= +UseLauncher=0 +DebugCWD= +[Language] +ActiveLang= +ProjectLang= +RootDir=C:\Program Files\Borland\Delphi7\Bin\ +[Version Info] +IncludeVerInfo=0 +AutoIncBuild=0 +MajorVer=1 +MinorVer=0 +Release=0 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=3081 +CodePage=1252 +[Version Info Keys] +CompanyName= +FileDescription= +FileVersion=1.0.0.0 +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion=1.0.0.0 +Comments= +[HistoryLists\hlDebugSourcePath] +Count=1 +Item0=D:\Professional\Produzione\Progetti\Delphi 7\InstantObjects\Source\Core\;D:\Professional\Produzione\Progetti\Delphi 7\EhLib\Common +[HistoryLists\hlUnitAliases] +Count=1 +Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; Copied: trunk/Tests/TestIO.dpr (from rev 706, trunk/Source/Tests/TestIO.dpr) =================================================================== --- trunk/Tests/TestIO.dpr (rev 0) +++ trunk/Tests/TestIO.dpr 2006-09-22 09:17:32 UTC (rev 707) @@ -0,0 +1,67 @@ +program TestIO; + +{$I '..\InstantDefines.inc'} + +{$IFDEF FPC} +{$mode objfpc}{$H+} +{$ENDIF} + +uses + FastMM4, +{$IFDEF FPC} + Interfaces, +{$ENDIF} + Forms, + guitestrunner, + fpcunit, + testregistry, + testutils, + testreport, + InstantPersistence, + InstantMock in 'InstantMock.pas', + TestMockConnector in 'TestMockConnector.pas', + TestMockBroker in 'TestMockBroker.pas', + TestModel in 'TestModel.pas', + TestInstantMetadata in 'TestInstantMetadata.pas', + TestInstantFieldMetadata in 'TestInstantFieldMetadata.pas', + TestInstantClassMetadata in 'TestInstantClassMetadata.pas', + TestInstantAttributeMetadata in 'TestInstantAttributeMetadata.pas', + TestInstantIndexMetadata in 'TestInstantIndexMetadata.pas', + TestInstantTableMetadata in 'TestInstantTableMetadata.pas', + TestInstantScheme in 'TestInstantScheme.pas', + TestInstantClasses in 'TestInstantClasses.pas', + TestInstantRtti in 'TestInstantRtti.pas', + TestMinimalModel in 'TestMinimalModel.pas', + TestInstantAttributeMap in 'TestInstantAttributeMap.pas', + TestInstantAttribute in 'TestInstantAttribute.pas', + TestInstantNumeric in 'TestInstantNumeric.pas', + TestInstantInteger in 'TestInstantInteger.pas', + TestInstantString in 'TestInstantString.pas', + TestInstantDateTime in 'TestInstantDateTime.pas', + TestInstantBoolean in 'TestInstantBoolean.pas', + TestInstantFloat in 'TestInstantFloat.pas', + TestInstantCurrency in 'TestInstantCurrency.pas', + TestInstantBlob in 'TestInstantBlob.pas', + TestInstantComplex in 'TestInstantComplex.pas', + TestInstantPart in 'TestInstantPart.pas', + TestInstantReference in 'TestInstantReference.pas', + TestInstantObject in 'TestInstantObject.pas', + TestInstantObjectState in 'TestInstantObjectState.pas', + TestInstantCache in 'TestInstantCache.pas', + TestInstantObjectStore in 'TestInstantObjectStore.pas', + TestInstantParts in 'TestInstantParts.pas', + TestInstantReferences in 'TestInstantReferences.pas', + TestInstantCircularReferences in 'TestInstantCircularReferences.pas', + TestInstantObjectReference in 'TestInstantObjectReference.pas'; + +{$R *.res} +{$R *.mdr} {TestModel} + +begin + Application.Initialize; + InstantModel.ClassMetadatas.Clear; +// Application.CreateForm(TGUITestRunner, TestRunner); + Application.CreateForm(TGUITestRunner, TestRunner); + Application.Run; +end. + Copied: trunk/Tests/TestIO.lpi (from rev 706, trunk/Source/Tests/TestIO.lpi) =================================================================== --- trunk/Tests/TestIO.lpi (rev 0) +++ trunk/Tests/TestIO.lpi 2006-09-22 09:17:32 UTC (rev 707) @@ -0,0 +1,1078 @@ +<?xml version="1.0"?> +<CONFIG> + <ProjectOptions> + <PathDelim Value="\"/> + <Version Value="5"/> + <General> + <MainUnit Value="0"/> + <ActiveEditorIndexAtStart Value="0"/> + <IconPath Value="./"/> + <TargetFileExt Value=".exe"/> + <Title Value="TestIO"/> + </General> + <JumpHistory Count="25" HistoryIndex="24"> + <Position1> + <Filename Value="D:\SELEQT\InstantObjects1.7\Source\core\InstantPersistence.pas"/> + <Caret Line="14313" Column="1" TopLine="14291"/> + </Position1> + <Position2> + <Filename Value="D:\SELEQT\InstantObjects1.7\Source\core\InstantPersistence.pas"/> + <Caret Line="14314" Column="1" TopLine="14292"/> + </Position2> + <Position3> + <Filename Value="D:\SELEQT\InstantObjects1.7\Source\core\InstantPersistence.pas"/> + <Caret Line="14315" Column="1" TopLine="14293"/> + </Position3> + <Position4> + <Filename Value="D:\SELEQT\InstantObjects1.7\Source\core\InstantPersistence.pas"/> + <Caret Line="14311" Column="1" TopLine="14289"/> + </Position4> + <Position5> + <Filename Value="D:\SELEQT\InstantObjects1.7\Source\core\InstantPersistence.pas"/> + <Caret Line="14313" Column="1" TopLine="14291"/> + </Position5> + <Position6> + <Filename Value="D:\SELEQT\InstantObjects1.7\Source\core\InstantPersistence.pas"/> + <Caret Line="14314" Column="1" TopLine="14292"/> + </Position6> + <Position7> + <Filename Value="D:\SELEQT\InstantObjects1.7\Source\core\InstantPersistence.pas"/> + <Caret Line="14315" Column="1" TopLine="14293"/> + </Position7> + <Position8> + <Filename Value="D:\SELEQT\InstantObjects1.7\Source\core\InstantPersistence.pas"/> + <Caret Line="14311" Column="1" TopLine="14289"/> + </Position8> + <Position9> + <Filename Value="D:\SELEQT\InstantObjects1.7\Source\core\InstantPersistence.pas"/> + <Caret Line="14313" Column="1" TopLine="14291"/> + </Position9> + <Position10> + <Filename Value="D:\SELEQT\InstantObjects1.7\Source\core\InstantPersistence.pas"/> + <Caret Line="14314" Column="1" TopLine="14292"/> + </Position10> + <Position11> + <Filename Value="D:\SELEQT\InstantObjects1.7\Source\core\InstantPersistence.pas"/> + <Caret Line="14315" Column="1" TopLine="14293"/> + </Position11> + <Position12> + <Filename Value="D:\SELEQT\InstantObjects1.7\Source\core\InstantPersistence.pas"/> + <Caret Line="14321" Column="1" TopLine="14299"/> + </Position12> + <Position13> + <Filename Value="D:\SELEQT\InstantObjects1.7\Source\core\InstantPersistence.pas"/> + <Caret Line="14382" Column="1" TopLine="14360"/> + </Position13> + <Position14> + <Filename Value="D:\SELEQT\InstantObjects1.7\Source\core\InstantPersistence.pas"/> + <Caret Line="14387" Column="1" TopLine="14365"/> + </Position14> + <Position15> + <Filename Value="D:\SELEQT\InstantObjects1.7\Source\core\InstantPersistence.pas"/> + <Caret Line="14382" Column="1" TopLine="14360"/> + </Position15> + <Position16> + <Filename Value="D:\SELEQT\InstantObjects1.7\Source\core\InstantPersistence.pas"/> + <Caret Line="14378" Column="1" TopLine="14356"/> + </Position16> + <Position17> + <Filename Value="D:\SELEQT\InstantObjects1.7\Source\core\InstantPersistence.pas"/> + <Caret Line="14389" Column="1" TopLine="14367"/> + </Position17> + <Position18> + <Filename Value="D:\SELEQT\InstantObjects1.7\Source\core\InstantPersistence.pas"/> + <Caret Line="14378" Column="1" TopLine="14356"/> + </Position18> + <Position19> + <Filename Value="D:\SELEQT\InstantObjects1.7\Source\core\InstantPersistence.pas"/> + <Caret Line="14389" Column="1" TopLine="14367"/> + </Position19> + <Position20> + <Filename Value="D:\SELEQT\InstantObjects1.7\source\brokers\uib\InstantUIB.pas"/> + <Caret Line="538" Column="1" TopLine="516"/> + </Position20> + <Position21> + <Filename Value="D:\SELEQT\InstantObjects1.7\Source\core\InstantPersistence.pas"/> + <Caret Line="10063" Column="1" TopLine="10041"/> + </Position21> + <Position22> + <Filename Value="D:\lazarus\fpcsrc\fcl\fpcunit\fpcunit.pp"/> + <Caret Line="359" Column="37" TopLine="335"/> + </Position22> + <Position23> + <Filename Value="D:\SELEQT\InstantObjects1.7\Source\core\InstantPresentation.pas"/> + <Caret Line="269" Column="1" TopLine="267"/> + </Position23> + <Position24> + <Filename Value="D:\SELEQT\InstantObjects1.7\Source\core\InstantPresentation.pas"/> + <Caret Line="289" Column="31" TopLine="267"/> + </Position24> + <Position25> + <Filename Value="D:\SELEQT\InstantObjects1.7\Source\core\InstantPresentation.pas"/> + <Caret Line="363" Column="44" TopLine="341"/> + </Position25> + </JumpHistory> + <Units Count="127"> + <Unit0> + <CursorPos X="1" Y="31"/> + <EditorIndex Value="0"/> + <Filename Value="TestIO.dpr"/> + <IsPartOfProject Value="True"/> + <Loaded Value="True"/> + <TopLine Value="1"/> + <UnitName Value="TestIO"/> + <UsageCount Value="153"/> + </Unit0> + <Unit1> + <CursorPos X="1" Y="1"/> + <Filename Value="TestMockConnector.pas"/> + <TopLine Value="7"/> + <UnitName Value="TestMockConnector"/> + <UsageCount Value="15"/> + </Unit1> + <Unit2> + <CursorPos X="1" Y="102"/> + <Filename Value="E:\z\IO_cvs\Source\Core\InstantClasses.pas"/> + <TopLine Value="101"/> + <UnitName Value="InstantClasses"/> + <UsageCount Value="2"/> + </Unit2> + <Unit3> + <CursorPos X="10" Y="35"/> + <Filename Value="E:\lazarus\fpcsrc\fcl\classes\win32\classes.pp"/> + <TopLine Value="1"/> + <UsageCount Value="10"/> + </Unit3> + <Unit4> + <CursorPos X="34" Y="54"/> + <Filename Value="e:\lazarus\fpcsrc\fcl\classes\classes.inc"/> + <TopLine Value="30"/> + <UsageCount Value="10"/> + </Unit4> + <Unit5> + <CursorPos X="3" Y="315"/> + <Filename Value="e:\lazarus\fpcsrc\fcl\classes\classesh.inc"/> + <TopLine Value="303"/> + <UsageCount Value="10"/> + </Unit5> + <Unit6> + <CursorPos X="79" Y="36"/> + <Filename Value="E:\z\IO_cvs\Source\Core\InstantRtti.pas"/> + <TopLine Value="33"/> + <UnitName Value="InstantRtti"/> + <UsageCount Value="10"/> + </Unit6> + <Unit7> + <CursorPos X="38" Y="938"/> + <Filename Value="E:\z\svifpc\io\source\core\InstantPersistence.pas"/> + <TopLine Value="935"/> + <UnitName Value="InstantPersistence"/> + <UsageCount Value="11"/> + </Unit7> + <Unit8> + <CursorPos X="53" Y="12"/> + <Filename Value="InstantMock.pas"/> + <TopLine Value="10"/> + <UnitName Value="InstantMock"/> + <UsageCount Value="9"/> + </Unit8> + <Unit9> + <CursorPos X="1" Y="161"/> + <Filename Value="TestInstantRtti.pas"/> + <TopLine Value="135"/> + <UnitName Value="TestInstantRtti"/> + <UsageCount Value="59"/> + </Unit9> + <Unit10> + <CursorPos X="68" Y="118"/> + <Filename Value="E:\z\svifpc\io\source\core\InstantRtti.pas"/> + <TopLine Value="115"/> + <UnitName Value="InstantRtti"/> + <UsageCount Value="41"/> + </Unit10> + <Unit11> + <CursorPos X="34" Y="8"/> + <Filename Value="E:\z\svifpc\io\source\core\InstantDefines.inc"/> + <TopLine Value="1"/> + <UsageCount Value="10"/> + </Unit11> + <Unit12> + <CursorPos X="18" Y="83"/> + <Filename Value="E:\cvs_local\fpc\rtl\inc\variants.pp"/> + <TopLine Value="67"/> + <UnitName Value="variants"/> + <UsageCount Value="9"/> + </Unit12> + <Unit13> + <CursorPos X="1" Y="1"/> + <Filename Value="E:\cvs_local\fpc\rtl\win32\sysutils.pp"/> + <TopLine Value="46"/> + <UnitName Value="sysutils"/> + <UsageCount Value="9"/> + </Unit13> + <Unit14> + <CursorPos X="58" Y="105"/> + <Filename Value="E:\z\sviFpc\IO\Source\Core\InstantConsts.pas"/> + <TopLine Value="100"/> + <UnitName Value="InstantConsts"/> + <UsageCount Value="10"/> + </Unit14> + <Unit15> + <CursorPos X="29" Y="345"/> + <Filename Value="TestInstantClasses.pas"/> + <TopLine Value="293"/> + <UnitName Value="TestInstantClasses"/> + <UsageCount Value="42"/> + </Unit15> + <Unit16> + <CursorPos X="17" Y="1585"/> + <Filename Value="E:\z\svifpc\io\source\core\InstantCode.pas"/> + <TopLine Value="1574"/> + <UnitName Value="InstantCode"/> + <UsageCount Value="10"/> + </Unit16> + <Unit17> + <CursorPos X="1" Y="1"/> + <Filename Value="E:\z\svifpc\io\source\core\InstantClasses.pas"/> + <TopLine Value="1"/> + <UnitName Value="InstantClasses"/> + <UsageCount Value="40"/> + </Unit17> + <Unit18> + <CursorPos X="40" Y="80"/> + <Filename Value="E:\cvs_local\fpc\fcl\fpcunit\fpcunit.pp"/> + <TopLine Value="79"/> + <UnitName Value="fpcunit"/> + <UsageCount Value="8"/> + </Unit18> + <Unit19> + <CursorPos X="35" Y="32"/> + <Filename Value="E:\cvs_local\fpc\rtl\objpas\typinfo.pp"/> + <TopLine Value="30"/> + <UnitName Value="typinfo"/> + <UsageCount Value="21"/> + </Unit19> + <Unit20> + <CursorPos X="28" Y="376"/> + <Filename Value="E:\cvs_local\fpc\fcl\inc\rttiutils.pp"/> + <TopLine Value="371"/> + <UnitName Value="rttiutils"/> + <UsageCount Value="9"/> + </Unit20> + <Unit21> + <CursorPos X="5" Y="236"/> + <Filename Value="E:\z\svifpc\io\source\core\InstantFpcUtils.pas"/> + <TopLine Value="228"/> + <UnitName Value="InstantFpcUtils"/> + <UsageCount Value="29"/> + </Unit21> + <Unit22> + <CursorPos X="11" Y="1739"/> + <Filename Value="E:\cvs_local\fpc\rtl\objpas\classes\classesh.inc"/> + <TopLine Value="1728"/> + <UsageCount Value="21"/> + </Unit22> + <Unit23> + <CursorPos X="1" Y="840"/> + <Filename Value="E:\cvs_local\fpc\rtl\objpas\classes\writer.inc"/> + <TopLine Value="805"/> + <UsageCount Value="8"/> + </Unit23> + <Unit24> + <CursorPos X="3" Y="928"/> + <Filename Value="E:\cvs_local\fpc\rtl\objpas\classes\reader.inc"/> + <TopLine Value="926"/> + <UsageCount Value="22"/> + </Unit24> + <Unit25> + <CursorPos X="81" Y="68"/> + <Filename Value="E:\cvs_local\fpc\rtl\objpas\sysutils\sysutilh.inc"/> + <TopLine Value="67"/> + <UsageCount Value="2"/> + </Unit25> + <Unit26> + <CursorPos X="1" Y="1"/> + <Filename Value="TestMinimalModel.pas"/> + <TopLine Value="1"/> + <UnitName Value="TestMinimalModel"/> + <UsageCount Value="52"/> + </Unit26> + <Unit27> + <CursorPos X="54" Y="16"/> + <Filename Value="E:\cvs_local\fpc\tests\test\trtti1.pp"/> + <TopLine Value="5"/> + <UnitName Value="trtti1"/> + <UsageCount Value="6"/> + </Unit27> + <Unit28> + <CursorPos X="56" Y="4"/> + <Filename Value="TestMockBroker.pas"/> + <TopLine Value="2"/> + <UnitName Value="TestMockBroker"/> + <UsageCount Value="23"/> + </Unit28> + <Unit29> + <CursorPos X="9" Y="50"/> + <Filename Value="MinimalModel.pas"/> + <TopLine Value="46"/> + <UnitName Value="MinimalModel"/> + <UsageCount Value="50"/> + </Unit29> + <Unit30> + <CursorPos X="60" Y="538"/> + <Filename Value="Model.pas"/> + <TopLine Value="536"/> + <UnitName Value="Model"/> + <UsageCount Value="20"/> + </Unit30> + <Unit31> + <CursorPos X="17" Y="7"/> + <Filename Value="TestInstantPersistence.pas"/> + <TopLine Value="2"/> + <UnitName Value="TestInstantPersistence"/> + <UsageCount Value="49"/> + </Unit31> + <Unit32> + <CursorPos X="57" Y="1"/> + <Filename Value="E:\cvs_local\fpc\rtl\objpas\rtlconsts.pp"/> + <TopLine Value="1"/> + <UnitName Value="RtlConsts"/> + <UsageCount Value="9"/> + </Unit32> + <Unit33> + <CursorPos X="1" Y="1"/> + <Filename Value="TestIO.mdx"/> + <SyntaxHighlighter Value="None"/> + <TopLine Value="1"/> + <UsageCount Value="5"/> + </Unit33> + <Unit34> + <CursorPos X="7" Y="905"/> + <Filename Value="E:\cvs_local\fpc\fcl\classes\classes.inc"/> + <TopLine Value="661"/> + <UsageCount Value="9"/> + </Unit34> + <Unit35> + <CursorPos X="38" Y="594"/> + <Filename Value="E:\cvs_local\fpc\fcl\classes\reader.inc"/> + <TopLine Value="591"/> + <UsageCount Value="1"/> + </Unit35> + <Unit36> + <CursorPos X="81" Y="352"/> + <Filename Value="E:\cvs_local\lazarus\components\fpcunit\GuiTestRunner.pas"/> + <ComponentName Value="GUITestRunner"/> + <ResourceFilename Value="E:\cvs_local\lazarus\components\fpcunit\guitestrunner.lrs"/> + <TopLine Value="346"/> + <UnitName Value="GuiTestRunner"/> + <UsageCount Value="7"/> + </Unit36> + <Unit37> + <CursorPos X="1" Y="41"/> + <Filename Value="E:\cvs_local\fpc\rtl\objpas\classes\constsg.inc"/> + <TopLine Value="30"/> + <UsageCount Value="2"/> + </Unit37> + <Unit38> + <CursorPos X="1" Y="40"/> + <Filename Value="E:\cvs_local\fpc\rtl\objpas\classes\constss.inc"/> + <TopLine Value="29"/> + <UsageCount Value="2"/> + </Unit38> + <Unit39> + <CursorPos X="2" Y="40"/> + <Filename Value="E:\cvs_local\fpc\rtl\objpas\classes\util.inc"/> + <TopLine Value="40"/> + <UsageCount Value="11"/> + </Unit39> + <Unit40> + <CursorPos X="11" Y="172"/> + <Filename Value="E:\cvs_local\fpc\rtl\objpas\strutils.pp"/> + <TopLine Value="161"/> + <UnitName Value="strutils"/> + <UsageCount Value="8"/> + </Unit40> + <Unit41> + <CursorPos X="3" Y="1230"/> + <Filename Value="E:\cvs_local\lazarus\components\rtticontrols\rttigrids.pas"/> + <TopLine Value="1219"/> + <UnitName Value="RTTIGrids"/> + <UsageCount Value="8"/> + </Unit41> + <Unit42> + <CursorPos X="6" Y="2"/> + <Filename Value="E:\cvs_local\fpc\fcl\inc\streamex.pp"/> + <TopLine Value="1"/> + <UnitName Value="streamex"/> + <UsageCount Value="7"/> + </Unit42> + <Unit43> + <CursorPos X="75" Y="18"/> + <Filename Value="E:\cvs_local\fpc\fcl\Makefile.fpc"/> + <SyntaxHighlighter Value="None"/> + <TopLine Value="9"/> + <UsageCount Value="7"/> + </Unit43> + <Unit44> + <CursorPos X="6" Y="16"/> + <Filename Value="E:\cvs_local\fpc\fcl\inc\streamio.pp"/> + <TopLine Value="5"/> + <UnitName Value="StreamIO"/> + <UsageCount Value="7"/> + </Unit44> + <Unit45> + <CursorPos X="63" Y="100"/> + <Filename Value="E:\z\svifpc\io\source\core\InstantUtils.pas"/> + <TopLine Value="85"/> + <UnitName Value="InstantUtils"/> + <UsageCount Value="7"/> + </Unit45> + <Unit46> + <CursorPos X="16" Y="20"/> + <Filename Value="D:\fpc_uberto\lazarus\lcl\Graphics.pp"/> + <TopLine Value="17"/> + <UnitName Value="... [truncated message content] |