コード例 #1
0
        public void NonThrowableItem_IsNotMovedToTrashcan_LegacyAttribute()
        {
            IDefinitionManager definitions = mocks.Stub <IDefinitionManager>();

            IPersister persister = mocks.Stub <IPersister>();

            Expect.Call(persister.Get(1)).Return(root).Repeat.Any();
            persister.ItemDeleting += null;
            IEventRaiser invokeDelete = LastCall.IgnoreArguments().GetEventRaiser();

            mocks.ReplayAll();

            var          host = new Host(webContext, 1, 1);
            TrashHandler th   = new TrashHandler(persister, null, null, new ContainerRepository <TrashContainerItem>(persister, null, host, null))
            {
                UseNavigationMode = true
            };
            DeleteInterceptor interceptor = new DeleteInterceptor(persister, th);

            interceptor.Start();

            CancellableItemEventArgs deleteArgs = new CancellableItemEventArgs(nonThrowable2);

            invokeDelete.Raise(persister, deleteArgs);

            Assert.That(deleteArgs.Cancel, Is.False);
            Assert.That(trash.Children.Count, Is.EqualTo(0));
        }
コード例 #2
0
        public void DeletedItem_IsThrownInTrash()
        {
            persister.ItemDeleting += null;
            IEventRaiser invokeDelete = LastCall.IgnoreArguments().GetEventRaiser();

            persister.ItemCopied += null;
            LastCall.IgnoreArguments();
            persister.ItemMoving += null;
            LastCall.IgnoreArguments();

            TrashHandler th = mocks.StrictMock <TrashHandler>(persister, null, null, new ContainerRepository <TrashContainerItem>(persister, null, new Host(webContext, 1, 1), null));

            th.UseNavigationMode = true;
            Expect.Call(delegate { th.Throw(item); });

            mocks.ReplayAll();

            DeleteInterceptor interceptor = new DeleteInterceptor(persister, th);

            interceptor.Start();

            CancellableItemEventArgs deleteArgs = new CancellableItemEventArgs(item);

            invokeDelete.Raise(persister, deleteArgs);

            deleteArgs.FinalAction(deleteArgs.AffectedItem);

            mocks.VerifyAll();
        }
コード例 #3
0
        public void Item_MovedIntoTrash_IsNeutralized()
        {
            persister.ItemDeleting += null;
            LastCall.IgnoreArguments();
            persister.ItemCopied += null;
            LastCall.IgnoreArguments();
            persister.ItemMoving += null;
            IEventRaiser invokeMoved = LastCall.IgnoreArguments().GetEventRaiser();

            TrashHandler th = mocks.StrictMock <TrashHandler>(persister, null, null, new ContainerRepository <TrashContainerItem>(persister, null, new Host(webContext, 1, 1), null));

            th.UseNavigationMode = true;
            th.ExpireTrashedItem(item);

            mocks.ReplayAll();

            DeleteInterceptor interceptor = new DeleteInterceptor(persister, th);

            interceptor.Start();

            // move item into trashcan
            invokeMoved.Raise(persister, new CancellableDestinationEventArgs(item, trash));

            mocks.VerifyAll();
        }
コード例 #4
0
        public void TrashedItem_CopiedFromTrashcan_IsUnexpired()
        {
            PutItemInTrash();

            persister.ItemDeleting += null;
            LastCall.IgnoreArguments();
            persister.ItemCopied += null;
            IEventRaiser invokeCopied = LastCall.IgnoreArguments().GetEventRaiser();

            persister.ItemMoving += null;
            LastCall.IgnoreArguments();

            TrashHandler th = mocks.StrictMock <TrashHandler>(persister, null, null, new ContainerRepository <TrashContainerItem>(persister, null, new Host(webContext, 1, 1), null));

            th.UseNavigationMode = true;
            th.RestoreValues(item);

            mocks.ReplayAll();

            DeleteInterceptor interceptor = new DeleteInterceptor(persister, th);

            interceptor.Start();

            // now restore through drag&drop
            invokeCopied.Raise(persister, new DestinationEventArgs(item, root));

            mocks.VerifyAll();
        }
コード例 #5
0
        public void NonThrowableItem_IsNotMovedToTrashcan_LegacyAttribute()
        {
            var nonThrowable = CreateItem <NonThrowableItem>(4, "neverInTrash", root);

            var th = CreateTrashHandler();
            DeleteInterceptor interceptor = new DeleteInterceptor(persister, th);

            interceptor.Start();

            persister.Delete(nonThrowable);

            Assert.That(trash.Children.Count, Is.EqualTo(0));
        }
コード例 #6
0
        public void DeletedItem_IsThrownInTrash()
        {
            var th = CreateTrashHandler();

            th.UseNavigationMode = true;

            DeleteInterceptor interceptor = new DeleteInterceptor(persister, th);

            interceptor.Start();

            persister.Delete(item);

            item.Parent.ShouldBeOfType <TrashContainerItem>();
        }
コード例 #7
0
        public void Item_MovedIntoTrash_IsNeutralized()
        {
            var th = CreateTrashHandler();

            th.UseNavigationMode = true;
            th.ExpireTrashedItem(item);
            DeleteInterceptor interceptor = new DeleteInterceptor(persister, th);

            interceptor.Start();

            persister.Move(item, trash);

            item[TrashHandler.DeletedDate].ShouldNotBe(null);
        }
コード例 #8
0
        public void TrashedItem_CopiedFromTrashcan_IsUnexpired()
        {
            PutItemInTrash();

            var th = CreateTrashHandler();

            th.UseNavigationMode = true;
            th.RestoreValues(item);
            DeleteInterceptor interceptor = new DeleteInterceptor(persister, th);

            interceptor.Start();

            var copy = persister.Copy(item, root);

            copy.Parent.ShouldBe(root);
            copy[TrashHandler.DeletedDate].ShouldBe(null);
        }
コード例 #9
0
        public void TrashedItem_MovedFromTrashcan_IsUnexpired()
        {
            PutItemInTrash();

            var th = CreateTrashHandler();

            th.UseNavigationMode = true;
            th.RestoreValues(item);
            DeleteInterceptor interceptor = new DeleteInterceptor(persister, th);

            interceptor.Start();

            // now restore through drag&drop
            persister.Move(item, root);

            item.Parent.ShouldBe(root);
            item[TrashHandler.DeletedDate].ShouldBe(null);
        }