Example #1
0
        public void NonThrowableItem_IsNotMovedToTrashcan()
        {
            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(nonThrowable);

            invokeDelete.Raise(persister, deleteArgs);

            Assert.That(deleteArgs.Cancel, Is.False);
            Assert.That(trash.Children.Count, Is.EqualTo(0));
        }
Example #2
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();
        }
Example #3
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();
        }
Example #4
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();
        }
Example #5
0
        public void ThrashHandler_Throw_WillInvokeEvents()
        {
            var activator = new ContentActivator(null, null, null);

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

            Expect.Call(persister.Get(1)).Return(root).Repeat.Any();
            Expect.Call(delegate { persister.Save(item); }).Repeat.Any();

            mocks.ReplayAll();

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

            bool throwingWasInvoked = false;
            bool throwedWasInvoked  = false;

            th.ItemThrowing += delegate { throwingWasInvoked = true; };
            th.ItemThrowed  += delegate { throwedWasInvoked = true; };
            th.Throw(item);

            Assert.That(throwingWasInvoked);
            Assert.That(throwedWasInvoked);

            mocks.VerifyAll();
        }
Example #6
0
        public void ThrownItem_IsExpired()
        {
            TrashHandler th = CreateTrashHandler();

            th.Throw(item);

            Assert.Less(DateTime.Now.AddSeconds(-10), item.Expires);
        }
Example #7
0
        public void ThrownItem_IsNotExpired()
        {
            TrashHandler th = CreateTrashHandler();

            th.Throw(item);

            item.Expires.ShouldBe(null);
        }
Example #8
0
        public void ThrownItem_IsMoved_ToTrashcan()
        {
            TrashHandler th = CreateTrashHandler();

            th.Throw(item);

            Assert.AreEqual(trash, item.Parent);
        }
Example #9
0
        public void ThrownItem_NameIsCleared()
        {
            TrashHandler th = CreateTrashHandler();

            th.Throw(item);

            Assert.AreNotEqual("item", item.Name);
        }
Example #10
0
        public void ThrownItem_ChangesState_ToDeleted()
        {
            TrashHandler th = CreateTrashHandler();

            th.Throw(item);

            Assert.That(item.State, Is.EqualTo(ContentState.Deleted));
        }
Example #11
0
        public void ThrownItem_OldValues_AreStored_InDetailBag()
        {
            TrashHandler th = CreateTrashHandler();

            th.Throw(item);

            Assert.AreEqual("item", item[TrashHandler.FormerName]);
            Assert.AreEqual(root, item[TrashHandler.FormerParent]);
            Assert.Less(DateTime.Now.AddSeconds(-10), (DateTime)item[TrashHandler.DeletedDate]);
        }
Example #12
0
        public void RestoredItem_ChangesState_ToPreviousState()
        {
            item.State = ContentState.Published;

            TrashHandler th = CreateTrashHandler();

            th.Throw(item);
            th.Restore(item);

            Assert.That(item.State, Is.EqualTo(ContentState.Published));
        }
Example #13
0
        public void Drafts_AreNotPublished_WhenRestored()
        {
            TrashHandler th = CreateTrashHandler();

            item.State = ContentState.Draft;

            th.Throw(item);

            th.Restore(item);

            item.State.ShouldBe(ContentState.Draft);
        }
Example #14
0
        public void ChildrenOf_ThrownItem_AreNoLongerPublished()
        {
            TrashHandler th = CreateTrashHandler();

            var child1 = CreateItem <ThrowableItem>(5, "child1", item);
            var child2 = CreateItem <ThrowableItem>(6, "child2", child1);

            th.Throw(item);

            child1.State.ShouldBe(ContentState.Deleted);
            child2.State.ShouldBe(ContentState.Deleted);
        }
Example #15
0
        public void ChildrenOf_RestoredItems_AreUnExpired()
        {
            TrashHandler th = CreateTrashHandler();

            var child1 = CreateItem <ThrowableItem>(5, "child1", item);
            var child2 = CreateItem <ThrowableItem>(6, "child2", child1);

            th.Throw(item);

            th.Restore(item);

            child1.State.ShouldBe(ContentState.Published);
            child2.State.ShouldBe(ContentState.Published);
        }
Example #16
0
        public void DraftChildren_AreNotPublished_WhenRestored()
        {
            TrashHandler th = CreateTrashHandler();

            var child1 = CreateItem <ThrowableItem>(5, "child1", item);

            child1.State = ContentState.Draft;

            th.Throw(item);

            th.Restore(item);

            child1.State.ShouldBe(ContentState.Draft);
        }
Example #17
0
        public void ChildrenOf_RestoredItems_AreUnExpired()
        {
            TrashHandler th = CreateTrashHandler();

            var child1 = CreateItem <ThrowableItem>(5, "child1", item);
            var child2 = CreateItem <ThrowableItem>(6, "child2", child1);

            th.Throw(item);

            th.Restore(item);

            Assert.That(child1.Expires, Is.Null);
            Assert.That(child2.Expires, Is.Null);
        }
Example #18
0
        public void ChildrenOf_ThrownItem_AreExpired()
        {
            TrashHandler th = CreateTrashHandler();

            var child1 = CreateItem <ThrowableItem>(5, "child1", item);
            var child2 = CreateItem <ThrowableItem>(6, "child2", child1);

            th.Throw(item);

            Assert.That(child1.Expires, Is.Not.Null);
            Assert.That(child2.Expires, Is.Not.Null);
            Assert.That(child1.Expires, Is.GreaterThan(DateTime.Now.AddSeconds(-10)));
            Assert.That(child2.Expires, Is.GreaterThan(DateTime.Now.AddSeconds(-10)));
        }
Example #19
0
        public void ThrashHandler_Throw_CanBeCancelled()
        {
            var definitions = mocks.Stub<IDefinitionManager>();

            IPersister persister = mocks.StrictMock<IPersister>();
            Expect.Call(persister.Get(1)).Return(root).Repeat.Any();
            Expect.Call(delegate { persister.Save(item); }).Repeat.Never();

            mocks.ReplayAll();

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

            th.ItemThrowing += delegate(object sender, CancellableItemEventArgs args) { args.Cancel = true; };
            th.Throw(item);

            mocks.VerifyAll();
        }
Example #20
0
        static void Main(string[] args)
        {
            Console.WriteLine("Hello Chain of Responsibility Pattern!");

            // Test();

            IHandler bossHandler = new BossHandler();
            // IHandler secretaryHandler = new SecretaryHandler();
            IHandler trashHandler = new TrashHandler();

            bossHandler
            // .SetNext(secretaryHandler)
            .SetNext(trashHandler);

            decimal amount = 2000;

            string result = bossHandler.Handle(amount);

            // CacheTest();
        }
Example #21
0
        public void ThrownItem_IsMoved_ToTrashcan()
        {
            var activator = new ContentActivator(null, null, null);

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

            Expect.Call(persister.Get(1)).Return(root).Repeat.Any();
            Expect.Call(delegate { persister.Save(item); }).Repeat.Any();

            mocks.ReplayAll();

            TrashHandler th = new TrashHandler(persister, null, null, new ContainerRepository <TrashContainerItem>(persister, null, host, activator), new StateChanger())
            {
                UseNavigationMode = true
            };

            th.Throw(item);

            Assert.AreEqual(trash, item.Parent);

            mocks.VerifyAll();
        }
Example #22
0
        public void ThrashHandler_Throw_CanBeCancelled()
        {
            var definitions = mocks.Stub <IDefinitionManager>();

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

            Expect.Call(persister.Get(1)).Return(root).Repeat.Any();
            Expect.Call(delegate { persister.Save(item); }).Repeat.Never();

            mocks.ReplayAll();

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

            th.ItemThrowing += delegate(object sender, CancellableItemEventArgs args) { args.Cancel = true; };
            th.Throw(item);

            mocks.VerifyAll();
        }
Example #23
0
        public void ThrashHandler_Throw_WillInvokeEvents()
        {
            var activator = new ContentActivator(null, null, null);

            IPersister persister = mocks.StrictMock<IPersister>();
            Expect.Call(persister.Get(1)).Return(root).Repeat.Any();
            Expect.Call(delegate { persister.Save(item); }).Repeat.Any();

            mocks.ReplayAll();

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

            bool throwingWasInvoked = false;
            bool throwedWasInvoked = false;
            th.ItemThrowing += delegate { throwingWasInvoked = true; };
            th.ItemThrowed += delegate { throwedWasInvoked = true; };
            th.Throw(item);

            Assert.That(throwingWasInvoked);
            Assert.That(throwedWasInvoked);

            mocks.VerifyAll();
        }
Example #24
0
        public void ThrownItem_IsMoved_ToTrashcan()
        {
            var activator = new ContentActivator(null, null, null);

            IPersister persister = mocks.StrictMock<IPersister>();
            Expect.Call(persister.Get(1)).Return(root).Repeat.Any();
            Expect.Call(delegate { persister.Save(item); }).Repeat.Any();

            mocks.ReplayAll();

            TrashHandler th = new TrashHandler(persister, null, null, new ContainerRepository<TrashContainerItem>(persister, null, host, activator), new StateChanger()) { UseNavigationMode = true };
            th.Throw(item);

            Assert.AreEqual(trash, item.Parent);

            mocks.VerifyAll();
        }
        public void NonThrowableItem_IsNotMovedToTrashcan()
        {
            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), new StateChanger()) { UseNavigationMode = true };
            DeleteInterceptor interceptor = new DeleteInterceptor(persister, th);
            interceptor.Start();

            CancellableItemEventArgs deleteArgs = new CancellableItemEventArgs(nonThrowable);
            invokeDelete.Raise(persister, deleteArgs);

            Assert.That(deleteArgs.Cancel, Is.False);
            Assert.That(trash.Children.Count, Is.EqualTo(0));
        }