public void TreePersist_Update_WithExtsDifferentTypeOfChildren_ShouldEqualWhenLoaded() { try { var con = SetupTables(); ITransaction transaction = CreateTransaction(con); RegisterForExternal(); int id = 35; ITreeTestRootEntity rootEntity = CreateFullObjectTree(id, TYPE_EXTERNAL); rootEntity.Persist(transaction); transaction.Commit(); transaction = CreateTransaction(con); ITreeTestRootEntity loadedEntity = new TreeTestRootEntityExt(); LoadEntityWithId(transaction, loadedEntity, id); loadedEntity.Name = "changed-name"; loadedEntity.Status = EntityStatus.Modified; loadedEntity.One2OneEntity.Name = "changed-one2one"; loadedEntity.One2OneEntity.Status = EntityStatus.Modified; IEnumerator <ITreeTestOne2ManyEntity> enumerator = loadedEntity.One2ManyEntities.GetEnumerator(); enumerator.MoveNext(); ITreeTestOne2ManyEntity one2ManyEntity = enumerator.Current; one2ManyEntity.Name = "changed-one2many"; one2ManyEntity.Status = EntityStatus.Modified; loadedEntity.Persist(transaction); ITreeTestRootEntity reLoadedEntity = new TreeTestRootEntityExt(); LoadEntityWithId(transaction, reLoadedEntity, id); con.Close(); bool compareResult = CompareEntities(loadedEntity, reLoadedEntity); Assert.IsTrue(compareResult); } catch (System.Exception e) { LogManager.GetLogger(typeof(DbGateTreePersistTests)).Fatal("Exception during test", e); Assert.Fail(e.Message); } }
private ITreeTestRootEntity CreateFullObjectTree(int id, int type) { ITreeTestRootEntity entity = null; entity = (type == TYPE_ATTRIBUTE) ? new TreeTestRootEntityAttributes() : (type == TYPE_FIELD) ? (ITreeTestRootEntity) new TreeTestRootEntityFields() : new TreeTestRootEntityExt(); entity.IdCol = id; entity.Name = "root"; ITreeTestOne2OneEntity one2OneEntity = null; one2OneEntity = (type == TYPE_ATTRIBUTE) ? new TreeTestOne2OneEntityAttributes() : (type == TYPE_FIELD) ? (ITreeTestOne2OneEntity) new TreeTestOne2OneEntityFields() : new TreeTestOne2OneEntityExt(); one2OneEntity.IdCol = id; one2OneEntity.Name = "one2one"; entity.One2OneEntity = one2OneEntity; ITreeTestOne2ManyEntity one2ManyEntity = null; one2ManyEntity = (type == TYPE_ATTRIBUTE) ? new TreeTestOne2ManyEntityAttributes() : (type == TYPE_FIELD) ? (ITreeTestOne2ManyEntity) new TreeTestOne2ManyEntityFields() : new TreeTestOne2ManyEntityExt(); one2ManyEntity.IdCol = id; one2ManyEntity.IndexNo = 0; one2ManyEntity.Name = "one2many"; entity.One2ManyEntities = new List <ITreeTestOne2ManyEntity>(); entity.One2ManyEntities.Add(one2ManyEntity); return(entity); }