Exemplo n.º 1
0
 private bool IsChapterChanged(ChapterResource dbChapter, BookContentItemData bookContentItem, long newPageResourceResourceId, long?newParentResourceId)
 {
     return(bookContentItem.ItemOrder != dbChapter.Position ||
            newPageResourceResourceId != dbChapter.ResourceBeginningPage.Id ||
            newParentResourceId != dbChapter.ParentResource?.Id ||
            bookContentItem.Text != dbChapter.Name);
 }
Exemplo n.º 2
0
        public void TestUpdateChapters()
        {
            var unitOfWorkProvider = CreateMockUnitOfWorkProvider();
            var resourceRepository = new MockResourceRepository(unitOfWorkProvider);

            var contentItem1 = new BookContentItemData
            {
                Text      = "Chapter 40",
                ItemOrder = 2,
                Page      = new BookPageData
                {
                    Text     = "40r",
                    Position = 1,
                    XmlId    = "new-xml-40-r"
                },
                SubContentItems = new List <BookContentItemData>()
            };
            var contentItem2 = new BookContentItemData
            {
                Text      = "Chapter 41",
                ItemOrder = 1,
                Page      = new BookPageData
                {
                    Text     = "40v",
                    Position = 2,
                    XmlId    = "new-xml-40-v"
                },
                SubContentItems = new List <BookContentItemData>()
            };

            contentItem2.SubContentItems.Add(contentItem1);
            var bookData = new BookData
            {
                BookContentItems = new List <BookContentItemData>
                {
                    contentItem2
                }
            };

            var subtask       = new UpdateChaptersSubtask(resourceRepository);
            var pageResources = resourceRepository.GetProjectLatestPages(0).ToList();

            subtask.UpdateChapters(41, 2, bookData, pageResources);

            var createdChapters  = resourceRepository.CreatedObjects.OfType <ChapterResource>().ToList();
            var updatedResources = resourceRepository.UpdatedObjects.OfType <Resource>().ToList();

            Assert.AreEqual(2, createdChapters.Count);
            Assert.AreEqual(1, updatedResources.Count);

            var firstChapter   = createdChapters.First(x => x.Name == "Chapter 40");
            var secondChapter  = createdChapters.First(x => x.Name == "Chapter 41");
            var deletedChapter = updatedResources.First();

            Assert.AreEqual(2, firstChapter.Position);
            Assert.AreEqual(1, secondChapter.Position);
            Assert.IsTrue(deletedChapter.IsRemoved);

            Assert.IsNotNull(firstChapter.ParentResource);
            Assert.IsNull(secondChapter.ParentResource);

            Assert.AreEqual(90, firstChapter.ResourceBeginningPage.Id);
            Assert.AreEqual(80, secondChapter.ResourceBeginningPage.Id);
        }