コード例 #1
0
        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));
            }
        }
コード例 #2
0
        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]);
            }
        }