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_UpdateSqlStatement() { //---------------Set up test pack------------------- ContactPersonTestBO.LoadClassDefOrganisationTestBORelationship_MultipleReverse(); OrganisationTestBO.LoadDefaultClassDef(); ContactPersonTestBO contactPersonTestBO = ContactPersonTestBO.CreateSavedContactPerson(); OrganisationTestBO organisationTestBO = new OrganisationTestBO(); SingleRelationship <OrganisationTestBO> singleRelationship = contactPersonTestBO.Relationships.GetSingle <OrganisationTestBO>("Organisation"); singleRelationship.SetRelatedObject(organisationTestBO); IRelationship relationship = organisationTestBO.Relationships.GetMultiple <ContactPersonTestBO>("ContactPeople"); //TransactionalSingleRelationship_Added tsr = new TransactionalSingleRelationship_Added(singleRelationship); var generator = CreateUpdateStatementGenerator(contactPersonTestBO, DatabaseConfig.MySql); //---------------Assert PreConditions--------------- //---------------Execute Test ---------------------- var sql = generator.GenerateForRelationship(relationship, contactPersonTestBO); //---------------Test Result ----------------------- var sqlStatements = sql.ToList(); Assert.AreEqual(1, sqlStatements.Count); Assert.AreEqual("UPDATE `contact_person` SET `OrganisationID` = ?Param0 WHERE `ContactPersonID` = ?Param1", sqlStatements[0].Statement.ToString()); Assert.AreEqual(organisationTestBO.OrganisationID.Value.ToString("B").ToUpper(), sqlStatements[0].Parameters[0].Value); Assert.AreEqual(contactPersonTestBO.ContactPersonID.ToString("B").ToUpper(), sqlStatements[0].Parameters[1].Value); }
public void TestColIsInstantiatedButNotLoaded() { //---------------Set up test pack------------------- ClassDef.ClassDefs.Clear(); OrganisationTestBO.LoadDefaultClassDef(); IClassDef contactPersonClassDef = ContactPersonTestBO.LoadClassDefOrganisationTestBORelationship_MultipleReverse(); RelKeyDef keyDef = new RelKeyDef(); keyDef.Add(new RelPropDef(contactPersonClassDef.PropDefcol["OrganisationID"], "OrganisationID")); MultipleRelationshipDef def = new MultipleRelationshipDef (TestUtil.GetRandomString(), typeof(ContactPersonTestBO), keyDef, false, "", DeleteParentAction.DoNothing); OrganisationTestBO organisation = new OrganisationTestBO(); //---------------Assert Precondition---------------- //---------------Execute Test ---------------------- IMultipleRelationship rel = (IMultipleRelationship)def.CreateRelationship(organisation, organisation.Props); //---------------Test Result ----------------------- IBusinessObjectCollection collection = rel.BusinessObjectCollection; Assert.IsNotNull(collection); Assert.AreEqual(0, collection.Count); Assert.AreSame(contactPersonClassDef, collection.ClassDef); Assert.IsNotNull(collection.SelectQuery.Criteria); Assert.IsNotNull(collection.SelectQuery.Criteria.Field); Assert.AreEqual("OrganisationID", collection.SelectQuery.Criteria.Field.PropertyName); Assert.IsNotNull(collection.SelectQuery.Criteria.Field.Source); Assert.AreEqual("ContactPersonTestBO", collection.SelectQuery.Criteria.Field.Source.Name); Assert.AreEqual(organisation.OrganisationID.Value, collection.SelectQuery.Criteria.FieldValue); Assert.IsInstanceOf(typeof(ContactPersonTestBO), collection.CreateBusinessObject()); }
public void TestGetReverseRelationship_ReverseRelationshipSpecifiedButNotFound() { //---------------Set up test pack------------------- OrganisationTestBO.LoadDefaultClassDef(); IClassDef cpClassDef = ContactPersonTestBO.LoadClassDefOrganisationTestBORelationship_MultipleReverse(); string reverseRelationshipName = TestUtil.GetRandomString(); cpClassDef.RelationshipDefCol["Organisation"].ReverseRelationshipName = reverseRelationshipName; OrganisationTestBO organisation = OrganisationTestBO.CreateSavedOrganisation(); ContactPersonTestBO contactPerson = ContactPersonTestBO.CreateUnsavedContactPerson(); SingleRelationship <OrganisationTestBO> organisationRel = contactPerson.Relationships.GetSingle <OrganisationTestBO>("Organisation"); //---------------Execute Test ---------------------- try { organisationRel.GetReverseRelationship(organisation); Assert.Fail("Should have failed since a reverse relationship was specified that didn't exist."); } catch (HabaneroDeveloperException ex) { StringAssert.Contains( string.Format( "The relationship 'Organisation' on class 'ContactPersonTestBO' has a reverse relationship defined ('{0}')", reverseRelationshipName), ex.Message); } }
public void SetupTest() { ClassDef.ClassDefs.Clear(); BORegistry.DataAccessor = new DataAccessorInMemory(); ContactPersonTestBO.LoadClassDefOrganisationTestBORelationship_MultipleReverse(); OrganisationTestBO.LoadDefaultClassDef_PreventAddChild(); }
public void Test_LoadMultiplerelationship_TimeOutExceeded_WhenTimeOutZero_UsingRelationship_DoesReloadFromDB() { //---------------Set up test pack------------------- ClassDef.ClassDefs.Clear(); IClassDef orgClassDef = OrganisationTestBO.LoadDefaultClassDef(); ContactPersonTestBO.LoadClassDefOrganisationTestBORelationship_MultipleReverse(); OrganisationTestBO organisationTestBO = OrganisationTestBO.CreateSavedOrganisation(); IBusinessObjectCollection collection = organisationTestBO.ContactPeople; DateTime?initialTimeLastLoaded = collection.TimeLastLoaded; //---------------Assert Precondition---------------- Assert.IsNotNull(collection.TimeLastLoaded); Assert.AreEqual(initialTimeLastLoaded, collection.TimeLastLoaded); Assert.AreEqual(0, collection.Count); MultipleRelationship <ContactPersonTestBO> relationship = (MultipleRelationship <ContactPersonTestBO>)organisationTestBO.Relationships["ContactPeople"]; Assert.AreEqual(0, relationship.TimeOut); //---------------Execute Test ---------------------- ContactPersonTestBO contactPerson = organisationTestBO.ContactPeople.CreateBusinessObject(); contactPerson.Surname = TestUtil.GetRandomString(); contactPerson.FirstName = TestUtil.GetRandomString(); contactPerson.Save(); TestUtil.Wait(100); IBusinessObjectCollection secondCollectionCall = organisationTestBO.ContactPeople; //---------------Test Result ----------------------- Assert.AreSame(collection, secondCollectionCall); Assert.IsNotNull(secondCollectionCall.TimeLastLoaded); Assert.AreEqual(1, secondCollectionCall.Count); Assert.AreNotEqual(initialTimeLastLoaded, secondCollectionCall.TimeLastLoaded); }
public void Test_LoadMultiplerelationship_TimeOutExceeded_WhenTimeOutZero_UsingRelationship_DoesResetTheTimeLastLoaded() { //---------------Set up test pack------------------- ClassDef.ClassDefs.Clear(); IClassDef orgClassDef = OrganisationTestBO.LoadDefaultClassDef(); ContactPersonTestBO.LoadClassDefOrganisationTestBORelationship_MultipleReverse(); OrganisationTestBO organisationTestBO = OrganisationTestBO.CreateSavedOrganisation(); RelationshipDef relationshipDef = (RelationshipDef)orgClassDef.RelationshipDefCol["ContactPeople"]; //IMultipleRelationship rel = new MultipleRelationship<ContactPersonTestBO>(organisationTestBO, relationshipDef, organisationTestBO.Props, 0); IBusinessObjectCollection collection = organisationTestBO.ContactPeople; DateTime?initialTimeLastLoaded = collection.TimeLastLoaded; //---------------Assert Precondition---------------- Assert.IsNotNull(collection.TimeLastLoaded); Assert.AreEqual(initialTimeLastLoaded, collection.TimeLastLoaded); //---------------Execute Test ---------------------- TestUtil.Wait(100); IBusinessObjectCollection secondCollectionCall = organisationTestBO.ContactPeople; //---------------Test Result ----------------------- Assert.AreSame(collection, secondCollectionCall); Assert.IsNotNull(secondCollectionCall.TimeLastLoaded); Assert.AreNotEqual(initialTimeLastLoaded, secondCollectionCall.TimeLastLoaded); }
public void Test_LoadMultiplerelationship_TimeOutNotExceeded_DoesNotReloadFromDB() { //---------------Set up test pack------------------- ClassDef.ClassDefs.Clear(); IClassDef orgClassDef = OrganisationTestBO.LoadDefaultClassDef(); ContactPersonTestBO.LoadClassDefOrganisationTestBORelationship_MultipleReverse(); OrganisationTestBO organisationTestBO = OrganisationTestBO.CreateSavedOrganisation(); RelationshipDef relationshipDef = (RelationshipDef)orgClassDef.RelationshipDefCol["ContactPeople"]; IMultipleRelationship rel = new MultipleRelationship <ContactPersonTestBO>(organisationTestBO, relationshipDef, organisationTestBO.Props, 30000); IBusinessObjectCollection collection = rel.BusinessObjectCollection; DateTime?initialTimeLastLoaded = collection.TimeLastLoaded; //---------------Assert Precondition---------------- Assert.AreEqual(initialTimeLastLoaded, collection.TimeLastLoaded); Assert.AreEqual(0, collection.Count); //---------------Execute Test ---------------------- ContactPersonTestBO contactPerson = organisationTestBO.ContactPeople.CreateBusinessObject(); contactPerson.Surname = TestUtil.GetRandomString(); contactPerson.FirstName = TestUtil.GetRandomString(); contactPerson.Save(); TestUtil.Wait(100); IBusinessObjectCollection secondCollectionCall = rel.BusinessObjectCollection; //---------------Test Result ----------------------- Assert.AreSame(collection, secondCollectionCall); Assert.AreEqual(0, secondCollectionCall.Count); Assert.AreEqual(initialTimeLastLoaded, secondCollectionCall.TimeLastLoaded); }
public override void SetupTest() { ClassDef.ClassDefs.Clear(); ContactPersonTestBO.DeleteAllContactPeople(); OrganisationTestBO.DeleteAllOrganisations(); ContactPersonTestBO.LoadClassDefOrganisationTestBORelationship_MultipleReverse(); OrganisationTestBO.LoadDefaultClassDef_PreventAddChild(); }
public void SetupTest() { ClassDef.ClassDefs.Clear(); GlobalRegistry.UIExceptionNotifier = new RethrowingExceptionNotifier(); BORegistry.DataAccessor = new DataAccessorInMemory(); ContactPersonTestBO.LoadClassDefOrganisationTestBORelationship_MultipleReverse(); OrganisationTestBO.LoadDefaultClassDef(); }
public virtual void SetupTest() { ClassDef.ClassDefs.Clear(); BORegistry.BusinessObjectManager = null; SetupDataAccess(); ContactPersonTestBO.LoadClassDefOrganisationTestBORelationship_MultipleReverse(); OrganisationTestBO.LoadDefaultClassDef_PreventAddChild(); }
public void SetupTest() { //Runs every time that any testmethod is executed ClassDef.ClassDefs.Clear(); ContactPersonTestBO.LoadClassDefOrganisationTestBORelationship_MultipleReverse(); OrganisationTestBO.LoadDefaultClassDef(); BORegistry.DataAccessor = new DataAccessorInMemory(); }
public virtual void SetupTest() { ClassDef.ClassDefs.Clear(); FixtureEnvironment.SetupInMemoryDataAccessor(); FixtureEnvironment.ResetBORegistryBusinessObjectManager(); BORegistry.BusinessObjectManager = new BusinessObjectManager(); ContactPersonTestBO.LoadClassDefOrganisationTestBORelationship_MultipleReverse(); OrganisationTestBO.LoadDefaultClassDef_PreventAddChild(); }
public void Setup() { ClassDef.ClassDefs.Clear(); BORegistry.DataAccessor = new DataAccessorInMemory(); BusinessObjectManager.Instance.ClearLoadedObjects(); // ContactPersonTestBO.CreateSampleData(); ContactPersonTestBO.LoadClassDefOrganisationTestBORelationship_MultipleReverse(); BusinessObjectManager.Instance.ClearLoadedObjects(); TestUtil.WaitForGC(); }
public void TestFixtureSetup() { ClassDef.ClassDefs.Clear(); GlobalRegistry.UIExceptionNotifier = new RethrowingExceptionNotifier(); BORegistry.DataAccessor = new DataAccessorInMemory(); BORegistry.BusinessObjectManager = new BusinessObjectManagerNull(); AddressTestBO.LoadDefaultClassDef(); ContactPersonTestBO.LoadClassDefOrganisationTestBORelationship_MultipleReverse(); OrganisationTestBO.LoadDefaultClassDef(); }
public void Setup() { ClassDef.ClassDefs.Clear(); BORegistry.DataAccessor = new DataAccessorInMemory(); BusinessObjectManager.Instance.ClearLoadedObjects(); // ContactPersonTestBO.CreateSampleData(); ContactPersonTestBO.LoadClassDefOrganisationTestBORelationship_MultipleReverse(); BusinessObjectManager.Instance.ClearLoadedObjects(); TestUtil.WaitForGC(); GlobalUIRegistry.AsyncSettings.SynchroniseBackgroundOperations = true; }
public void Test_CreateMultipleRelationshipWithTimeout() { //---------------Set up test pack------------------- ClassDef.ClassDefs.Clear(); IClassDef orgClassDef = OrganisationTestBO.LoadDefaultClassDef(); ContactPersonTestBO.LoadClassDefOrganisationTestBORelationship_MultipleReverse(); OrganisationTestBO organisationTestBO = OrganisationTestBO.CreateSavedOrganisation(); RelationshipDef relationshipDef = (RelationshipDef)orgClassDef.RelationshipDefCol["ContactPeople"]; //---------------Assert Precondition---------------- //---------------Execute Test ---------------------- IMultipleRelationship rel = new MultipleRelationship <ContactPersonTestBO> (organisationTestBO, relationshipDef, organisationTestBO.Props, 30000); //---------------Test Result ----------------------- Assert.IsTrue(true, "Should not give an error when constructing"); }
public void Test_CanDeleteParentWithNewChildren() { //--------------- Set up test pack ------------------ ClassDef.ClassDefs.Clear(); OrganisationTestBO.LoadDefaultClassDef(); ContactPersonTestBO.LoadClassDefOrganisationTestBORelationship_MultipleReverse(); OrganisationTestBO organisationTestBO = OrganisationTestBO.CreateSavedOrganisation(); organisationTestBO.ContactPeople.CreateBusinessObject(); //--------------- Test Preconditions ---------------- //--------------- Execute Test ---------------------- organisationTestBO.MarkForDelete(); organisationTestBO.Save(); //--------------- Test Result ----------------------- Assert.IsTrue(organisationTestBO.Status.IsDeleted); }
public void TestSetupComboBoxFromClassDef_SetsItemsInComboBox() { //---------------Set up test pack------------------- IClassDef classDef = ContactPersonTestBO.LoadClassDefOrganisationTestBORelationship_MultipleReverse(); OrganisationTestBO.LoadDefaultClassDef(); ContactPerson.DeleteAllContactPeople(); OrganisationTestBO.ClearAllFromDB(); OrganisationTestBO.CreateSavedOrganisation(); OrganisationTestBO.CreateSavedOrganisation(); ContactPersonTestBO.CreateSavedContactPersonNoAddresses(); TestUtil.WaitForGC(); BusinessObjectCollection <ContactPersonTestBO> col = new BusinessObjectCollection <ContactPersonTestBO>(); col.LoadAll(); IEditableGridControl gridControl = GetControlFactory().CreateEditableGridControl(); GridInitialiser gridInitialiser = new GridInitialiser(gridControl, GetControlFactory()); //--------------Assert PreConditions---------------- Assert.AreEqual(0, gridControl.Grid.Columns.Count); Assert.AreEqual(1, classDef.UIDefCol.Count); const string uiDefName = "default"; IUIGrid uiGridDef = classDef.UIDefCol[uiDefName].UIGrid; Assert.IsNotNull(uiGridDef); Assert.AreEqual(1, uiGridDef.Count); Assert.AreEqual(1, col.Count); Assert.AreEqual(2, BORegistry.DataAccessor.BusinessObjectLoader.GetBusinessObjectCollection <OrganisationTestBO> ("").Count); //---------------Execute Test ---------------------- gridInitialiser.InitialiseGrid(classDef, uiDefName); //---------------Test Result ----------------------- Assert.AreEqual(2, gridControl.Grid.Columns.Count, "Should have ID column and should have comboBoxColumn"); IDataGridViewColumn dataGridViewColumn = gridControl.Grid.Columns[1]; AssertIsComboBoxColumnType(dataGridViewColumn); AssertComboBoxItemCount(dataGridViewColumn, 3); }
public void Test_UpdateRelatedObject_ShouldRaiseEvent() { //---------------Set up test pack------------------- ClassDef.ClassDefs.Clear(); ContactPersonTestBO.LoadClassDefOrganisationTestBORelationship_MultipleReverse(); OrganisationTestBO.LoadDefaultClassDef(); OrganisationTestBO organisationTestBO = OrganisationTestBO.CreateSavedOrganisation(); ContactPersonTestBO contactPersonTestBO = ContactPersonTestBO.CreateUnsavedContactPerson(); ISingleRelationship relationship = (ISingleRelationship)contactPersonTestBO.Relationships["Organisation"]; bool eventCalled = false; relationship.RelKey.RelatedPropValueChanged += delegate { eventCalled = true; }; //---------------Assert Precondition---------------- Assert.IsTrue(contactPersonTestBO.Relationships.GetSingle <OrganisationTestBO>("Organisation").OwningBOHasForeignKey); Assert.IsFalse(eventCalled); //---------------Execute Test ---------------------- contactPersonTestBO.Organisation = organisationTestBO; //---------------Test Result ----------------------- Assert.IsTrue(eventCalled); }
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); }
public void TestGetReverseRelationship() { //---------------Set up test pack------------------- OrganisationTestBO.LoadDefaultClassDef_WithTwoRelationshipsToContactPerson(); IClassDef cpClassDef = ContactPersonTestBO.LoadClassDefOrganisationTestBORelationship_MultipleReverse(); cpClassDef.RelationshipDefCol["Organisation"].ReverseRelationshipName = "OtherContactPeople"; OrganisationTestBO organisation = OrganisationTestBO.CreateSavedOrganisation(); ContactPersonTestBO contactPerson = ContactPersonTestBO.CreateUnsavedContactPerson(); SingleRelationship <OrganisationTestBO> organisationRel = contactPerson.Relationships.GetSingle <OrganisationTestBO>("Organisation"); MultipleRelationship <ContactPersonTestBO> contactPeopleRel = organisation.Relationships.GetMultiple <ContactPersonTestBO>("OtherContactPeople"); //---------------Execute Test ---------------------- IRelationship reverseRelationship = organisationRel.GetReverseRelationship(organisation); //---------------Test Result ----------------------- Assert.AreSame(contactPeopleRel, reverseRelationship); }
public void Test_UpdatePropValue_ShouldRaiseEvent() { //---------------Set up test pack------------------- ClassDef.ClassDefs.Clear(); ContactPersonTestBO.LoadClassDefOrganisationTestBORelationship_MultipleReverse(); OrganisationTestBO.LoadDefaultClassDef(); ContactPersonTestBO contactPersonTestBO = ContactPersonTestBO.CreateUnsavedContactPerson(); ISingleRelationship relationship = (ISingleRelationship)contactPersonTestBO.Relationships["Organisation"]; bool eventCalled = false; IRelKey key = relationship.RelKey; IRelProp relProp = key[0]; IBOProp prop = relProp.BOProp; relProp.PropValueUpdated += delegate { eventCalled = true; }; //---------------Assert Precondition---------------- Assert.IsTrue(contactPersonTestBO.Relationships.GetSingle <OrganisationTestBO>("Organisation").OwningBOHasForeignKey); Assert.IsFalse(eventCalled); //---------------Execute Test ---------------------- prop.Value = Guid.NewGuid(); //---------------Test Result ----------------------- Assert.IsTrue(eventCalled); }
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); }