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)); }
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(); }
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(); }
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(); }
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(); }
public void ThrownItem_IsExpired() { TrashHandler th = CreateTrashHandler(); th.Throw(item); Assert.Less(DateTime.Now.AddSeconds(-10), item.Expires); }
public void ThrownItem_IsNotExpired() { TrashHandler th = CreateTrashHandler(); th.Throw(item); item.Expires.ShouldBe(null); }
public void ThrownItem_IsMoved_ToTrashcan() { TrashHandler th = CreateTrashHandler(); th.Throw(item); Assert.AreEqual(trash, item.Parent); }
public void ThrownItem_NameIsCleared() { TrashHandler th = CreateTrashHandler(); th.Throw(item); Assert.AreNotEqual("item", item.Name); }
public void ThrownItem_ChangesState_ToDeleted() { TrashHandler th = CreateTrashHandler(); th.Throw(item); Assert.That(item.State, Is.EqualTo(ContentState.Deleted)); }
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]); }
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)); }
public void Drafts_AreNotPublished_WhenRestored() { TrashHandler th = CreateTrashHandler(); item.State = ContentState.Draft; th.Throw(item); th.Restore(item); item.State.ShouldBe(ContentState.Draft); }
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); }
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); }
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); }
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); }
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))); }
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(); }
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(); }
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 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(); }
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(); }
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)); }