public void OnDomainObjectLoadedInParentAndSubTransaction() { var tx = CreateTransactionWithStubbedLoading(_objectID); var mixinInstance = new HookedDomainObjectMixin(); Assert.That(mixinInstance.OnLoadedCalled, Is.False); Assert.That(mixinInstance.OnCreatedCalled, Is.False); Assert.That(mixinInstance.OnDomainObjectReferenceInitializingCalled, Is.False); using (new MixedObjectInstantiationScope(mixinInstance)) { LifetimeService.GetObject(tx, _objectID, false); Assert.That(mixinInstance.OnLoadedCalled, Is.True); Assert.That(mixinInstance.OnLoadedCount, Is.EqualTo(1)); Assert.That(mixinInstance.OnLoadedLoadMode, Is.EqualTo(LoadMode.WholeDomainObjectInitialized)); Assert.That(mixinInstance.OnDomainObjectReferenceInitializingCalled, Is.True); Assert.That(mixinInstance.OnDomainObjectReferenceInitializingCount, Is.EqualTo(1)); using (new MixedObjectInstantiationScope(mixinInstance)) { var subTx = tx.CreateSubTransaction(); LifetimeService.GetObject(subTx, _objectID, false); subTx.Discard(); } } Assert.That(mixinInstance.OnLoadedCount, Is.EqualTo(2)); Assert.That(mixinInstance.OnLoadedLoadMode, Is.EqualTo(LoadMode.DataContainerLoadedOnly)); Assert.That(mixinInstance.OnCreatedCalled, Is.False); Assert.That(mixinInstance.OnDomainObjectReferenceInitializingCalled, Is.True); Assert.That(mixinInstance.OnDomainObjectReferenceInitializingCount, Is.EqualTo(1)); }
public void RaiseReferenceInitializatingEvent_InvokesMixinHook_WhilePropertyAccessForbidden() { var mixinInstance = new HookedDomainObjectMixin(); mixinInstance.InitializationHandler += (sender, args) => Dev.Null = ((HookedDomainObjectMixin)sender).Target.Property; using (new MixedObjectInstantiationScope(mixinInstance)) { _transaction.ExecuteInScope(() => HookedTargetClass.NewObject()); // indirect call of RaiseReferenceInitializatingEvent } }
public void OnDomainObjectCreated() { var mixinInstance = new HookedDomainObjectMixin(); Assert.That(mixinInstance.OnLoadedCalled, Is.False); Assert.That(mixinInstance.OnCreatedCalled, Is.False); Assert.That(mixinInstance.OnDomainObjectReferenceInitializingCalled, Is.False); using (new MixedObjectInstantiationScope(mixinInstance)) { var tx = ClientTransaction.CreateRootTransaction(); LifetimeService.NewObject(tx, typeof(HookedTargetClass), ParamList.Empty); } Assert.That(mixinInstance.OnLoadedCalled, Is.False); Assert.That(mixinInstance.OnCreatedCalled, Is.True); Assert.That(mixinInstance.OnDomainObjectReferenceInitializingCalled, Is.True); }
public void OnDomainObjectLoaded() { var tx = CreateTransactionWithStubbedLoading(_objectID); var mixinInstance = new HookedDomainObjectMixin(); Assert.That(mixinInstance.OnLoadedCalled, Is.False); Assert.That(mixinInstance.OnCreatedCalled, Is.False); Assert.That(mixinInstance.OnDomainObjectReferenceInitializingCalled, Is.False); using (new MixedObjectInstantiationScope(mixinInstance)) { LifetimeService.GetObject(tx, _objectID, false); } Assert.That(mixinInstance.OnLoadedCalled, Is.True); Assert.That(mixinInstance.OnLoadedLoadMode, Is.EqualTo(LoadMode.WholeDomainObjectInitialized)); Assert.That(mixinInstance.OnCreatedCalled, Is.False); Assert.That(mixinInstance.OnDomainObjectReferenceInitializingCalled, Is.True); }