public void Test_CancelEdits_CallsCancelEditsOnDirtyRelationshipsOnly() { //---------------Set up test pack------------------- new AddressTestBO(); ContactPersonTestBO.LoadClassDefOrganisationTestBORelationship_MultipleReverse(); OrganisationTestBO.LoadDefaultClassDef_WithMultipleRelationshipToAddress(); OrganisationTestBO organisationTestBO = OrganisationTestBO.CreateSavedOrganisation(); RelationshipCol relationshipCol = new RelationshipCol(organisationTestBO); // Setup Mocks MockRepository mockRepository = new MockRepository(); RelationshipBase dirtyRelationship = mockRepository.PartialMock <RelationshipBase>(); RelationshipBase nonDirtyRelationship = mockRepository.PartialMock <RelationshipBase>(); Expect.Call(dirtyRelationship.RelationshipName).Return("DirtyRelationship").Repeat.Any(); Expect.Call(dirtyRelationship.IsDirty).Return(true).Repeat.Once(); Expect.Call(dirtyRelationship.CancelEdits).Repeat.Once(); Expect.Call(nonDirtyRelationship.RelationshipName).Return("NonDirtyRelationship").Repeat.Any(); Expect.Call(nonDirtyRelationship.IsDirty).Return(false).Repeat.Once(); Expect.Call(nonDirtyRelationship.CancelEdits).Repeat.Never(); mockRepository.ReplayAll(); relationshipCol.Add(dirtyRelationship); relationshipCol.Add(nonDirtyRelationship); //---------------Assert Precondition---------------- //---------------Execute Test ---------------------- relationshipCol.CancelEdits(); //---------------Test Result ----------------------- mockRepository.VerifyAll(); }
public void Test_PersistParent_PersistsDirtyChildren() { //---------------Set up test pack------------------- OrganisationTestBO organisationTestBO = OrganisationTestBO.CreateSavedOrganisation(); RelationshipCol relationships = organisationTestBO.Relationships; BusinessObjectCollection <ContactPersonTestBO> cpCol; MultipleRelationship <ContactPersonTestBO> aggregateRelationship = GetAggregationRelationship (organisationTestBO, out cpCol); ContactPersonTestBO myBO = cpCol.CreateBusinessObject(); myBO.Surname = TestUtil.GetRandomString(); myBO.FirstName = TestUtil.GetRandomString(); myBO.Save(); myBO.FirstName = TestUtil.GetRandomString(); //---------------Assert Precondition---------------- Assert.IsTrue(aggregateRelationship.IsDirty); Assert.IsTrue(myBO.Status.IsDirty); Assert.IsTrue(relationships.IsDirty); Assert.IsTrue(organisationTestBO.Status.IsDirty); //---------------Execute Test ---------------------- organisationTestBO.Save(); //---------------Test Result ----------------------- Assert.IsFalse(myBO.Status.IsDirty); Assert.IsFalse(aggregateRelationship.IsDirty); Assert.IsFalse(relationships.IsDirty); Assert.IsFalse(organisationTestBO.Status.IsDirty); }
protected MultipleRelationship <ContactPersonTestBO> GetRelationship( out OrganisationTestBO organisationTestBO, out RelationshipCol relationships, out BusinessObjectCollection <ContactPersonTestBO> cpCol) { organisationTestBO = OrganisationTestBO.CreateSavedOrganisation(); relationships = organisationTestBO.Relationships; return(GetRelationship(organisationTestBO, out cpCol)); }
/// <summary> /// Create a new collection of relationships /// </summary> /// <param name="lBoPropCol">The collection of properties</param> /// <param name="bo">The business object that will manage these /// relationships</param> /// <returns>Returns the new collection created</returns> public RelationshipCol CreateRelationshipCol(IBOPropCol lBoPropCol, IBusinessObject bo) { RelationshipCol lRelationshipCol = new RelationshipCol(bo); foreach (RelationshipDef lRelationshipDef in this) { lRelationshipCol.Add(lRelationshipDef.CreateRelationship(bo, lBoPropCol)); } return(lRelationshipCol); }
protected TestBO() { _mock = new MockRepository(); RelationshipCol relationshipCol = new RelationshipCol(this); this.Relationships = relationshipCol; int childSuffix = TypeNameNumber + 1; AddChildIfNeeded("MyBO" + childSuffix, relationshipCol); AddChildIfNeeded("MyPreventBO" + childSuffix, relationshipCol); _mock.ReplayAll(); }
public void Test_CancelEdits() { //---------------Set up test pack------------------- new AddressTestBO(); ContactPersonTestBO.LoadClassDefOrganisationTestBORelationship_MultipleReverse(); OrganisationTestBO.LoadDefaultClassDef_WithMultipleRelationshipToAddress(); OrganisationTestBO organisationTestBO = OrganisationTestBO.CreateSavedOrganisation(); RelationshipCol relationships = organisationTestBO.Relationships; MultipleRelationship <ContactPersonTestBO> contactPersonRelationship = organisationTestBO.Relationships.GetMultiple <ContactPersonTestBO>("ContactPeople"); BusinessObjectCollection <ContactPersonTestBO> contactPersonCol = contactPersonRelationship.BusinessObjectCollection; MultipleRelationship <AddressTestBO> addressRelationship = organisationTestBO.Relationships.GetMultiple <AddressTestBO>("Addresses"); BusinessObjectCollection <AddressTestBO> addressCol = addressRelationship.BusinessObjectCollection; contactPersonCol.CreateBusinessObject(); addressCol.CreateBusinessObject(); //---------------Assert Precondition---------------- Assert.IsTrue(relationships.IsDirty); //---------------Execute Test ---------------------- relationships.CancelEdits(); //---------------Test Result ----------------------- Assert.IsFalse(relationships.IsDirty); }
private void AddChildIfNeeded(string childName, RelationshipCol relationshipCol) { IRelationshipDefCol relationshipDefCol = ClassDef.RelationshipDefCol; if (relationshipDefCol.Contains(childName)) { IRelationshipDef relationshipDef = relationshipDefCol[childName]; #pragma warning disable 168 IClassDef classDef = relationshipDef.RelatedObjectClassDef; #pragma warning restore 168 IMultipleRelationship relationship = (IMultipleRelationship)relationshipDef.CreateRelationship(this, this._boPropCol); //_mock.DynamicMock<IMultipleRelationship>(); //(this, relationshipDef, this._boPropCol); //BusinessObjectCollection<BusinessObject> businessObjectCollection = new BusinessObjectCollection<BusinessObject>(classDef); //SetupResult.For(relationship.BusinessObjectCollection) // .Return(businessObjectCollection); //SetupResult.For(relationship.RelationshipName) // .Return(businessObjectCollection); //SetupResult.For(relationship.GetRelatedBusinessObjectCol<BusinessObject>()) // .Return(businessObjectCollection); relationshipCol.Add(relationship); } }
public void Test_AddDirtyChildrenToTransactionCommitter() { //---------------Set up test pack------------------- new AddressTestBO(); ContactPersonTestBO.LoadClassDefOrganisationTestBORelationship_MultipleReverse(); OrganisationTestBO.LoadDefaultClassDef_WithMultipleRelationshipToAddress(); OrganisationTestBO organisationTestBO = OrganisationTestBO.CreateSavedOrganisation(); RelationshipCol relationships = organisationTestBO.Relationships; MultipleRelationship <ContactPersonTestBO> contactPersonRelationship = organisationTestBO.Relationships.GetMultiple <ContactPersonTestBO>("ContactPeople"); BusinessObjectCollection <ContactPersonTestBO> contactPersonCol = contactPersonRelationship.BusinessObjectCollection; MultipleRelationship <AddressTestBO> addressRelationship = organisationTestBO.Relationships.GetMultiple <AddressTestBO>("Addresses"); BusinessObjectCollection <AddressTestBO> addressCol = addressRelationship.BusinessObjectCollection; contactPersonCol.CreateBusinessObject(); addressCol.CreateBusinessObject(); //---------------Execute Test ---------------------- TransactionCommitterInMemory tc = new TransactionCommitterInMemory(new DataStoreInMemory()); relationships.AddDirtyChildrenToTransactionCommitter(tc); //---------------Test Result ----------------------- Assert.AreEqual(2, tc.OriginalTransactions.Count); }
public void Test_CancelEdits_CallsCancelEditsOnDirtyRelationshipsOnly() { //---------------Set up test pack------------------- new AddressTestBO(); ContactPersonTestBO.LoadClassDefOrganisationTestBORelationship_MultipleReverse(); OrganisationTestBO.LoadDefaultClassDef_WithMultipleRelationshipToAddress(); OrganisationTestBO organisationTestBO = OrganisationTestBO.CreateSavedOrganisation(); RelationshipCol relationshipCol = new RelationshipCol(organisationTestBO); // Setup Mocks MockRepository mockRepository = new MockRepository(); RelationshipBase dirtyRelationship = mockRepository.PartialMock<RelationshipBase>(); RelationshipBase nonDirtyRelationship = mockRepository.PartialMock<RelationshipBase>(); Expect.Call(dirtyRelationship.RelationshipName).Return("DirtyRelationship").Repeat.Any(); Expect.Call(dirtyRelationship.IsDirty).Return(true).Repeat.Once(); Expect.Call(dirtyRelationship.CancelEdits).Repeat.Once(); Expect.Call(nonDirtyRelationship.RelationshipName).Return("NonDirtyRelationship").Repeat.Any(); Expect.Call(nonDirtyRelationship.IsDirty).Return(false).Repeat.Once(); Expect.Call(nonDirtyRelationship.CancelEdits).Repeat.Never(); mockRepository.ReplayAll(); relationshipCol.Add(dirtyRelationship); relationshipCol.Add(nonDirtyRelationship); //---------------Assert Precondition---------------- //---------------Execute Test ---------------------- relationshipCol.CancelEdits(); //---------------Test Result ----------------------- mockRepository.VerifyAll(); }
protected MultipleRelationship<ContactPersonTestBO> GetRelationship( out OrganisationTestBO organisationTestBO, out RelationshipCol relationships, out BusinessObjectCollection<ContactPersonTestBO> cpCol) { organisationTestBO = OrganisationTestBO.CreateSavedOrganisation(); relationships = organisationTestBO.Relationships; return GetRelationship(organisationTestBO, out cpCol); }
/// <summary> /// Create a new collection of relationships /// </summary> /// <param name="lBoPropCol">The collection of properties</param> /// <param name="bo">The business object that will manage these /// relationships</param> /// <returns>Returns the new collection created</returns> public RelationshipCol CreateRelationshipCol(IBOPropCol lBoPropCol, IBusinessObject bo) { RelationshipCol lRelationshipCol = new RelationshipCol(bo); foreach (RelationshipDef lRelationshipDef in this) { lRelationshipCol.Add(lRelationshipDef.CreateRelationship(bo, lBoPropCol)); } return lRelationshipCol; }