From: uberto b. <ub...@us...> - 2005-02-26 16:43:14
|
Update of /cvsroot/instantobjects/Source/Tests In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19768 Modified Files: InstantMock.pas TestMockBroker.pas TestMockConnector.pas Log Message: Added RelationalBroker tests Index: TestMockConnector.pas =================================================================== RCS file: /cvsroot/instantobjects/Source/Tests/TestMockConnector.pas,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** TestMockConnector.pas 22 Feb 2005 11:41:23 -0000 1.2 --- TestMockConnector.pas 26 Feb 2005 16:43:04 -0000 1.3 *************** *** 34,41 **** conn.MockManager.AddExpectation('InternalConnect'); conn.MockManager.AddExpectation('InternalCreateScheme'); ! conn.MockManager.AddExpectation('CreateBroker'); conn.MockManager.AddExpectation('InternalDisconnect'); conn.MockManager.EndSetUp; AssertEquals(4, conn.MockManager.UncoveredExpectations); conn.BuildDatabase(InstantModel); conn.MockManager.Verify; --- 34,42 ---- conn.MockManager.AddExpectation('InternalConnect'); conn.MockManager.AddExpectation('InternalCreateScheme'); ! conn.MockManager.AddExpectation('CreateBroker TInstantMockBroker'); conn.MockManager.AddExpectation('InternalDisconnect'); conn.MockManager.EndSetUp; AssertEquals(4, conn.MockManager.UncoveredExpectations); + conn.BrokerClass := TInstantMockBroker; conn.BuildDatabase(InstantModel); conn.MockManager.Verify; *************** *** 51,54 **** --- 52,56 ---- conn := TInstantMockConnector.Create(nil); try + conn.BrokerClass := TInstantMockBroker; conn.BuildDatabase(InstantModel); conn.MockManager.StartSetUp; *************** *** 71,74 **** --- 73,77 ---- conn := TInstantMockConnector.Create(nil); try + conn.BrokerClass := TInstantMockBroker; conn.BuildDatabase(InstantModel); conn.Connect; Index: TestMockBroker.pas =================================================================== RCS file: /cvsroot/instantobjects/Source/Tests/TestMockBroker.pas,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** TestMockBroker.pas 22 Feb 2005 16:56:49 -0000 1.4 --- TestMockBroker.pas 26 Feb 2005 16:43:04 -0000 1.5 *************** *** 19,22 **** --- 19,32 ---- procedure TestBuildDatabase; procedure TestStoreAndRetrieveAddress; + end; + + TTestMockRelationalBroker = class(TTestCase) + private + protected + FConn: TInstantMockConnector; + procedure SetUp; override; + procedure TearDown; override; + published + procedure TestGetBroker; procedure TestStoreAndRetrieveContact; end; *************** *** 29,33 **** begin InstantModel.LoadFromFile(ChangeFileExt(ParamStr(0),'.mdx')); - AssertNotNull(InstantModel.ClassMetadatas.Find('TContact')); end; --- 39,42 ---- *************** *** 96,109 **** end; ! procedure TTestMockBroker.TestStoreAndRetrieveContact; var c: TContact; old_id: string; ! brok: TInstantMockBroker; t: TPhone; begin InstantModel.LoadFromFile(ChangeFileExt(ParamStr(0),'.mdx')); Fconn.IsDefault := True; ! brok := Fconn.Broker as TInstantMockBroker; brok.MockManager.StartSetUp; c := TContact.Create; --- 105,159 ---- end; ! procedure TTestMockBroker.SetUp; ! begin ! inherited; ! FConn := TInstantMockConnector.Create(nil); ! FConn.BrokerClass := TInstantMockBroker; ! end; ! ! procedure TTestMockBroker.TearDown; ! begin ! FConn.Free; ! inherited; ! end; ! ! { TTestMockRelationalBroker } ! ! procedure TTestMockRelationalBroker.SetUp; ! begin ! inherited; ! FConn := TInstantMockConnector.Create(nil); ! FConn.BrokerClass := TInstantMockCRBroker; ! end; ! ! procedure TTestMockRelationalBroker.TearDown; ! begin ! inherited; ! FConn.Free; ! end; ! ! procedure TTestMockRelationalBroker.TestGetBroker; ! var ! brok: TInstantMockCRBroker; ! begin ! brok := (Fconn.Broker as TInstantMockCRBroker); ! AssertNotNull(brok); ! AssertEquals(brok.ClassType, TInstantMockCRBroker); ! brok.MockManager.StartSetUp; ! brok.MockManager.EndSetUp; ! Fconn.BuildDatabase(InstantModel); ! brok.MockManager.Verify; ! end; ! ! procedure TTestMockRelationalBroker.TestStoreAndRetrieveContact; var c: TContact; old_id: string; ! brok: TInstantMockCRBroker; t: TPhone; begin InstantModel.LoadFromFile(ChangeFileExt(ParamStr(0),'.mdx')); Fconn.IsDefault := True; ! brok := Fconn.Broker as TInstantMockCRBroker; brok.MockManager.StartSetUp; c := TContact.Create; *************** *** 127,133 **** AssertNull(c); brok.MockManager.EndSetUp; ! brok.MockManager.AddExpectation('InternalStoreObject ' + old_id); brok.MockManager.Verify; brok.MockManager.StartSetUp; c := TContact.Retrieve(old_id); try --- 177,185 ---- AssertNull(c); brok.MockManager.EndSetUp; ! brok.MockManager.AddExpectation('InternalStoreObject caFail ' + old_id); brok.MockManager.Verify; brok.MockManager.StartSetUp; + brok.MockManager.AddExpectation('InternalRetrieveObject caFail ' + old_id); + brok.MockManager.EndSetUp; c := TContact.Retrieve(old_id); try *************** *** 138,160 **** c.Free; end; - brok.MockManager.EndSetUp; - brok.MockManager.AddExpectation('InternalRetrieveObject ' + old_id); brok.MockManager.Verify; end; - procedure TTestMockBroker.SetUp; - begin - inherited; - FConn := TInstantMockConnector.Create(nil); - end; - - procedure TTestMockBroker.TearDown; - begin - FConn.Free; - inherited; - end; - initialization ! RegisterTests([TTestMockBroker]); end. \ No newline at end of file --- 190,198 ---- c.Free; end; brok.MockManager.Verify; end; initialization ! RegisterTests([TTestMockBroker, TTestMockRelationalBroker]); end. \ No newline at end of file Index: InstantMock.pas =================================================================== RCS file: /cvsroot/instantobjects/Source/Tests/InstantMock.pas,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** InstantMock.pas 22 Feb 2005 13:08:44 -0000 1.2 --- InstantMock.pas 26 Feb 2005 16:43:04 -0000 1.3 *************** *** 7,13 **** type ! TInstantMockConnector = class(TInstantConnector, IUbMockObject) private FMock: TUbMockObject; protected procedure SetMock(const Value: TUbMockObject); --- 7,17 ---- type ! TInstantBrokerClass = class of TInstantBroker; ! ! TInstantMockConnector = class(TInstantConnector) private FMock: TUbMockObject; + FBrokerClass: TInstantBrokerClass; + procedure SetBrokerClass(const Value: TInstantBrokerClass); protected procedure SetMock(const Value: TUbMockObject); *************** *** 20,24 **** procedure InternalRollbackTransaction; override; public ! property MockManager: TUbMockObject read FMock write SetMock implements IUbMockObject; class function ConnectionDefClass: TInstantConnectionDefClass; override; constructor Create(AOwner: TComponent); override; --- 24,29 ---- 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; *************** *** 32,36 **** end; ! TInstantMockBroker = class(TInstantBroker, IUbMockObject) private FMock: TUbMockObject; --- 37,41 ---- end; ! TInstantMockBroker = class(TInstantBroker) private FMock: TUbMockObject; *************** *** 45,49 **** ConflictAction: TInstantConflictAction): Boolean; override; public ! property MockManager: TUbMockObject read FMock write SetMock implements IUbMockObject; constructor Create(AConnector: TInstantConnector); override; destructor Destroy; override; --- 50,73 ---- 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; *************** *** 52,55 **** --- 76,89 ---- implementation + function CaToStr(ConflictAction: TInstantConflictAction): string; + begin + if ConflictAction = caIgnore then + Result := 'caIgnore' + else if ConflictAction = caFail then + Result := 'caFail' + else + Result := '???'; + end; + { TMockIConnector } *************** *** 67,72 **** function TInstantMockConnector.CreateBroker: TInstantBroker; begin ! FMock.AddExpectation('CreateBroker'); ! Result := TInstantMockBroker.Create(Self); end; --- 101,106 ---- function TInstantMockConnector.CreateBroker: TInstantBroker; begin ! FMock.AddExpectation('CreateBroker ' + FBrokerClass.ClassName); ! Result := FBrokerClass.Create(Self); end; *************** *** 172,175 **** --- 206,215 ---- end; + procedure TInstantMockConnector.SetBrokerClass( + const Value: TInstantBrokerClass); + begin + FBrokerClass := Value; + end; + procedure TInstantMockConnector.SetMock(const Value: TUbMockObject); begin *************** *** 177,180 **** --- 217,268 ---- 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'); + 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; + initialization RegisterClass(TInstantMockConnectionDef); |