public void Complex_Graph() { TestEntityManager testManager = new TestEntityManager(); using (GraphContext ctx = GetContext(testManager)) { Book orgBook; Book book = new Book() { Name = "Prova" }; orgBook = book; book = ctx.Add(book); book.Index = 1; Assert.Empty(testManager.CreatedNodes); ctx.SaveChanges(); Assert.Equal(1, testManager.CreatedNodes.Count); Assert.Equal("Prova", testManager.CreatedNodes[0].Item1.GetPropValue("Name")); Chapter chapter1 = new Chapter() { Name = "Capitolo 1" }; Chapter chapter2 = new Chapter() { Name = "Capitolo 2" }; book.Chapters.Add(chapter1); Assert.Equal(book, chapter1.Book); ctx.SaveChanges(); Assert.Equal(1, testManager.ConnectionMerge.Count(p => p.Item1.Source == book)); chapter2.Book = book; Assert.Equal(2, book.Chapters.Count()); Assert.True(book.Chapters.Contains(chapter2)); ctx.SaveChanges(); Assert.Equal(2, testManager.ConnectionMerge.Count(p => p.Item1.Source == book)); } }
public void CrUD_Nodes() { TestEntityManager testManager = new TestEntityManager(); using (GraphContext ctx = GetContext(testManager)) { Symbol s = new Symbol(); Book orgBook; Book book = new Book() { Name = "Prova" }; orgBook = book; book = ctx.Add(book); book.Index = 1; Assert.Empty(testManager.CreatedNodes); ctx.SaveChanges(); Assert.Equal(1, testManager.CreatedNodes.Count); Assert.Equal("Prova", testManager.CreatedNodes[0].Item1.GetPropValue("Name")); book.Name = "Prova 2"; ctx.SaveChanges(); Assert.Empty(testManager.CreatedNodes); Assert.Equal(1, testManager.UpdatedNodes.Count); Assert.Equal("Prova 2", testManager.UpdatedNodes[0].Item1.GetPropValue("Name")); Assert.True(testManager.UpdatedNodes[0].Item2.Count() > 0 && !testManager.UpdatedNodes[0].Item2.Contains("Name")); ctx.Remove(book); ctx.SaveChanges(); Assert.Empty(testManager.CreatedNodes); Assert.Empty(testManager.UpdatedNodes); Assert.Equal(1, testManager.DeletedNodes.Count); Assert.Equal(orgBook, testManager.DeletedNodes[0]); } }