Example #1
0
        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();
        }
Example #2
0
        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));
 }
Example #4
0
        /// <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);
        }
Example #5
0
        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();
        }
Example #6
0
        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);
        }
Example #7
0
        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);
            }
        }
Example #8
0
        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;
 }