Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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
            }
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
        }