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); }
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; }
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(); } }