示例#1
0
        public void CannotCreate_ItemBelow_UnallowedParent()
        {
            var page = new IntegrityPage();

            // Doesn't throw
            activator.CreateInstance <IntegrityStartPage>(page);
        }
示例#2
0
        public void CanCopyItemEvent()
        {
            IntegrityStartPage startPage = new IntegrityStartPage();
            IntegrityPage      page      = new IntegrityPage();

            copying.Raise(persister, new CancellableDestinationEventArgs(page, startPage));
        }
示例#3
0
        public void CannotMoveItemOntoItself()
        {
            IntegrityPage page    = new IntegrityPage();
            bool          canMove = integrityManger.CanMove(page, page);

            Assert.IsFalse(canMove, "The page could be moved onto itself.");
        }
示例#4
0
        public void CanSave_UnallowedItemEvent()
        {
            IntegrityPage      page      = CreateOneItem <IntegrityPage>(1, "John", null);
            IntegrityStartPage startPage = CreateOneItem <IntegrityStartPage>(2, "Leonidas", page);


            Assert.DoesNotThrow(() => saving.Raise(persister, new CancellableItemEventArgs(startPage)));
        }
示例#5
0
        public void CanCopyItem()
        {
            IntegrityStartPage startPage = new IntegrityStartPage();
            IntegrityPage      page      = new IntegrityPage();
            bool canCopy = integrityManger.CanCopy(page, startPage);

            Assert.IsTrue(canCopy, "The page couldn't be copied to the destination.");
        }
示例#6
0
        public void CanMoveItem()
        {
            IntegrityStartPage startPage = new IntegrityStartPage();
            IntegrityPage      page      = new IntegrityPage();
            bool canMove = integrityManger.CanMove(page, startPage);

            Assert.IsTrue(canMove, "The page couldn't be moved to the destination.");
        }
示例#7
0
        public void CannotCopyIfTypeIsntAllowed()
        {
            IntegrityStartPage startPage = new IntegrityStartPage();
            IntegrityPage      page      = new IntegrityPage();

            bool canCopy = integrityManger.CanCopy(startPage, page);

            Assert.IsFalse(canCopy, "The start page could be copied even though a page isn't an allowed destination.");
        }
示例#8
0
        public void CannotMoveItemBelowItself()
        {
            IntegrityPage page  = new IntegrityPage();
            IntegrityPage page2 = CreateOneItem <IntegrityPage>(2, "Rutger", page);

            bool canMove = integrityManger.CanMove(page, page2);

            Assert.IsFalse(canMove, "The page could be moved below itself.");
        }
示例#9
0
        public void CannotMoveItemOntoItselfEvent()
        {
            IntegrityPage page = new IntegrityPage();

            ExceptionAssert.Throws <DestinationOnOrBelowItselfException>(delegate
            {
                moving.Raise(persister, new CancellableDestinationEventArgs(page, page));
            });
        }
示例#10
0
        public void CannotCreate_ItemBelow_UnallowedParent()
        {
            var page = new IntegrityPage();

            ExceptionAssert.Throws <NotAllowedParentException>(delegate
            {
                var neverReturned = activator.CreateInstance <IntegrityStartPage>(page);
            });
        }
示例#11
0
        public void CannotSaveUnallowedItem()
        {
            IntegrityPage      page      = CreateOneItem <IntegrityPage>(1, "John", null);
            IntegrityStartPage startPage = CreateOneItem <IntegrityStartPage>(2, "Leonidas", page);

            bool canSave = integrityManger.CanSave(startPage);

            Assert.IsFalse(canSave, "Could save even though the start page isn't below a page.");
        }
示例#12
0
        public void CanSave_UnallowedItem()
        {
            IntegrityPage      page      = CreateOneItem <IntegrityPage>(1, "John", null);
            IntegrityStartPage startPage = CreateOneItem <IntegrityStartPage>(2, "Leonidas", page);

            bool canSave = integrityManger.CanSave(startPage);

            Assert.IsTrue(canSave);
        }
示例#13
0
        public void CannotCopyIfTypeIsntAllowedEvent()
        {
            IntegrityStartPage startPage = new IntegrityStartPage();
            IntegrityPage      page      = new IntegrityPage();

            ExceptionAssert.Throws <NotAllowedParentException>(delegate
            {
                copying.Raise(persister, new CancellableDestinationEventArgs(startPage, page));
            });
        }
示例#14
0
        public void CannotCopyIfNameIsOccupied()
        {
            IntegrityStartPage startPage = CreateOneItem <IntegrityStartPage>(1, "start", null);
            IntegrityPage      page2     = CreateOneItem <IntegrityPage>(2, "Sasha", startPage);
            IntegrityPage      page3     = CreateOneItem <IntegrityPage>(3, "Sasha", null);

            bool canCopy = integrityManger.CanCopy(page3, startPage);

            Assert.IsFalse(canCopy, "The page could be copied even though the name was occupied.");
        }
示例#15
0
        public void CannotSaveUnallowedItemEvent()
        {
            IntegrityPage      page      = CreateOneItem <IntegrityPage>(1, "John", null);
            IntegrityStartPage startPage = CreateOneItem <IntegrityStartPage>(2, "Leonidas", page);

            ExceptionAssert.Throws <NotAllowedParentException>(delegate
            {
                saving.Raise(persister, new CancellableItemEventArgs(startPage));
            });
        }
示例#16
0
        public void LocallyUniqueItemThatWithoutNameYet()
        {
            IntegrityStartPage startPage = CreateOneItem <IntegrityStartPage>(1, "start", null);

            IntegrityPage page2 = CreateOneItem <IntegrityPage>(2, null, startPage);
            IntegrityPage page3 = CreateOneItem <IntegrityPage>(3, "Sasha", startPage);

            bool isUnique = integrityManger.IsLocallyUnique("Sasha", page2);

            Assert.IsFalse(isUnique, "Shouldn't have been locally unique.");
        }
示例#17
0
        public void CannotCopyIfNameIsOccupiedEvent()
        {
            IntegrityStartPage startPage = CreateOneItem <IntegrityStartPage>(1, "start", null);
            IntegrityPage      page2     = CreateOneItem <IntegrityPage>(2, "Sasha", startPage);
            IntegrityPage      page3     = CreateOneItem <IntegrityPage>(3, "Sasha", null);

            ExceptionAssert.Throws <NameOccupiedException>(delegate
            {
                copying.Raise(persister, new CancellableDestinationEventArgs(page3, startPage));
            });
        }
示例#18
0
        public void CannotSaveNotLocallyUniqueItem()
        {
            IntegrityStartPage startPage = CreateOneItem <IntegrityStartPage>(1, "start", null);

            IntegrityPage page2 = CreateOneItem <IntegrityPage>(2, "Sasha", startPage);
            IntegrityPage page3 = CreateOneItem <IntegrityPage>(3, "Sasha", startPage);

            bool canSave = integrityManger.CanSave(page3);

            Assert.IsFalse(canSave, "Could save even though the item isn't the only sibling with the same name.");
        }
示例#19
0
        public void CannotSaveNotLocallyUniqueItemEvent()
        {
            IntegrityStartPage startPage = CreateOneItem <IntegrityStartPage>(1, "start", null);

            IntegrityPage page2 = CreateOneItem <IntegrityPage>(2, "Sasha", startPage);
            IntegrityPage page3 = CreateOneItem <IntegrityPage>(3, "Sasha", startPage);

            ExceptionAssert.Throws <NameOccupiedException>(delegate
            {
                saving.Raise(persister, new CancellableItemEventArgs(page3));
            });
        }
示例#20
0
        public void CanDeleteEvent()
        {
            IntegrityPage page = new IntegrityPage();

            mocks.Record();
            Expect.On(parser).Call(parser.IsRootOrStartPage(page)).Return(false);
            mocks.Replay(parser);

            deleting.Raise(persister, new CancellableItemEventArgs(page));

            mocks.Verify(parser);
        }
示例#21
0
        public void LocallyUniqueItemThatWithoutNameYet()
        {
            IntegrityStartPage startPage = CreateOneItem <IntegrityStartPage>(1, "start", null);

            finder.Selector = () => startPage.Children.Where(c => c.Name.Equals("Sasha", StringComparison.InvariantCultureIgnoreCase));

            IntegrityPage page2 = CreateOneItem <IntegrityPage>(2, null, startPage);
            IntegrityPage page3 = CreateOneItem <IntegrityPage>(3, "Sasha", startPage);

            bool isUnique = integrityManger.IsLocallyUnique("Sasha", page2);

            Assert.IsFalse(isUnique, "Shouldn't have been locally unique.");
        }
示例#22
0
        public void CannotSaveNotLocallyUniqueItem()
        {
            IntegrityStartPage startPage = CreateOneItem <IntegrityStartPage>(1, "start", null);

            finder.Selector = () => startPage.Children.Where(c => c.Name.Equals("Sasha", StringComparison.InvariantCultureIgnoreCase));

            IntegrityPage page2 = CreateOneItem <IntegrityPage>(2, "Sasha", startPage);
            IntegrityPage page3 = CreateOneItem <IntegrityPage>(3, "Sasha", startPage);

            bool canSave = integrityManger.CanSave(page3);

            Assert.IsFalse(canSave, "Could save even though the item isn't the only sibling with the same name.");
        }
示例#23
0
        public void CanDelete()
        {
            IntegrityPage page = new IntegrityPage();

            mocks.Record();
            Expect.On(parser).Call(parser.IsRootOrStartPage(page)).Return(false);
            mocks.Replay(parser);

            bool canDelete = integrityManger.CanDelete(page);

            Assert.IsTrue(canDelete, "Page couldn't be deleted");

            mocks.Verify(parser);
        }
示例#24
0
        public void CannotSaveNotLocallyUniqueItemEvent()
        {
            IntegrityStartPage startPage = CreateOneItem <IntegrityStartPage>(1, "start", null);

            finder.Selector = () => startPage.Children.Where(c => c.Name.Equals("Sasha", StringComparison.InvariantCultureIgnoreCase));

            IntegrityPage page2 = CreateOneItem <IntegrityPage>(2, "Sasha", startPage);
            IntegrityPage page3 = CreateOneItem <IntegrityPage>(3, "Sasha", startPage);

            ExceptionAssert.Throws <NameOccupiedException>(delegate
            {
                saving.Raise(persister, new CancellableItemEventArgs(page3));
            });
        }