public async Task UpdateBlog_Return_Ok_Return_UpdatedBlog()
        {
            // Arrange
            HttpResponseMessage expectedRespone = new HttpResponseMessage(System.Net.HttpStatusCode.OK);
            RubiconContext      db = _server.Services.GetService(typeof(RubiconContext)) as RubiconContext;
            Blog           blog    = db.Blogs.Take(1).First();//get a random blog that is allready taken
            DataGeneration data    = new DataGeneration();

            UpdateBlogModel addBlogModel = new UpdateBlogModel()
            {
                Slug        = blog.Slug,
                Body        = data.GenerateStringRandomLenght(10, 30),
                Description = data.GenerateStringRandomLenght(10, 30),
                Title       = data.GenerateStringRandomLenght(10, 30)
            };

            var Client  = new RestClient("http://localhost:57595/");
            var Request = new RestRequest("api/Posts", Method.PUT).AddJsonBody(addBlogModel);

            //Act
            var response = await Client.ExecuteAsync(Request);

            BlogModel blogModel = new JsonDeserializer().Deserialize <BlogModel>(response);


            //Arrange
            Assert.Equal(expectedRespone.StatusCode, response.StatusCode);
            Assert.True(blogModel != null);
        }
        public async Task AddBlog_Return_BadRequest_NameSlug_Already_Taken()
        {
            // Arrange
            HttpResponseMessage expectedRespone = new HttpResponseMessage(System.Net.HttpStatusCode.BadRequest);
            RubiconContext      db = _server.Services.GetService(typeof(RubiconContext)) as RubiconContext;
            Blog blog = db.Blogs.Take(1).First(); //get a random blog that is allready taken


            AddBlogModel addBlogModel = new AddBlogModel()
            {
                Body        = "ttttt",
                Description = "tttt",
                TagList     = new List <string>(),
                Title       = blog.Title
            };

            var Client  = new RestClient("http://localhost:57595/");
            var Request = new RestRequest("api/Posts").AddJsonBody(addBlogModel);


            //Act
            var response = await Client.ExecutePostAsync(Request);


            //Arrange
            Assert.Equal(expectedRespone.StatusCode, response.StatusCode);
        }
        public async Task AddBlog_Return_Ok_With_Added_Blog()
        {
            // Arrange
            HttpResponseMessage expectedRespone = new HttpResponseMessage(System.Net.HttpStatusCode.OK);
            RubiconContext      db   = _server.Services.GetService(typeof(RubiconContext)) as RubiconContext;
            Tag            tag       = db.Tags.Take(1).First();
            DataGeneration generator = new DataGeneration();


            AddBlogModel addBlogModel = new AddBlogModel()
            {
                Body        = "ttttt",
                Description = "tttt",
                TagList     = new List <string>(),
                Title       = generator.GenerateStringRandomLenght(10, 30)
            };

            addBlogModel.TagList.Add(tag.Name);

            var Client  = new RestClient("http://localhost:57595/");
            var Request = new RestRequest("api/Posts").AddJsonBody(addBlogModel);


            //Act
            var response = await Client.ExecutePostAsync(Request);

            BlogModel blogsModel = new JsonDeserializer().Deserialize <BlogModel>(response);


            //Arrange
            Assert.Equal(expectedRespone.StatusCode, response.StatusCode);
            Assert.True(blogsModel != null);
        }
        public async Task GetBlog_Should_Return_OK_With_Model()
        {
            // Arrange
            HttpResponseMessage expectedRespone = new HttpResponseMessage(System.Net.HttpStatusCode.OK);

            //get the ef context to make sure we get a actual blog
            RubiconContext db   = _server.Services.GetService(typeof(RubiconContext)) as RubiconContext;
            Blog           blog = db.Blogs.Take(1).First();

            //Act
            var Client   = new RestClient("http://localhost:57595/");
            var Request  = new RestRequest("api/Posts/" + blog.Slug);
            var response = await Client.ExecuteGetAsync(Request);


            // Assert
            Assert.Equal(expectedRespone.StatusCode, response.StatusCode);
        }
        public async Task DeleteBlog_Return_Ok()
        {
            // Arrange
            HttpResponseMessage expectedRespone = new HttpResponseMessage(System.Net.HttpStatusCode.OK);
            RubiconContext      db = _server.Services.GetService(typeof(RubiconContext)) as RubiconContext;
            Blog blog = db.Blogs.Take(1).First(); //get a blog to delete



            var Client  = new RestClient("http://localhost:57595/");
            var Request = new RestRequest("api/Posts/" + blog.Slug, Method.DELETE);

            //Act
            var response = await Client.ExecuteAsync(Request);


            //Arrange
            Assert.Equal(expectedRespone.StatusCode, response.StatusCode);
        }
Beispiel #6
0
 protected override void Seed(RubiconContext context)
 {
     context.BlogPosts.AddOrUpdate(identifierExpression => identifierExpression.Slug,
                                   new BlogPosts
     {
         Slug        = "augmented_reality_ios_application",
         Title       = "Augmented Reality iOS Application",
         Description = "Rubicon Software Development and Gazzda furniture are proud to launch an augmented reality app.",
         Body        = "The app is simple to use, and will help you decide on your best furniture fit.",
         CreatedAt   = new DateTime(2018, 5, 18, 3, 22, 56, 637),
         UpdatedAt   = new DateTime(2018, 5, 18, 3, 48, 35, 824),
         Tags        = new List <Tags>
         {
             new Tags {
                 Tag = "iOS"
             },
             new Tags {
                 Tag = "AR"
             },
         }
     },
                                   new BlogPosts
     {
         Slug        = "augmented_reality_ios_application_2",
         Title       = "Augmented Reality iOS Application 2",
         Description = "Rubicon Software Development and Gazzda furniture are proud to launch an augmented reality app.",
         Body        = "The app is simple to use, and will help you decide on your best furniture fit.",
         CreatedAt   = new DateTime(2018, 6, 18, 3, 22, 56, 637),
         Tags        = new List <Tags>
         {
             new Tags {
                 Tag = "iOS"
             },
             new Tags {
                 Tag = "AR"
             },
             new Tags {
                 Tag = "Gazzda"
             }
         }
     });
 }
        public async Task GetBlogs_With_Specific_Tag_Should_Return_Ok_With_BlogList()
        {
            // Arrange
            HttpResponseMessage expectedRespone = new HttpResponseMessage(System.Net.HttpStatusCode.OK);
            RubiconContext      db = _server.Services.GetService(typeof(RubiconContext)) as RubiconContext;
            Tag tag = db.Tags.Include(x => x.BlogTags).Where(x => x.BlogTags != null).Take(1).First();//get a tag that has atleast 1 blog


            //Act
            var Client  = new RestClient("http://localhost:57595/");
            var Request = new RestRequest("api/Posts" + "?tag=" + tag.Name);


            var response = await Client.ExecuteGetAsync(Request);

            BlogsModel blogsModel = new JsonDeserializer().Deserialize <BlogsModel>(response);



            // Assert
            Assert.Equal(expectedRespone.StatusCode, response.StatusCode);
            Assert.True(blogsModel != null);
        }
 public TagService(RubiconContext db, IMapper mapper)
 {
     this.db = db;
     this.mapper = mapper;
 }
Beispiel #9
0
        public static void SeedData(RubiconContext db)
        {
            //Check if there are any Tags if not generate some
            var Tags = db.Tags.ToList();

            if (Tags.Count == 0)
            {
                List <Tag> tags = new List <Tag>();
                tags.Add(new Tag()
                {
                    Name = "PC"
                });
                tags.Add(new Tag()
                {
                    Name = "MacOS"
                });
                tags.Add(new Tag()
                {
                    Name = "CV"
                });
                tags.Add(new Tag()
                {
                    Name = "Work"
                });
                tags.Add(new Tag()
                {
                    Name = "Android"
                });
                tags.Add(new Tag()
                {
                    Name = "Deep learning"
                });

                db.AddRange(tags);
                db.SaveChanges();
            }


            //Check if there are Blogs if not generate some
            var Blogs = db.Blogs.ToList();

            if (Blogs.Count == 0)
            {
                List <Tag> tags = db.Tags.ToList();

                Blog blog1 = new Blog()
                {
                    Title       = "Why you should hire me!",
                    Description = "A well tough out joke",
                    Body        = "You really should at least chuckle at this",
                    Slug        = Slugefier.GetFriendlyTitle("Why you should hire me!"),
                };

                db.Blogs.Add(blog1); db.SaveChanges();

                List <BlogTag> blogTags1 = new List <BlogTag>();
                blogTags1.Add(new BlogTag()
                {
                    BlogSlug = blog1.Slug,
                    TagId    = tags.SingleOrDefault(x => x.Name == "PC").Id
                });
                blogTags1.Add(new BlogTag()
                {
                    BlogSlug = blog1.Slug,
                    TagId    = tags.SingleOrDefault(x => x.Name == "CV").Id
                });
                blogTags1.Add(new BlogTag()
                {
                    BlogSlug = blog1.Slug,
                    TagId    = tags.SingleOrDefault(x => x.Name == "Work").Id
                });

                db.BlogTags.AddRange(blogTags1); db.SaveChanges();



                Blog blog2 = new Blog()
                {
                    Title       = "I am running out of jokes after one blog",
                    Description = "The truth",
                    Body        = "Kinda sad when you think about it",
                    Slug        = Slugefier.GetFriendlyTitle("I am running out of jokes after one blog"),
                };

                db.Blogs.Add(blog2); db.SaveChanges();

                List <BlogTag> blogTags2 = new List <BlogTag>();
                blogTags2.Add(new BlogTag()
                {
                    BlogSlug = blog2.Slug,
                    TagId    = tags.SingleOrDefault(x => x.Name == "PC").Id
                });
                blogTags2.Add(new BlogTag()
                {
                    BlogSlug = blog2.Slug,
                    TagId    = tags.SingleOrDefault(x => x.Name == "Android").Id
                });
                blogTags2.Add(new BlogTag()
                {
                    BlogSlug = blog2.Slug,
                    TagId    = tags.SingleOrDefault(x => x.Name == "Deep learning").Id
                });
                db.BlogTags.AddRange(blogTags2); db.SaveChanges();



                Blog blog3 = new Blog()
                {
                    Title       = "Only 4 blogs are generated!",
                    Description = "true",
                    Body        = "Small custom size is better than a lot of giberish data",
                    Slug        = Slugefier.GetFriendlyTitle("Only 4 blogs are generated!"),
                };
                db.Blogs.Add(blog3); db.SaveChanges();

                List <BlogTag> blogTags3 = new List <BlogTag>();
                blogTags3.Add(new BlogTag()
                {
                    BlogSlug = blog3.Slug,
                    TagId    = tags.SingleOrDefault(x => x.Name == "PC").Id
                });
                db.BlogTags.AddRange(blogTags3); db.SaveChanges();



                Blog blog4 = new Blog()
                {
                    Title       = "A blog with no tags",
                    Description = "tags are not required ",
                    Body        = "tags are not required ",
                    Slug        = Slugefier.GetFriendlyTitle("A blog with no tags"),
                };
                db.Blogs.Add(blog4); db.SaveChanges();
            }
        }