private static void WriteTocInfo(TableOfContentItem item) { Console.WriteLine("{0}: [{1}] {2}", item.Level, item.PageBreakInfo.PageBreak, item.HeadInfo.HeadText); foreach (TableOfContentItem section in item.Sections) { WriteTocInfo(section); } }
public void ChangeSavedOneToManyReferenceTest() { Key tableOfContentKey; Key item1Key, item2Key, item3Key; using (var populateSession = Domain.OpenSession()) using (var transaction = populateSession.OpenTransaction()) { var tableOfContent = new TableOfContent(); var item1 = new TableOfContentItem(); var item2 = new TableOfContentItem(); var item3 = new TableOfContentItem(); tableOfContentKey = tableOfContent.Key; item1Key = item1.Key; item2Key = item2.Key; item3Key = item3.Key; tableOfContent.Items.Add(item1); tableOfContent.Items.Add(item2); tableOfContent.Items.Add(item3); transaction.Complete(); } using (var session = Domain.OpenSession(sessionConfiguration)) { var tableOfContent = session.Query.Single <TableOfContent>(tableOfContentKey); var item1 = session.Query.Single <TableOfContentItem>(item1Key); var item2 = session.Query.Single <TableOfContentItem>(item2Key); var item3 = session.Query.Single <TableOfContentItem>(item3Key); Assert.That(session.NonPairedReferencesRegistry.RemovedReferencesCount, Is.EqualTo(0)); Assert.That(session.NonPairedReferencesRegistry.AddedReferencesCount, Is.EqualTo(0)); Assert.That(ReferenceFinder.GetReferencesTo(tableOfContent).Count(), Is.EqualTo(3)); Assert.That(ReferenceFinder.GetReferencesTo(item1).Count(), Is.EqualTo(1)); Assert.That(ReferenceFinder.GetReferencesTo(item2).Count(), Is.EqualTo(1)); Assert.That(ReferenceFinder.GetReferencesTo(item3).Count(), Is.EqualTo(1)); var newTableOfContent = new TableOfContent(); item1.TableOfContent = newTableOfContent; Assert.That(session.NonPairedReferencesRegistry.RemovedReferencesCount, Is.EqualTo(0)); Assert.That(session.NonPairedReferencesRegistry.AddedReferencesCount, Is.EqualTo(0)); Assert.That(ReferenceFinder.GetReferencesTo(tableOfContent).Count(), Is.EqualTo(2)); Assert.That(ReferenceFinder.GetReferencesTo(newTableOfContent).Count(), Is.EqualTo(1)); Assert.That(ReferenceFinder.GetReferencesTo(item1).Count(), Is.EqualTo(1)); Assert.That(ReferenceFinder.GetReferencesTo(item2).Count(), Is.EqualTo(1)); Assert.That(ReferenceFinder.GetReferencesTo(item3).Count(), Is.EqualTo(1)); item2.TableOfContent = null; Assert.That(session.NonPairedReferencesRegistry.RemovedReferencesCount, Is.EqualTo(0)); Assert.That(session.NonPairedReferencesRegistry.AddedReferencesCount, Is.EqualTo(0)); Assert.That(ReferenceFinder.GetReferencesTo(tableOfContent).Count(), Is.EqualTo(1)); Assert.That(ReferenceFinder.GetReferencesTo(newTableOfContent).Count(), Is.EqualTo(1)); Assert.That(ReferenceFinder.GetReferencesTo(item1).Count(), Is.EqualTo(1)); Assert.That(ReferenceFinder.GetReferencesTo(item2).Count(), Is.EqualTo(0)); Assert.That(ReferenceFinder.GetReferencesTo(item3).Count(), Is.EqualTo(1)); } }
private XElement GenerateList(TableOfContentItem item) { if (item == null || item.PageBreakInfo.PageBreakXmlId == null) { return(null); } string corresp = item.DivXmlId; XElement it = new XElement(nsTei + "item", new XAttribute("corresp", "#" + corresp), new XElement(nsTei + "head", new XText(item.HeadInfo.HeadText)), item.PageBreakInfo.PageBreak == null ? null : new XElement(nsTei + "ref", new XAttribute("target", "#" + item.PageBreakInfo.PageBreakXmlId), new XText(item.PageBreakInfo.PageBreak)), GenerateList(item.Sections) ); return(it); }
private static void WriteTocInfoXml(TableOfContentItem item, int indent) { Console.WriteLine("<item corresp=\"#{0}\"><head>{1}</head><ref target=\"#{2}\">{3}</xref><item>", item.DivXmlId, item.HeadInfo.HeadText, item.PageBreakInfo.PageBreakXmlId, item.PageBreakInfo.PageBreak); if (item.Sections.Count > 0) { Console.WriteLine(); indent++; string textIndent = new string(' ', indent); Console.WriteLine("{0}<list>", textIndent); foreach (TableOfContentItem section in item.Sections) { WriteTocInfoXml(section, indent); } Console.WriteLine("</list>"); } }
public void RemoveEntityToEntitySetTest() { Key tableWithItemsKey; Key item1Key, item2Key; Key book1Key, book2Key; Key author1Key, author2Key; using (var populateSession = Domain.OpenSession()) using (var transaction = populateSession.OpenTransaction()) { var tableWithItems = new TableOfContent(); tableWithItemsKey = tableWithItems.Key; var item1 = new TableOfContentItem(); var item2 = new TableOfContentItem(); item1Key = item1.Key; item2Key = item2.Key; tableWithItems.Items.Add(item1); tableWithItems.Items.Add(item2); var book1 = new Book(); book1Key = book1.Key; var book2 = new Book(); book2Key = book2.Key; var author1 = new Author(); author1Key = author1.Key; var author2 = new Author(); author2Key = author2.Key; author1.Books.Add(book1); author1.Books.Add(book2); author2.Books.Add(book1); author2.Books.Add(book2); transaction.Complete(); } using (var session = Domain.OpenSession(sessionConfiguration)) { var tableWithItems = session.Query.Single <TableOfContent>(tableWithItemsKey); var item1 = session.Query.Single <TableOfContentItem>(item1Key); var item2 = session.Query.Single <TableOfContentItem>(item2Key); var item3 = new TableOfContentItem(); tableWithItems.Items.Add(item3); Assert.That(session.NonPairedReferencesRegistry.RemovedReferencesCount, Is.EqualTo(0)); Assert.That(session.NonPairedReferencesRegistry.AddedReferencesCount, Is.EqualTo(0)); Assert.That(ReferenceFinder.GetReferencesTo(item1).Count(), Is.EqualTo(1)); Assert.That(ReferenceFinder.GetReferencesTo(item2).Count(), Is.EqualTo(1)); Assert.That(ReferenceFinder.GetReferencesTo(item3).Count(), Is.EqualTo(1)); Assert.That(ReferenceFinder.GetReferencesTo(tableWithItems).Count(), Is.EqualTo(3)); tableWithItems.Items.Remove(item3); tableWithItems.Items.Remove(item2); Assert.That(session.NonPairedReferencesRegistry.RemovedReferencesCount, Is.EqualTo(0)); Assert.That(session.NonPairedReferencesRegistry.AddedReferencesCount, Is.EqualTo(0)); Assert.That(ReferenceFinder.GetReferencesTo(item1).Count(), Is.EqualTo(1)); Assert.That(ReferenceFinder.GetReferencesTo(item2).Count(), Is.EqualTo(0)); Assert.That(ReferenceFinder.GetReferencesTo(item3).Count(), Is.EqualTo(0)); Assert.That(ReferenceFinder.GetReferencesTo(tableWithItems).Count(), Is.EqualTo(1)); var oldBook1 = session.Query.Single <Book>(book1Key); var oldBook2 = session.Query.Single <Book>(book2Key); var newBook = new Book(); var oldAutor1 = session.Query.Single <Author>(author1Key); var oldAutor2 = session.Query.Single <Author>(author2Key); var newAuthor = new Author(); newAuthor.Books.Add(oldBook1); newAuthor.Books.Add(oldBook2); newAuthor.Books.Add(newBook); newBook.Authors.Add(oldAutor1); newBook.Authors.Add(oldAutor2); Assert.That(ReferenceFinder.GetReferencesTo(oldBook1).Count(), Is.EqualTo(3)); Assert.That(ReferenceFinder.GetReferencesTo(oldBook2).Count(), Is.EqualTo(3)); Assert.That(ReferenceFinder.GetReferencesTo(oldAutor1).Count(), Is.EqualTo(3)); Assert.That(ReferenceFinder.GetReferencesTo(oldAutor2).Count(), Is.EqualTo(3)); Assert.That(ReferenceFinder.GetReferencesTo(newBook).Count(), Is.EqualTo(3)); Assert.That(ReferenceFinder.GetReferencesTo(newAuthor).Count(), Is.EqualTo(3)); oldAutor1.Books.Remove(oldBook1); Assert.That(ReferenceFinder.GetReferencesTo(oldBook1).Count(), Is.EqualTo(2)); Assert.That(ReferenceFinder.GetReferencesTo(oldBook2).Count(), Is.EqualTo(3)); Assert.That(ReferenceFinder.GetReferencesTo(oldAutor1).Count(), Is.EqualTo(2)); Assert.That(ReferenceFinder.GetReferencesTo(oldAutor2).Count(), Is.EqualTo(3)); Assert.That(ReferenceFinder.GetReferencesTo(newBook).Count(), Is.EqualTo(3)); Assert.That(ReferenceFinder.GetReferencesTo(newAuthor).Count(), Is.EqualTo(3)); oldBook2.Authors.Remove(oldAutor2); Assert.That(ReferenceFinder.GetReferencesTo(oldBook1).Count(), Is.EqualTo(2)); Assert.That(ReferenceFinder.GetReferencesTo(oldBook2).Count(), Is.EqualTo(2)); Assert.That(ReferenceFinder.GetReferencesTo(oldAutor1).Count(), Is.EqualTo(2)); Assert.That(ReferenceFinder.GetReferencesTo(oldAutor2).Count(), Is.EqualTo(2)); Assert.That(ReferenceFinder.GetReferencesTo(newBook).Count(), Is.EqualTo(3)); Assert.That(ReferenceFinder.GetReferencesTo(newAuthor).Count(), Is.EqualTo(3)); oldAutor1.Books.Remove(newBook); newBook.Authors.Remove(oldAutor2); Assert.That(ReferenceFinder.GetReferencesTo(oldBook1).Count(), Is.EqualTo(2)); Assert.That(ReferenceFinder.GetReferencesTo(oldBook2).Count(), Is.EqualTo(2)); Assert.That(ReferenceFinder.GetReferencesTo(oldAutor1).Count(), Is.EqualTo(1)); Assert.That(ReferenceFinder.GetReferencesTo(oldAutor2).Count(), Is.EqualTo(1)); Assert.That(ReferenceFinder.GetReferencesTo(newBook).Count(), Is.EqualTo(1)); Assert.That(ReferenceFinder.GetReferencesTo(newAuthor).Count(), Is.EqualTo(3)); newBook.Authors.Remove(newAuthor); Assert.That(ReferenceFinder.GetReferencesTo(oldBook1).Count(), Is.EqualTo(2)); Assert.That(ReferenceFinder.GetReferencesTo(oldBook2).Count(), Is.EqualTo(2)); Assert.That(ReferenceFinder.GetReferencesTo(oldAutor1).Count(), Is.EqualTo(1)); Assert.That(ReferenceFinder.GetReferencesTo(oldAutor2).Count(), Is.EqualTo(1)); Assert.That(ReferenceFinder.GetReferencesTo(newBook).Count(), Is.EqualTo(0)); Assert.That(ReferenceFinder.GetReferencesTo(newAuthor).Count(), Is.EqualTo(2)); } }
public void ChangeReferenceToSameObjectTest() { Key person1Key, person2Key; Key license1Key, license2Key; Key tableOfContentKey, item1Key, item2Key; using (var populateSession = Domain.OpenSession()) using (var transaction = populateSession.OpenTransaction()) { var person1 = new Person { DriverLicense = new DriverLicense() }; var person2 = new Person { DriverLicense = new DriverLicense() }; person1Key = person1.Key; person2Key = person2.Key; license1Key = person1.DriverLicense.Key; license2Key = person2.DriverLicense.Key; var tableOfContent = new TableOfContent(); tableOfContentKey = tableOfContent.Key; var item1 = new TableOfContentItem(); item1Key = item1.Key; tableOfContent.Items.Add(item1); var item2 = new TableOfContentItem(); item2Key = item2.Key; tableOfContent.Items.Add(item2); transaction.Complete(); } using (var session = Domain.OpenSession(sessionConfiguration)) { var person = session.Query.Single <Person>(person1Key); var license = session.Query.Single <DriverLicense>(license1Key); Assert.That(session.NonPairedReferencesRegistry.RemovedReferencesCount, Is.EqualTo(0)); Assert.That(session.NonPairedReferencesRegistry.AddedReferencesCount, Is.EqualTo(0)); Assert.That(ReferenceFinder.GetReferencesTo(person).Count(), Is.EqualTo(1)); Assert.That(ReferenceFinder.GetReferencesTo(license).Count(), Is.EqualTo(1)); person.DriverLicense = license; Assert.That(session.NonPairedReferencesRegistry.RemovedReferencesCount, Is.EqualTo(0)); Assert.That(session.NonPairedReferencesRegistry.AddedReferencesCount, Is.EqualTo(0)); Assert.That(ReferenceFinder.GetReferencesTo(person).Count(), Is.EqualTo(1)); Assert.That(ReferenceFinder.GetReferencesTo(license).Count(), Is.EqualTo(1)); person = session.Query.Single <Person>(person2Key); license = session.Query.Single <DriverLicense>(license2Key); Assert.That(session.NonPairedReferencesRegistry.RemovedReferencesCount, Is.EqualTo(0)); Assert.That(session.NonPairedReferencesRegistry.AddedReferencesCount, Is.EqualTo(0)); Assert.That(ReferenceFinder.GetReferencesTo(person).Count(), Is.EqualTo(1)); Assert.That(ReferenceFinder.GetReferencesTo(license).Count(), Is.EqualTo(1)); license.Person = person; Assert.That(session.NonPairedReferencesRegistry.RemovedReferencesCount, Is.EqualTo(0)); Assert.That(session.NonPairedReferencesRegistry.AddedReferencesCount, Is.EqualTo(0)); Assert.That(ReferenceFinder.GetReferencesTo(person).Count(), Is.EqualTo(1)); Assert.That(ReferenceFinder.GetReferencesTo(license).Count(), Is.EqualTo(1)); var item1 = session.Query.Single <TableOfContentItem>(item1Key); var item2 = session.Query.Single <TableOfContentItem>(item2Key); var tableOfContent = session.Query.Single <TableOfContent>(tableOfContentKey); Assert.That(session.NonPairedReferencesRegistry.RemovedReferencesCount, Is.EqualTo(0)); Assert.That(session.NonPairedReferencesRegistry.AddedReferencesCount, Is.EqualTo(0)); Assert.That(ReferenceFinder.GetReferencesTo(item1).Count(), Is.EqualTo(1)); Assert.That(ReferenceFinder.GetReferencesTo(item2).Count(), Is.EqualTo(1)); Assert.That(ReferenceFinder.GetReferencesTo(tableOfContent).Count(), Is.EqualTo(2)); item1.TableOfContent = tableOfContent; Assert.That(session.NonPairedReferencesRegistry.RemovedReferencesCount, Is.EqualTo(0)); Assert.That(session.NonPairedReferencesRegistry.AddedReferencesCount, Is.EqualTo(0)); Assert.That(ReferenceFinder.GetReferencesTo(item1).Count(), Is.EqualTo(1)); Assert.That(ReferenceFinder.GetReferencesTo(item2).Count(), Is.EqualTo(1)); Assert.That(ReferenceFinder.GetReferencesTo(tableOfContent).Count(), Is.EqualTo(2)); item2.TableOfContent = tableOfContent; Assert.That(session.NonPairedReferencesRegistry.RemovedReferencesCount, Is.EqualTo(0)); Assert.That(session.NonPairedReferencesRegistry.AddedReferencesCount, Is.EqualTo(0)); Assert.That(ReferenceFinder.GetReferencesTo(item1).Count(), Is.EqualTo(1)); Assert.That(ReferenceFinder.GetReferencesTo(item2).Count(), Is.EqualTo(1)); Assert.That(ReferenceFinder.GetReferencesTo(tableOfContent).Count(), Is.EqualTo(2)); } }
public void InitializeOneToManyReferenceFieldTest() { using (var session = Domain.OpenSession(sessionConfiguration)) { var tableOfContent = new TableOfContent(); var tableOfContentItem1 = new TableOfContentItem(); var tableOfContentItem2 = new TableOfContentItem(); var tableOfContentItem3 = new TableOfContentItem(); Assert.That(ReferenceFinder.GetReferencesTo(tableOfContent).Count(), Is.EqualTo(0)); Assert.That(ReferenceFinder.GetReferencesTo(tableOfContentItem1).Count(), Is.EqualTo(0)); Assert.That(ReferenceFinder.GetReferencesTo(tableOfContentItem2).Count(), Is.EqualTo(0)); Assert.That(ReferenceFinder.GetReferencesTo(tableOfContentItem3).Count(), Is.EqualTo(0)); Assert.That(session.NonPairedReferencesRegistry.AddedReferencesCount, Is.EqualTo(0)); Assert.That(session.NonPairedReferencesRegistry.RemovedReferencesCount, Is.EqualTo(0)); tableOfContent.Items.Add(tableOfContentItem1); Assert.That(ReferenceFinder.GetReferencesTo(tableOfContent).Count(), Is.EqualTo(1)); Assert.That(ReferenceFinder.GetReferencesTo(tableOfContentItem1).Count(), Is.EqualTo(1)); Assert.That(ReferenceFinder.GetReferencesTo(tableOfContentItem2).Count(), Is.EqualTo(0)); Assert.That(ReferenceFinder.GetReferencesTo(tableOfContentItem3).Count(), Is.EqualTo(0)); Assert.That(session.NonPairedReferencesRegistry.AddedReferencesCount, Is.EqualTo(0)); Assert.That(session.NonPairedReferencesRegistry.RemovedReferencesCount, Is.EqualTo(0)); tableOfContent.Items.Add(tableOfContentItem2); Assert.That(ReferenceFinder.GetReferencesTo(tableOfContent).Count(), Is.EqualTo(2)); Assert.That(ReferenceFinder.GetReferencesTo(tableOfContentItem1).Count(), Is.EqualTo(1)); Assert.That(ReferenceFinder.GetReferencesTo(tableOfContentItem2).Count(), Is.EqualTo(1)); Assert.That(ReferenceFinder.GetReferencesTo(tableOfContentItem3).Count(), Is.EqualTo(0)); Assert.That(session.NonPairedReferencesRegistry.AddedReferencesCount, Is.EqualTo(0)); Assert.That(session.NonPairedReferencesRegistry.RemovedReferencesCount, Is.EqualTo(0)); tableOfContent.Items.Add(tableOfContentItem3); Assert.That(ReferenceFinder.GetReferencesTo(tableOfContent).Count(), Is.EqualTo(3)); Assert.That(ReferenceFinder.GetReferencesTo(tableOfContentItem1).Count(), Is.EqualTo(1)); Assert.That(ReferenceFinder.GetReferencesTo(tableOfContentItem2).Count(), Is.EqualTo(1)); Assert.That(ReferenceFinder.GetReferencesTo(tableOfContentItem3).Count(), Is.EqualTo(1)); Assert.That(session.NonPairedReferencesRegistry.AddedReferencesCount, Is.EqualTo(0)); Assert.That(session.NonPairedReferencesRegistry.RemovedReferencesCount, Is.EqualTo(0)); tableOfContent = new TableOfContent(); tableOfContentItem1 = new TableOfContentItem(); tableOfContentItem2 = new TableOfContentItem(); tableOfContentItem3 = new TableOfContentItem(); Assert.That(ReferenceFinder.GetReferencesTo(tableOfContent).Count(), Is.EqualTo(0)); Assert.That(ReferenceFinder.GetReferencesTo(tableOfContentItem1).Count(), Is.EqualTo(0)); Assert.That(ReferenceFinder.GetReferencesTo(tableOfContentItem2).Count(), Is.EqualTo(0)); Assert.That(ReferenceFinder.GetReferencesTo(tableOfContentItem3).Count(), Is.EqualTo(0)); Assert.That(session.NonPairedReferencesRegistry.AddedReferencesCount, Is.EqualTo(0)); Assert.That(session.NonPairedReferencesRegistry.RemovedReferencesCount, Is.EqualTo(0)); tableOfContentItem1.TableOfContent = tableOfContent; Assert.That(ReferenceFinder.GetReferencesTo(tableOfContent).Count(), Is.EqualTo(1)); Assert.That(ReferenceFinder.GetReferencesTo(tableOfContentItem1).Count(), Is.EqualTo(1)); Assert.That(ReferenceFinder.GetReferencesTo(tableOfContentItem2).Count(), Is.EqualTo(0)); Assert.That(ReferenceFinder.GetReferencesTo(tableOfContentItem3).Count(), Is.EqualTo(0)); Assert.That(session.NonPairedReferencesRegistry.AddedReferencesCount, Is.EqualTo(0)); Assert.That(session.NonPairedReferencesRegistry.RemovedReferencesCount, Is.EqualTo(0)); tableOfContentItem2.TableOfContent = tableOfContent; Assert.That(ReferenceFinder.GetReferencesTo(tableOfContent).Count(), Is.EqualTo(2)); Assert.That(ReferenceFinder.GetReferencesTo(tableOfContentItem1).Count(), Is.EqualTo(1)); Assert.That(ReferenceFinder.GetReferencesTo(tableOfContentItem2).Count(), Is.EqualTo(1)); Assert.That(ReferenceFinder.GetReferencesTo(tableOfContentItem3).Count(), Is.EqualTo(0)); Assert.That(session.NonPairedReferencesRegistry.AddedReferencesCount, Is.EqualTo(0)); Assert.That(session.NonPairedReferencesRegistry.RemovedReferencesCount, Is.EqualTo(0)); tableOfContentItem3.TableOfContent = tableOfContent; Assert.That(ReferenceFinder.GetReferencesTo(tableOfContent).Count(), Is.EqualTo(3)); Assert.That(ReferenceFinder.GetReferencesTo(tableOfContentItem1).Count(), Is.EqualTo(1)); Assert.That(ReferenceFinder.GetReferencesTo(tableOfContentItem2).Count(), Is.EqualTo(1)); Assert.That(ReferenceFinder.GetReferencesTo(tableOfContentItem3).Count(), Is.EqualTo(1)); Assert.That(session.NonPairedReferencesRegistry.AddedReferencesCount, Is.EqualTo(0)); Assert.That(session.NonPairedReferencesRegistry.RemovedReferencesCount, Is.EqualTo(0)); } }