private ISuccessOrErrors DeleteBloggerWithPost(IGenericServicesDbContext db, SimplePostDto post)
        {
            var blogger = db.Set <Blog>().SingleOrDefault(x => x.Name == post.BloggerName);

            db.Set <Blog>().Remove(blogger);
            return(SuccessOrErrors.Success("It was fine."));
        }
        public void Test01CreateDataFromDtoOk()
        {
            //SETUP
            var dto = new SimplePostDto
            {
                PostId      = 123,
                BloggerName = "This should not be copied",
                Title       = "Should copy this title",
                LastUpdated = new DateTime(2000, 1, 1),
                Tags        = new Collection <Tag> {
                    new Tag {
                        Name = "Should not copy this", Slug = "No"
                    }
                }
            };


            //ATTEMPT
            var status = dto.CreateDataFromDto(null, dto);

            //VERIFY
            status.IsValid.ShouldEqual(true, status.Errors);
            status.Result.PostId.ShouldEqual(123);
            status.Result.Title.ShouldEqual("Should copy this title");

            status.Result.Blogger.ShouldEqual(null);
            status.Result.BlogId.ShouldEqual(0);
            status.Result.Content.ShouldEqual(null);
            status.Result.Tags.ShouldEqual(null);
        }
        public void Test01CreateDataFromDtoOk()
        {

            //SETUP
            var dto = new SimplePostDto
            {
                PostId = 123,
                BloggerName = "This should not be copied",
                Title = "Should copy this title",
                LastUpdated = new DateTime(2000, 1, 1),
                Tags = new Collection<Tag> { new Tag { Name = "Should not copy this", Slug = "No" } }
            };


            //ATTEMPT
            var status = dto.CreateDataFromDto(null, dto);

            //VERIFY
            status.IsValid.ShouldEqual(true, status.Errors);
            status.Result.PostId.ShouldEqual(123);
            status.Result.Title.ShouldEqual("Should copy this title");

            status.Result.Blogger.ShouldEqual(null);
            status.Result.BlogId.ShouldEqual(0);
            status.Result.Content.ShouldEqual(null);
            status.Result.Tags.ShouldEqual(null);
        }
        public void Test02UpdateDataFromDtoOk()
        {
            //SETUP
            var dto = new SimplePostDto
            {
                PostId      = 123,
                BloggerName = "This should not be copied",
                Title       = "Should copy this title",
                LastUpdated = new DateTime(2000, 1, 1),
                Tags        = new Collection <Tag> {
                    new Tag {
                        Name = "Should not copy this", Slug = "No"
                    }
                }
            };


            //ATTEMPT
            var newData = new Post
            {
                Blogger = new Blog {
                    Name = "Original Blog Name"
                },
                BlogId  = 777,
                Content = "Original Content",
                Tags    = new Collection <Tag> {
                    new Tag {
                        Name = "Original Tag name", Slug = "Yes"
                    }
                }
            };

            var status = dto.UpdateDataFromDto(null, dto, newData);

            //VERIFY
            status.IsValid.ShouldEqual(true, status.Errors);
            newData.PostId.ShouldEqual(123);
            newData.Title.ShouldEqual("Should copy this title");

            newData.Blogger.Name.ShouldEqual("Original Blog Name");
            newData.BlogId.ShouldEqual(777);
            newData.Content.ShouldEqual("Original Content");
            newData.Tags.Count.ShouldEqual(1);
            newData.Tags.First().Name.ShouldEqual("Original Tag name");
        }
예제 #5
0
        public void Check08CreateWithListDtoBad()
        {
            using (var db = new SampleWebAppDb())
            {
                //SETUP
                var service = new CreateService <Post, SimplePostDto>(db);

                //ATTEMPT
                var dto    = new SimplePostDto();
                var status = service.Create(dto);
                dto.LogSpecificName("End");

                //VERIFY
                status.IsValid.ShouldEqual(false);
                status.Errors.Count.ShouldEqual(1);
                status.Errors[0].ErrorMessage.ShouldEqual("Create of a new Post is not supported in this mode.");
            }
        }
        public void Test06CreateDtoAndCopyInDataOk()
        {
            using (var db = new SampleWebAppDb())
            {
                //SETUP;
                var firstPost = db.Posts.Include(x => x.Blogger).Include(x => x.Tags).AsNoTracking().First();

                //ATTEMPT
                var status = new SimplePostDto().DetailDtoFromDataIn(db, x => x.PostId == firstPost.PostId);

                //VERIFY
                status.Result.PostId.ShouldEqual(firstPost.PostId);
                status.Result.Title.ShouldEqual(firstPost.Title);
                status.Result.LastUpdated.ShouldEqual(firstPost.LastUpdated);
                status.Result.LastUpdatedUtc.Kind.ShouldEqual(DateTimeKind.Utc);

                status.Result.BloggerName.ShouldEqual(firstPost.Blogger.Name);
                CollectionAssert.AreEqual(firstPost.Tags.Select(x => x.TagId), status.Result.Tags.Select(x => x.TagId));
            }
        }
 private ISuccessOrErrors DeleteBloggerWithPost(IGenericServicesDbContext db, SimplePostDto post)
 {
     var blogger = db.Set<Blog>().SingleOrDefault(x => x.Name == post.BloggerName);
     db.Set<Blog>().Remove(blogger);
     return SuccessOrErrors.Success("It was fine.");
 }
        public void Check10CreateWithListDtoBad()
        {
            using (var db = new SampleWebAppDb())
            {
                //SETUP
                var service = new CreateService<Post, SimplePostDto>(db);

                //ATTEMPT
                var dto = new SimplePostDto();
                var status = service.Create(dto);
                dto.LogSpecificName("End");

                //VERIFY
                status.IsValid.ShouldEqual(false);
                status.Errors.Count.ShouldEqual(1);
                status.Errors[0].ErrorMessage.ShouldEqual("Create of a new Post is not supported in this mode.");

            }
        }
        public void Test02UpdateDataFromDtoOk()
        {

            //SETUP
            var dto = new SimplePostDto
            {
                PostId = 123,
                BloggerName = "This should not be copied",
                Title = "Should copy this title",
                LastUpdated = new DateTime(2000, 1, 1),
                Tags = new Collection<Tag> { new Tag { Name = "Should not copy this", Slug = "No" } }
            };


            //ATTEMPT
            var newData = new Post
            {
                Blogger = new Blog { Name = "Original Blog Name" },
                BlogId = 777,
                Content = "Original Content",
                Tags = new Collection<Tag> { new Tag { Name = "Original Tag name", Slug = "Yes" } }
            };

            var status = dto.UpdateDataFromDto(null, dto, newData);

            //VERIFY
            status.IsValid.ShouldEqual(true, status.Errors);
            newData.PostId.ShouldEqual(123);
            newData.Title.ShouldEqual("Should copy this title");

            newData.Blogger.Name.ShouldEqual("Original Blog Name");
            newData.BlogId.ShouldEqual(777);
            newData.Content.ShouldEqual("Original Content");
            newData.Tags.Count.ShouldEqual(1);
            newData.Tags.First().Name.ShouldEqual("Original Tag name");
        }
        public void Test06CreateDtoAndCopyInDataOk()
        {
            using (var db = new SampleWebAppDb())
            {
                //SETUP;
                var firstPost = db.Posts.Include( x => x.Blogger).Include(x => x.Tags).AsNoTracking().First();

                //ATTEMPT
                var status = new SimplePostDto().DetailDtoFromDataIn(db, x => x.PostId == firstPost.PostId);

                //VERIFY
                status.Result.PostId.ShouldEqual(firstPost.PostId);
                status.Result.Title.ShouldEqual(firstPost.Title);
                status.Result.LastUpdated.ShouldEqual(firstPost.LastUpdated);
                status.Result.LastUpdatedUtc.Kind.ShouldEqual(DateTimeKind.Utc);

                status.Result.BloggerName.ShouldEqual(firstPost.Blogger.Name);
                CollectionAssert.AreEqual(firstPost.Tags.Select(x => x.TagId), status.Result.Tags.Select(x => x.TagId));
            }
        }