|
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] |