예제 #1
0
        public void PersistManager_Delete_DependentEntity()
        {
            var uut = new PersistManager <BloggerContextPg>();

            var ctx = new BloggerContextPg();

            var blogs = ctx.Blogs.ToList();
            var posts = ctx.Posts.ToList();

            blogs.Count.Should().BeGreaterThan(0);
            posts.Count.Should().BeGreaterThan(0);

            var blogsToDelete = blogs.Select(b => new EntityAspect(b, EntityState.Deleted)).ToList();
            var postsToDelete = posts.Select(p => new EntityAspect(p, EntityState.Deleted)).ToList();

            var saveBundle0 = new ClientSaveBundle();

            blogsToDelete.ForEach(b => saveBundle0.AddEntity(b));
            postsToDelete.ForEach(p => saveBundle0.AddEntity(p));

            var parsedSaveBundle = JObject.Parse(saveBundle0.ToJson());

            var saveResultOfDelete = uut.SaveChanges(parsedSaveBundle.ToString());

            var postDeleteBlogs = uut.Context.Blogs.ToList();

            postDeleteBlogs.Count.Should().Be(0);
            saveResultOfDelete.DeletedKeys.Count.Should().Be(blogs.Count + posts.Count);
        }
예제 #2
0
        public void OneTimeSetup()
        {
            /// make sure w have a fresh  and empty DB .
            using (var setupCtx = new BloggerContextPg())
            {
                setupCtx.Database.EnsureDeleted();
                setupCtx.Database.EnsureCreated();
            }

            UUT = new PersistManagerWithNoda();
        }
예제 #3
0
        public void GetEntityTypeSaveOrder_Test()
        {
            var ctx       = BloggerContextPg.CreateWithNpgsql();
            var saveOrder = DecideSaveOrder(ctx);

            saveOrder = DecideSaveOrder(ctx);
            saveOrder = DecideSaveOrder(ctx);
            saveOrder = DecideSaveOrder(ctx);

            saveOrder.ForEach(t => Console.WriteLine(t));
        }