public void Check26ReplaceTagsOk() { using (var db = new SampleWebAppDb()) { //SETUP var snap = new DbSnapShot(db); var firstPost = db.Posts.First(); var tagsNotInFirstPostTracked = db.Tags.Where(x => x.Posts.All(y => y.PostId != firstPost.PostId)).ToList(); //ATTEMPT db.Entry(firstPost).Collection(x => x.Tags).Load(); firstPost.Tags = tagsNotInFirstPostTracked; var status = db.SaveChangesWithChecking(); //VERIFY status.IsValid.ShouldEqual(true, status.Errors); snap.CheckSnapShot(db, 0, -1); firstPost = db.Blogs.Include(x => x.Posts.Select(y => y.Tags)).First().Posts.First(); firstPost.Tags.Count.ShouldEqual(1); } }
public void Check25UpdatePostToAddTagOk() { using (var db = new SampleWebAppDb()) { //SETUP var snap = new DbSnapShot(db); var badTag = db.Tags.Single(x => x.Slug == "bad"); var firstPost = db.Posts.First(); //ATTEMPT db.Entry(firstPost).Collection(x => x.Tags).Load(); firstPost.Tags.Add(badTag); var status = db.SaveChangesWithChecking(); //VERIFY status.IsValid.ShouldEqual(true, status.Errors); snap.CheckSnapShot(db, 0, 1); firstPost = db.Blogs.Include(x => x.Posts.Select(y => y.Tags)).First().Posts.First(); firstPost.Tags.Count.ShouldEqual(3); } }