public void Test_SavedObject_Twice_AddedToObjectManager_Once() { //---------------Set up test pack------------------- ContactPersonTestBO.LoadDefaultClassDef(); BusinessObjectManager boMan = BusinessObjectManager.Instance; ContactPersonTestBO cp = new ContactPersonTestBO(); cp.Surname = TestUtil.CreateRandomString(); cp.Save(); //---------------Assert Precondition---------------- Assert.AreEqual(1, boMan.Count); Assert.IsTrue(boMan.Contains(cp)); //---------------Execute Test ---------------------- cp.Surname = TestUtil.CreateRandomString(); cp.Save(); //---------------Test Result ----------------------- Assert.AreEqual(1, boMan.Count); Assert.IsTrue(boMan.Contains(cp)); Assert.IsTrue(boMan.Contains(cp.ID)); Assert.IsTrue(boMan.Contains(cp.ID.GetObjectId())); Assert.AreSame(cp, boMan[cp.ID.GetObjectId()]); Assert.AreSame(cp, boMan[cp.ID]); }
public void Test_RemoveSecondInstanceOfSameLoadedObjectDoesNotRemoveIt() { //---------------Set up test pack------------------- ContactPersonTestBO.LoadDefaultClassDef(); BusinessObjectManager boMan = BusinessObjectManager.Instance; ContactPersonTestBO originalContactPerson = new ContactPersonTestBO(); ContactPersonTestBO copyContactPerson = new ContactPersonTestBO(); copyContactPerson.ContactPersonID = originalContactPerson.ContactPersonID; BusinessObjectManager.Instance.Add(copyContactPerson); //---------------Assert Precondition---------------- Assert.AreNotSame(originalContactPerson, copyContactPerson); Assert.AreEqual(originalContactPerson.ID.GetObjectId(), copyContactPerson.ID.GetObjectId()); Assert.AreEqual(1, boMan.Count); Assert.IsTrue(boMan.Contains(copyContactPerson)); Assert.IsFalse(boMan.Contains(originalContactPerson)); //---------------Execute Test ---------------------- BusinessObjectManager.Instance.Remove(originalContactPerson); //---------------Test Result ----------------------- Assert.AreEqual(1, boMan.Count); Assert.IsTrue(boMan.Contains(copyContactPerson)); Assert.IsFalse(boMan.Contains(originalContactPerson)); }
public void Test_ChangePrimaryKeyForCompositeKey_UpdatedObjectMan() { //---------------Set up test pack------------------- ContactPersonCompositeKey.LoadClassDefs(); BusinessObjectManager boMan = BusinessObjectManager.Instance; ContactPersonCompositeKey cp = new ContactPersonCompositeKey(); cp.PK1Prop1 = TestUtil.CreateRandomString(); cp.PK1Prop2 = TestUtil.CreateRandomString(); cp.Save(); //---------------Assert Precondition---------------- Assert.AreEqual(1, boMan.Count); Assert.IsTrue(boMan.Contains(cp.ID)); Assert.AreSame(cp, boMan[cp.ID]); //---------------Execute Test ---------------------- cp.PK1Prop1 = TestUtil.CreateRandomString(); cp.PK1Prop2 = TestUtil.CreateRandomString(); cp.Save(); //---------------Test Result ----------------------- Assert.AreEqual(1, boMan.Count); Assert.IsTrue(boMan.Contains(cp)); Assert.IsTrue(boMan.Contains(cp.ID)); Assert.IsTrue(boMan.Contains(cp.ID.GetObjectId())); Assert.AreSame(cp, boMan[cp.ID.GetObjectId()]); Assert.AreSame(cp, boMan[cp.ID]); }
public void Test_LoadObject_UpdateObjectMan_NonGenericLoad() { //---------------Set up test pack------------------- ClassDef classDef = ContactPersonTestBO.LoadDefaultClassDef(); BusinessObjectManager boMan = BusinessObjectManager.Instance; ContactPersonTestBO cp = CreateSavedCP(); IPrimaryKey id = cp.ID; cp = null; TestUtil.WaitForGC(); boMan.ClearLoadedObjects(); //---------------Assert Precondition---------------- Assert.AreEqual(0, boMan.Count); //---------------Execute Test ---------------------- ContactPersonTestBO contactPersonTestBO = (ContactPersonTestBO)BORegistry.DataAccessor.BusinessObjectLoader.GetBusinessObject(classDef, id); //---------------Test Result ----------------------- Assert.IsNotNull(contactPersonTestBO); Assert.AreEqual(1, boMan.Count); Assert.IsTrue(boMan.Contains(contactPersonTestBO)); Assert.IsTrue(boMan.Contains(id)); Assert.IsTrue(boMan.Contains(id.GetObjectId())); Assert.AreSame(contactPersonTestBO, boMan[id.GetObjectId()]); Assert.AreSame(contactPersonTestBO, boMan[id]); }
public void Test_LoadObjectWhenAlreadyObjectInObjectManager() { //---------------Set up test pack------------------- ContactPersonTestBO.LoadClassDefWithAddressTestBOsRelationship(); BusinessObjectManager boMan = BusinessObjectManager.Instance; AddressTestBO address; ContactPersonTestBO cp = CreateSavedCP_WithOneAddresss(out address); IPrimaryKey contactPersonID = cp.ID; IPrimaryKey addresssID = address.ID; cp = null; address = null; TestUtil.WaitForGC(); boMan.ClearLoadedObjects(); AddressTestBO addressOut; CreateSavedCP_WithOneAddresss(out addressOut); CreateSavedCP_WithOneAddresss(out addressOut); CreateSavedCP_WithOneAddresss(out addressOut); //---------------Assert Precondition---------------- Assert.AreEqual(6, boMan.Count); //---------------Execute Test ---------------------- ContactPersonTestBO loadedCP = BORegistry.DataAccessor.BusinessObjectLoader.GetBusinessObject <ContactPersonTestBO>(contactPersonID); RelatedBusinessObjectCollection <AddressTestBO> addresses = loadedCP.AddressTestBOs; //---------------Test Result ----------------------- Assert.AreEqual(1, addresses.Count); Assert.AreEqual(8, boMan.Count); Assert.IsTrue(boMan.Contains(loadedCP)); Assert.AreSame(loadedCP, boMan[contactPersonID]); AddressTestBO loadedAddress = addresses[0]; Assert.IsTrue(boMan.Contains(loadedAddress)); Assert.IsTrue(boMan.Contains(addresssID)); Assert.IsTrue(boMan.Contains(addresssID.GetObjectId())); Assert.AreSame(loadedAddress, boMan[addresssID]); Assert.AreSame(loadedAddress, boMan[addresssID.GetObjectId()]); }
public void Test_LoadObject_SingleRelationship_UpdatedObjectMan_Generic() { //---------------Set up test pack------------------- ContactPersonTestBO.LoadClassDefWithAddressTestBOsRelationship(); BusinessObjectManager boMan = BusinessObjectManager.Instance; ContactPersonTestBO cp = CreateSavedCP(); AddressTestBO address = new AddressTestBO(); address.ContactPersonID = cp.ContactPersonID; address.Save(); IPrimaryKey contactPersonID = cp.ID; IPrimaryKey addresssID = address.ID; cp = null; address = null; TestUtil.WaitForGC(); boMan.ClearLoadedObjects(); //---------------Assert Precondition---------------- Assert.AreEqual(0, boMan.Count); //---------------Execute Test ---------------------- AddressTestBO loadedAddress = BORegistry.DataAccessor.BusinessObjectLoader.GetBusinessObject <AddressTestBO>(addresssID); ContactPersonTestBO loadedCP = loadedAddress.ContactPersonTestBO; //---------------Test Result ----------------------- Assert.AreEqual(2, boMan.Count); Assert.IsTrue(boMan.Contains(loadedCP)); Assert.IsTrue(boMan.Contains(contactPersonID)); Assert.AreSame(loadedCP, boMan[contactPersonID]); Assert.IsTrue(boMan.Contains(loadedAddress)); Assert.IsTrue(boMan.Contains(addresssID)); Assert.IsTrue(boMan.Contains(addresssID.GetObjectId())); Assert.AreSame(loadedAddress, boMan[addresssID]); Assert.AreSame(loadedAddress, boMan[addresssID.GetObjectId()]); }
public void Test_RemoveFromObjectManager() { //---------------Set up test pack------------------- ContactPersonTestBO.LoadDefaultClassDef(); BusinessObjectManager boMan = BusinessObjectManager.Instance; ContactPersonTestBO cp = new ContactPersonTestBO(); cp.Surname = TestUtil.CreateRandomString(); boMan.Add(cp); //---------------Assert Precondition---------------- Assert.AreEqual(1, boMan.Count); Assert.IsTrue(boMan.Contains(cp)); //---------------Execute Test ---------------------- boMan.Remove(cp); //---------------Test Result ----------------------- Assert.AreEqual(0, boMan.Count); Assert.IsFalse(boMan.Contains(cp)); }
public void Test_SaveDuplicateObject_DoesNotAddItselfToObjectManager() { //This scenario is unlikely to ever happen in normal use but is frequently hit during testing. //An object that has a reference to it is removed from the object manager (usually via ClearLoadedObjects). // A second instance of the same object is now loaded. This new instance is therefore added to the object manager. // The first object is saved. This must not remove the second instance of the object from the object manager and insert a itself. //---------------Set up test pack------------------- ContactPersonTestBO.LoadDefaultClassDef(); BusinessObjectManager boMan = BusinessObjectManager.Instance; ContactPersonTestBO originalContactPerson = new ContactPersonTestBO(); originalContactPerson.Surname = "FirstSurname"; originalContactPerson.Save(); IPrimaryKey origCPID = originalContactPerson.ID; BusinessObjectManager.Instance.ClearLoadedObjects(); //---------------Assert Precondition---------------- Assert.AreEqual(0, boMan.Count); Assert.IsFalse(boMan.Contains(originalContactPerson)); //---------------Execute Test Step 1---------------------- ContactPersonTestBO myContact2 = BORegistry.DataAccessor.BusinessObjectLoader.GetBusinessObject <ContactPersonTestBO>(origCPID); //---------------Test Result Step 1----------------------- Assert.AreEqual(1, boMan.Count); Assert.IsTrue(boMan.Contains(myContact2)); //---------------Execute Test Step 2---------------------- originalContactPerson.Surname = TestUtil.CreateRandomString(); originalContactPerson.Save(); //---------------Test Result Step 1----------------------- Assert.AreNotSame(originalContactPerson, myContact2); Assert.AreEqual(1, boMan.Count); Assert.IsTrue(boMan.Contains(myContact2)); Assert.IsFalse(boMan.Contains(originalContactPerson)); }
public void Test_ContainsBusinessObjectReturnsFalseIfReferenceNotEquals() { //---------------Set up test pack------------------- ContactPersonTestBO.LoadDefaultClassDef(); BusinessObjectManager boMan = BusinessObjectManager.Instance; ContactPersonTestBO originalContactPerson = new ContactPersonTestBO(); ContactPersonTestBO copyContactPerson = new ContactPersonTestBO(); copyContactPerson.ContactPersonID = originalContactPerson.ContactPersonID; BusinessObjectManager.Instance.Add(copyContactPerson); //---------------Assert Precondition---------------- Assert.AreEqual(1, boMan.Count); Assert.IsTrue(boMan.Contains(copyContactPerson)); //---------------Execute Test ---------------------- bool containsOrigContactPerson = boMan.Contains(originalContactPerson); //---------------Test Result ----------------------- Assert.IsFalse(containsOrigContactPerson); }
public void Test_ObjectDestructor_RemovesFromObjectManager() { //---------------Set up test pack------------------- ContactPersonTestBO.LoadDefaultClassDef(); BusinessObjectManager boMan = BusinessObjectManager.Instance; ContactPersonTestBO cp = new ContactPersonTestBO(); boMan.Add(cp); //---------------Assert Precondition---------------- Assert.AreEqual(1, boMan.Count); Assert.IsTrue(boMan.Contains(cp)); Assert.IsTrue(boMan.Contains(cp.ID)); //---------------Execute Test ---------------------- cp = null; TestUtil.WaitForGC(); //---------------Test Result ----------------------- Assert.AreEqual(0, boMan.Count); }
public void Test_LoadObject_ViaCollection_UpdatedObjectMan_Generic() { //---------------Set up test pack------------------- ContactPersonTestBO.LoadDefaultClassDef(); BusinessObjectManager boMan = BusinessObjectManager.Instance; ContactPersonTestBO cp = CreateSavedCP(); Guid contactPersonId = cp.ContactPersonID; IPrimaryKey id = cp.ID; cp = null; TestUtil.WaitForGC(); boMan.ClearLoadedObjects(); //---------------Assert Precondition---------------- Assert.AreEqual(0, boMan.Count); //---------------Execute Test ---------------------- Criteria criteria = new Criteria("ContactPersonID", Criteria.ComparisonOp.Equals, contactPersonId); IBusinessObjectCollection colContactPeople = BORegistry.DataAccessor.BusinessObjectLoader.GetBusinessObjectCollection <ContactPersonTestBO>(criteria); //---------------Test Result ----------------------- Assert.AreEqual(1, colContactPeople.Count); IBusinessObject loadedCP = colContactPeople[0]; Assert.IsNotNull(loadedCP); Assert.AreNotSame(cp, loadedCP); Assert.AreEqual(1, boMan.Count); Assert.IsTrue(boMan.Contains(loadedCP)); Assert.IsTrue(boMan.Contains(id)); Assert.IsTrue(boMan.Contains(id.GetObjectId())); Assert.AreSame(loadedCP, boMan[id]); Assert.AreSame(loadedCP, boMan[id.GetObjectId()]); }
public void Test_DeleteObject_RemovesFromObjectMan() { //---------------Set up test pack------------------- ContactPersonTestBO.LoadDefaultClassDef(); BusinessObjectManager boMan = BusinessObjectManager.Instance; ContactPersonTestBO cp = CreateSavedCP(); //---------------Assert Precondition---------------- Assert.AreEqual(1, boMan.Count); Assert.IsTrue(boMan.Contains(cp)); Assert.AreSame(cp, boMan[cp.ID]); //---------------Execute Test ---------------------- cp.Delete(); cp.Save(); //---------------Test Result ----------------------- Assert.AreEqual(0, boMan.Count); }
public void Test_GetBusinessObject_WithPrimaryKey_WhenNotExistsWhenComposite_ShouldRetNull_FixBug533() { //--------------- Set up test pack ------------------ var businessObjectManager = new BusinessObjectManager(); BORegistry.BusinessObjectManager = businessObjectManager; ContactPersonCompositeKey.LoadClassDefs(); var cp = CreateCompositeCP(); var otherBOMan = new BusinessObjectManager(); //----------------Assert Preconditions--------------- Assert.IsNotNull(cp.ID); Assert.IsFalse(otherBOMan.Contains(cp.ID)); //--------------- Execute Test ---------------------- var found = otherBOMan.GetBusinessObject(cp.ID); //--------------- Test Result ----------------------- Assert.IsNull(found); }
public void Test_GetBusinessObject_WithPrimaryKey_WhenExistsWhenComposite_ShouldRetObject_FixBug533() { //--------------- Set up test pack ------------------ var businessObjectManager = new BusinessObjectManager(); BORegistry.BusinessObjectManager = businessObjectManager; ContactPersonCompositeKey.LoadClassDefs(); var expectedFound = CreateCompositeCP(); //----------------Assert Preconditions--------------- Assert.IsNotNull(expectedFound.ID); Assert.IsNotNull(((BOPrimaryKey)expectedFound.ID).BusinessObject); Assert.IsTrue(businessObjectManager.Contains(expectedFound.ID)); //--------------- Execute Test ---------------------- var found = businessObjectManager.GetBusinessObject(expectedFound.ID); //--------------- Test Result ----------------------- Assert.AreSame(expectedFound, found); }
public void Test_GetBusinessObject_WithPrimaryKey_WhenNotExists_ShouldRetNull_FixBug533() { //--------------- Set up test pack ------------------ var businessObjectManager = new BusinessObjectManager(); BORegistry.BusinessObjectManager = businessObjectManager; SetupDefaultContactPersonBO(); var cp = new ContactPersonTestBO(); var otherBOMan = new BusinessObjectManager(); //----------------Assert Preconditions--------------- Assert.IsFalse(otherBOMan.Contains(cp.ID)); //--------------- Execute Test ---------------------- var found = otherBOMan.GetBusinessObject(cp.ID); //--------------- Test Result ----------------------- Assert.IsNull(found); }
public void Test_GetBusinessObject_WithPrimaryKey_WhenExists_ShouldRetObject_FixBug533() { //--------------- Set up test pack ------------------ var businessObjectManager = new BusinessObjectManager(); BORegistry.BusinessObjectManager = businessObjectManager; SetupDefaultContactPersonBO(); var expectedFound = new ContactPersonTestBO(); //----------------Assert Preconditions--------------- Assert.IsTrue( businessObjectManager.Contains(expectedFound.ID)); //--------------- Execute Test ---------------------- var found = businessObjectManager.GetBusinessObject(expectedFound.ID); //--------------- Test Result ----------------------- Assert.AreSame(expectedFound, found); }
public void Test_SaveForCompositeKey_UpdatedObjectMan() { //---------------Set up test pack------------------- ContactPersonCompositeKey.LoadClassDefs(); IBusinessObjectManager boMan = new BusinessObjectManager(); BORegistry.BusinessObjectManager = boMan; var cp = new ContactPersonCompositeKey { PK1Prop1 = TestUtil.GetRandomString(), PK1Prop2 = TestUtil.GetRandomString() }; //---------------Assert Precondition---------------- Assert.AreEqual(1, boMan.Count); //---------------Execute Test ---------------------- cp.Save(); //---------------Test Result ----------------------- Assert.AreEqual(1, boMan.Count); Assert.IsTrue(boMan.Contains(cp)); Assert.IsTrue(boMan.Contains(cp.ID)); Assert.IsTrue(boMan.Contains(cp.ID.ObjectID)); Assert.AreSame(cp, boMan[cp.ID.ObjectID]); Assert.AreSame(cp, boMan[cp.ID]); }