public void TestBoLoader_RefreshBusinessObjectDeletedByAnotherUser() { //-------------Setup Test Pack------------------ SetupDefaultContactPersonBO(); ContactPersonTestBO cpTemp = ContactPersonTestBO.CreateSavedContactPerson(); FixtureEnvironment.ClearBusinessObjectManager(); ContactPersonTestBO cpLoaded = BORegistry.DataAccessor.BusinessObjectLoader.GetBusinessObject <ContactPersonTestBO>(cpTemp.ID); cpTemp.MarkForDelete(); cpTemp.Save(); //-------------Execute Test --------------------- try { BORegistry.DataAccessor.BusinessObjectLoader.Refresh(cpLoaded); Assert.Fail(); } //-------------Test Result --------------------- catch (BusObjDeleteConcurrencyControlException ex) { StringAssert.Contains ("A Error has occured since the object you are trying to refresh has been deleted by another user.", ex.Message); StringAssert.Contains("There are no records in the database for the Class", ex.Message); StringAssert.Contains("ContactPersonTestBO", ex.Message); StringAssert.Contains(cpLoaded.ID.ToString(), ex.Message); } }
protected static ContactPersonTestBO CreateDeletedChild_ChildOwnsEdit(BusinessObjectCollection <ContactPersonTestBO> cpCol) { ContactPersonTestBO existingChildMarkedForDelete = CreateExistingChild(cpCol); existingChildMarkedForDelete.MarkForDelete(); return(existingChildMarkedForDelete); }
public void Test_MarkForDelete_Added_RestoreBO_LoadWCriteria() { //---------------Set up test pack------------------- BusinessObjectCollection <ContactPersonTestBO> cpCol = new BusinessObjectCollection <ContactPersonTestBO>(); cpCol.Load("Surname=cc", ""); ContactPersonTestBO myBO = ContactPersonTestBO.CreateSavedContactPerson("BB"); cpCol.Add(myBO); myBO.MarkForDelete(); _businessObjectCollectionTestHelper.RegisterForAddedAndRemovedEvents(cpCol); //---------------Assert Precondition---------------- BusinessObjectCollectionTestHelper.AssertOneObjectInMarkForDeleteAndAddedCollection(cpCol); Assert.IsTrue(myBO.Status.IsDirty); //---------------Execute Test ---------------------- myBO.CancelEdits(); //---------------Test Result ----------------------- BusinessObjectCollectionTestHelper.AssertOneObjectInCurrentAndAddedCollection(cpCol); Assert.IsFalse(myBO.Status.IsDirty); _businessObjectCollectionTestHelper.AssertAddedEventFired(); _businessObjectCollectionTestHelper.AssertRemovedEventNotFired(); }
public void TestDeleteRelated() { //---------------Set up test pack------------------- DataStoreInMemory dataStore = new DataStoreInMemory(); BORegistry.DataAccessor = new DataAccessorInMemory(dataStore); AddressTestBO address; ContactPersonTestBO contactPersonTestBO = ContactPersonTestBO.CreateContactPersonWithOneAddress_CascadeDelete(out address, TestUtil.GetRandomString()); contactPersonTestBO.MarkForDelete(); TransactionCommitterInMemory committer = new TransactionCommitterInMemory(dataStore); committer.AddBusinessObject(contactPersonTestBO); //---------------Execute Test ---------------------- committer.CommitTransaction(); //---------------Test Result ----------------------- AssertBOStateIsValidAfterDelete(contactPersonTestBO); AssertBOStateIsValidAfterDelete(address); AssertBusinessObjectNotInDataStore(contactPersonTestBO); AssertBusinessObjectNotInDataStore(address); }
public void TestDelete() { //---------------Set up test pack------------------- ContactPersonTestBO cp = GetContactPerson(); DataStoreInMemory dataStore = new DataStoreInMemory(); ITransactionCommitter firstTransactionCommitter = new TransactionCommitterInMemory(dataStore); firstTransactionCommitter.AddBusinessObject(cp); firstTransactionCommitter.CommitTransaction(); //---------------Assert Preconditions-------------- Assert.AreEqual(1, dataStore.Count); //---------------Execute Test ---------------------- cp.MarkForDelete(); ITransactionCommitter secondTransactionCommitter = new TransactionCommitterInMemory(dataStore); secondTransactionCommitter.AddBusinessObject(cp); secondTransactionCommitter.CommitTransaction(); //---------------Test Result ----------------------- Assert.AreEqual(0, dataStore.Count); // Assert.IsNull(loader.GetBusinessObject<ContactPersonTestBO>(cp.PrimaryKey)); }
public void Test_MarkForDelete_Added_BO_MarkForDelete() { //---------------Set up test pack------------------- BusinessObjectCollection <ContactPersonTestBO> cpCol = new BusinessObjectCollection <ContactPersonTestBO>(); ContactPersonTestBO myBO = ContactPersonTestBO.CreateSavedContactPerson("BB"); cpCol.Add(myBO); myBO.MarkForDelete(); //---------------Assert Precondition---------------- BusinessObjectCollectionTestHelper.AssertOneObjectInMarkForDeleteAndAddedCollection(cpCol); Assert.IsTrue(myBO.Status.IsDirty); //---------------Execute Test ---------------------- myBO.MarkForDelete(); //---------------Test Result ----------------------- BusinessObjectCollectionTestHelper.AssertOneObjectInMarkForDeleteAndAddedCollection(cpCol); Assert.IsTrue(myBO.Status.IsDirty); }
public void Test_CreatedBusinessObject_MarkForDelete_ShouldBeRemovedFromTheCollection() { //---------------Set up test pack------------------- //ContactPersonTestBO.LoadDefaultClassDef(); BusinessObjectCollection <ContactPersonTestBO> cpCol = new BusinessObjectCollection <ContactPersonTestBO>(); ContactPersonTestBO newCP = cpCol.CreateBusinessObject(); newCP.Surname = TestUtil.GetRandomString(); //---------------Assert Precondition---------------- AssertOneObjectInCurrentAndCreatedCollection(cpCol); //---------------Execute Test ---------------------- newCP.MarkForDelete(); //---------------Test Result ----------------------- Assert.AreEqual(0, cpCol.Count); Assert.IsTrue(newCP.Status.IsDeleted); }
public void Test_MarkedForDeleteChild_SavesWhenParentSaves() { //---------------Set up test pack------------------- OrganisationTestBO organisation = OrganisationTestBO.CreateSavedOrganisation(); GetAssociationRelationship(organisation); ContactPersonTestBO contactPerson = ContactPersonTestBO.CreateUnsavedContactPerson(); organisation.ContactPerson = contactPerson; contactPerson.Save(); contactPerson.MarkForDelete(); //---------------Execute Test ---------------------- organisation.Save(); //---------------Test Result ----------------------- BOTestUtils.AssertBOStateIsValidAfterDelete(contactPerson); }
public void Test_MarkedForDeleteChild_SavesWhenParentSaves() { //---------------Set up test pack------------------- OrganisationTestBO organisationTestBO = OrganisationTestBO.CreateSavedOrganisation(); ContactPersonTestBO contactPerson = organisationTestBO.ContactPeople.CreateBusinessObject(); RelationshipDef relationshipDef = (RelationshipDef)organisationTestBO.Relationships["ContactPeople"].RelationshipDef; relationshipDef.RelationshipType = RelationshipType.Association; contactPerson.Surname = TestUtil.GetRandomString(); contactPerson.FirstName = TestUtil.GetRandomString(); contactPerson.Save(); contactPerson.MarkForDelete(); //---------------Execute Test ---------------------- organisationTestBO.Save(); //---------------Test Result ----------------------- BOTestUtils.AssertBOStateIsValidAfterDelete(contactPerson); }
public void Test_GetDirtyChildren_MarkedForDelete() { //---------------Set up test pack------------------- OrganisationTestBO organisationTestBO = OrganisationTestBO.CreateSavedOrganisation(); SingleRelationship <ContactPersonTestBO> relationship = GetCompositionRelationship(organisationTestBO); ContactPersonTestBO myBO = new ContactPersonTestBO(); myBO.Surname = TestUtil.GetRandomString(); myBO.FirstName = TestUtil.GetRandomString(); myBO.Organisation = organisationTestBO; organisationTestBO.Save(); myBO.MarkForDelete(); //---------------Execute Test ---------------------- IList <ContactPersonTestBO> dirtyChildren = relationship.GetDirtyChildren(); //---------------Test Result ----------------------- Assert.Contains(myBO, (ICollection)dirtyChildren); Assert.AreEqual(1, dirtyChildren.Count); }
public void Test_DirtyIfHasMarkForDeleteChildren() { //---------------Set up test pack------------------- OrganisationTestBO organisationTestBO = OrganisationTestBO.CreateSavedOrganisation(); SingleRelationship <ContactPersonTestBO> relationship = GetCompositionRelationship(organisationTestBO); ContactPersonTestBO myBO = new ContactPersonTestBO(); myBO.Surname = TestUtil.GetRandomString(); myBO.FirstName = TestUtil.GetRandomString(); myBO.Organisation = organisationTestBO; organisationTestBO.Save(); //---------------Assert Precondition---------------- Assert.IsFalse(relationship.IsDirty); //---------------Execute Test ---------------------- myBO.MarkForDelete(); bool isDirty = relationship.IsDirty; //---------------Test Result ----------------------- Assert.IsTrue(isDirty); }
public void Test_MarkForDeleteBO_MarkBODirectly() { //A Business object that exists in the collection can be marked for deletion either as a bo or // as an index in the collection //---------------Set up test pack------------------- RelatedBusinessObjectCollection <ContactPersonTestBO> cpCol = CreateCollectionWith_OneBO(OrganisationTestBO.CreateSavedOrganisation()); ContactPersonTestBO markForDeleteCP = cpCol[0]; _removedEventFired = false; cpCol.BusinessObjectRemoved += delegate { _removedEventFired = true; }; //---------------Assert Precondition---------------- Assert.IsFalse(markForDeleteCP.Status.IsDeleted); AssertOneObjectInCurrentAndPersistedCollection(cpCol); //---------------Execute Test ---------------------- markForDeleteCP.MarkForDelete(); //---------------Test Result ----------------------- Assert.IsTrue(markForDeleteCP.Status.IsDeleted); AssertOnePersisted_OneMarkForDelete(cpCol); Assert.IsTrue(_removedEventFired); }
public void Test_MarkForDelete_Added_RefreshAll() { //---------------Set up test pack------------------- ContactPersonTestBO myBO = ContactPersonTestBO.CreateSavedContactPerson(); BusinessObjectCollection <ContactPersonTestBO> cpCol = new BusinessObjectCollection <ContactPersonTestBO>(); cpCol.Load(new Criteria("Surname", Criteria.ComparisonOp.Equals, TestUtil.GetRandomString()), ""); cpCol.Add(myBO); myBO.MarkForDelete(); _businessObjectCollectionTestHelper.RegisterForAddedAndRemovedEvents(cpCol); //---------------Assert Precondition---------------- BusinessObjectCollectionTestHelper.AssertOneObjectInMarkForDeleteAndAddedCollection(cpCol); Assert.IsTrue(myBO.Status.IsDirty); _businessObjectCollectionTestHelper.AssertAddedAndRemovedEventsNotFired(); //---------------Execute Test ---------------------- cpCol.Refresh(); //---------------Test Result ----------------------- BusinessObjectCollectionTestHelper.AssertOneObjectInMarkForDeleteAndAddedCollection(cpCol); Assert.IsTrue(myBO.Status.IsDirty); _businessObjectCollectionTestHelper.AssertAddedAndRemovedEventsNotFired(); }
public void Test_RestoreAll() { ContactPersonTestBO.LoadDefaultClassDef(); ContactPersonTestBO contact1 = new ContactPersonTestBO {Surname = "Soap"}; ContactPersonTestBO contact2 = new ContactPersonTestBO {Surname = "Hope"}; BusinessObjectCollection<ContactPersonTestBO> col = new BusinessObjectCollection<ContactPersonTestBO> {contact1, contact2}; col.SaveAll(); Assert.AreEqual("Soap", col[0].Surname); Assert.AreEqual("Hope", col[1].Surname); contact1.Surname = "Cope"; contact2.Surname = "Pope"; Assert.AreEqual("Cope", col[0].Surname); Assert.AreEqual("Pope", col[1].Surname); col.CancelEdits(); Assert.AreEqual("Soap", col[0].Surname); Assert.AreEqual("Hope", col[1].Surname); contact1.MarkForDelete(); contact2.MarkForDelete(); col.SaveAll(); Assert.AreEqual(0, col.Count); }
public void Test_DirtyIfHasMarkForDeleteChildren() { //---------------Set up test pack------------------- OrganisationTestBO organisationTestBO = OrganisationTestBO.CreateSavedOrganisation(); SingleRelationship<ContactPersonTestBO> relationship = GetCompositionRelationship(organisationTestBO); ContactPersonTestBO myBO = new ContactPersonTestBO(); myBO.Surname = TestUtil.GetRandomString(); myBO.FirstName = TestUtil.GetRandomString(); myBO.Organisation = organisationTestBO; organisationTestBO.Save(); //---------------Assert Precondition---------------- Assert.IsFalse(relationship.IsDirty); //---------------Execute Test ---------------------- myBO.MarkForDelete(); bool isDirty = relationship.IsDirty; //---------------Test Result ----------------------- Assert.IsTrue(isDirty); }
private static OrganisationTestBO CreateSavedOrganisation_WithOneMarkForDeleteContactPerson (out ContactPersonTestBO contactPerson, out MultipleRelationship<ContactPersonTestBO> relationship) { OrganisationTestBO organisationTestBO = OrganisationTestBO.CreateSavedOrganisation(); BusinessObjectCollection<ContactPersonTestBO> cpCol; relationship = GetAssociationRelationship(organisationTestBO, out cpCol); contactPerson = ContactPersonTestBO.CreateSavedContactPerson (TestUtil.GetRandomString(), TestUtil.GetRandomString()); cpCol.Add(contactPerson); cpCol.SaveAll(); contactPerson.MarkForDelete(); return organisationTestBO; }
public void Test_GetDirtyChildren_MarkedForDelete() { //---------------Set up test pack------------------- OrganisationTestBO organisationTestBO = OrganisationTestBO.CreateSavedOrganisation(); SingleRelationship<ContactPersonTestBO> relationship = GetCompositionRelationship(organisationTestBO); ContactPersonTestBO myBO = new ContactPersonTestBO(); myBO.Surname = TestUtil.GetRandomString(); myBO.FirstName = TestUtil.GetRandomString(); myBO.Organisation = organisationTestBO; organisationTestBO.Save(); myBO.MarkForDelete(); //---------------Execute Test ---------------------- IList<ContactPersonTestBO> dirtyChildren = relationship.GetDirtyChildren(); //---------------Test Result ----------------------- Assert.Contains(myBO, (ICollection)dirtyChildren); Assert.AreEqual(1, dirtyChildren.Count); }
private static void DoTestCheckForDuplicateObjects() { ContactPersonTestBO contactPersonCompositeKey = GetSavedContactPersonCompositeKey(); FixtureEnvironment.ClearBusinessObjectManager(); ContactPersonTestBO duplicateContactPerson = new ContactPersonTestBO { ContactPersonID = Guid.NewGuid(), Surname = contactPersonCompositeKey.Surname, FirstName = contactPersonCompositeKey.FirstName }; TransactionCommitterDB committer = new TransactionCommitterDB(DatabaseConnection.CurrentConnection); committer.AddBusinessObject(duplicateContactPerson); //---------------Execute Test ---------------------- try { committer.CommitTransaction(); Assert.Fail(); } //---------------Test Result ----------------------- catch (BusObjDuplicateConcurrencyControlException ex) { StringAssert.Contains("Surname", ex.Message); StringAssert.Contains("FirstName", ex.Message); } finally { //---------------Tear Down-------------------------- contactPersonCompositeKey.MarkForDelete(); contactPersonCompositeKey.Save(); if (!duplicateContactPerson.Status.IsNew) { duplicateContactPerson.MarkForDelete(); duplicateContactPerson.Save(); } } }