public void ListByAreaSetsAreaAsContainer() { FakeCommentService commentService = new FakeCommentService(); FakePostService postService = new FakePostService(); FakeAreaService areaService = new FakeAreaService(); commentService.AllComments.Add(new Comment()); commentService.AllComments.Add(new Comment()); areaService.StoredAreas.Add("test", new Area()); CommentController controller = new CommentController(postService, commentService, null, areaService) { ControllerContext = new System.Web.Mvc.ControllerContext() { RouteData = new System.Web.Routing.RouteData() } }; OxiteViewModelItems <Comment> result = controller.ListByArea(new Area() { Name = "test" }); Assert.Same(areaService.StoredAreas["test"], result.Container); }
public void ItemReturnsPost() { FakeAreaService areaService = new FakeAreaService(); FakePostService postService = new FakePostService(); Guid postID = Guid.NewGuid(); Guid areaID = Guid.NewGuid(); areaService.StoredAreas.Add("test", new Area() { ID = areaID }); postService.AddedPosts.Add(new Post() { ID = postID, Slug = "Slug" }); PostController controller = new PostController(postService, null, areaService, null); OxiteModelItem <Post> result = controller.Item(new Area() { Name = "test" }, new Post() { Slug = "Slug" }); Assert.Equal(postID, result.Item.ID); Assert.IsType <Area>(result.Container); Assert.Equal(areaID, (result.Container as Area).ID); }
public void ListByPostSetsPostAsContainer() { FakeCommentService commentService = new FakeCommentService(); FakePostService postService = new FakePostService(); FakeAreaService areaService = new FakeAreaService(); commentService.AllComments.Add(new Comment()); commentService.AllComments.Add(new Comment()); postService.AddedPosts.Add(new Post() { Slug = "test" }); areaService.StoredAreas.Add("test", new Area()); CommentController controller = new CommentController(postService, commentService, null, areaService) { ControllerContext = new System.Web.Mvc.ControllerContext() { RouteData = new System.Web.Routing.RouteData() } }; OxiteViewModelItems <Comment> result = controller.ListByPost(0, 50, new PostAddress("test", "test"), null); Assert.Same(postService.AddedPosts[0], result.Container); }
public void NewPostCreatesSlugForEntry() { FakePostService postService = new FakePostService(); FakeAreaService areaService = new FakeAreaService(); FakeTagService tagService = new FakeTagService(); FakeUserService userService = new FakeUserService(); FakeRegularExpressions regularExpressions = new FakeRegularExpressions(); Guid areaID = Guid.NewGuid(); areaService.StoredAreas.Add("test", new Oxite.Models.Area() { ID = areaID }); Post newPost = new Post() { title = "This is a test", description = "A Test", dateCreated = DateTime.Now, mt_basename = "" }; MetaWeblogAPI service = new MetaWeblogAPI(postService, areaService, userService, null, regularExpressions); service.NewPost(areaID.ToString(), "test", "test", newPost, false); Oxite.Models.Post savedPost = postService.AddedPosts[0]; Assert.Equal("This-is-a-test", savedPost.Slug); }
public void NewPostAddsPassedCategoriesAsTags() { FakePostService postService = new FakePostService(); FakeAreaService areaService = new FakeAreaService(); FakeTagService tagService = new FakeTagService(); FakeUserService userService = new FakeUserService(); Guid areaID = Guid.NewGuid(); Guid tag1ID = Guid.NewGuid(); Guid tag2ID = Guid.NewGuid(); areaService.StoredAreas.Add("test", new Oxite.Models.Area() { ID = areaID }); Post newPost = new Post() { categories = new[] { "Test1", "Test2" }, title = "Test", description = "A Test", dateCreated = DateTime.Now, mt_basename = "test" }; MetaWeblogAPI service = new MetaWeblogAPI(postService, areaService, userService, null, null); service.NewPost(areaID.ToString(), "test", "test", newPost, false); Assert.Equal(1, postService.AddedPosts.Count); Oxite.Models.Post savedPost = postService.AddedPosts[0]; Assert.Equal(2, savedPost.Tags.Count); Assert.Contains("Test1", savedPost.Tags.Select(t => t.Name)); Assert.Contains("Test2", savedPost.Tags.Select(t => t.Name)); }
public void RsdHasSiteAbsoluteUrlWhenPathInSiteHost() { FakeAreaService areaService = new FakeAreaService(); areaService.StoredAreas.Add("test", new Oxite.Models.Area() { ID = Guid.NewGuid(), Name = "test" }); RouteCollection routes = new RouteCollection(); routes.Add("Posts", new Route("", new MvcRouteHandler())); UrlHelper helper = new UrlHelper(new RequestContext(new FakeHttpContext(new Uri("http://oxite.net/blog"), "~/"), new RouteData()), routes); Site site = new Site() { Host = new Uri("http://oxite.net/blog") }; AreaController controller = new AreaController(site, areaService, null, null, null, null) { Url = helper }; ContentResult result = controller.Rsd("test"); XDocument rsdDoc = XDocument.Parse(result.Content); XNamespace rsdNamespace = "http://archipelago.phrasewise.com/rsd"; XElement rootElement = rsdDoc.Element(rsdNamespace + "rsd"); Assert.Equal("http://oxite.net/blog/MetaWeblog.svc", rootElement.Descendants(rsdNamespace + "api").First().Attribute("apiLink").Value); }
public void RsdReturnsXmlContentType() { FakeAreaService areaService = new FakeAreaService(); areaService.StoredAreas.Add("test", new Oxite.Models.Area() { ID = Guid.NewGuid(), Name = "test" }); RouteCollection routes = new RouteCollection(); routes.Add("Posts", new Route("", new MvcRouteHandler())); UrlHelper helper = new UrlHelper(new RequestContext(new FakeHttpContext(new Uri("http://oxite.net/"), "~/"), new RouteData()), routes); Site site = new Site() { Host = new Uri("http://oxite.net") }; AreaController controller = new AreaController(site, areaService, null, null, null, null) { Url = helper }; ContentResult result = controller.Rsd("test"); Assert.Equal("text/xml", result.ContentType); }
public void NewPostAddsToService() { FakePostService postService = new FakePostService(); FakeAreaService areaService = new FakeAreaService(); FakeTagService tagService = new FakeTagService(); FakeUserService userService = new FakeUserService(); Guid areaID = Guid.NewGuid(); areaService.StoredAreas.Add("test", new Oxite.Models.Area() { ID = areaID }); MetaWeblogAPI service = new MetaWeblogAPI(postService, areaService, userService, null, null); Post newPost = new Post() { title = "Test", description = "A Test", dateCreated = DateTime.Now, mt_basename = "test" }; string postIDString = service.NewPost(areaID.ToString(), "test", "test", newPost, false); Assert.NotNull(postIDString); Assert.Equal(1, postService.AddedPosts.Count); Assert.Equal(postService.AddedPosts[0].ID.ToString(), postIDString); Assert.Equal("Test", postService.AddedPosts[0].Title); Assert.Equal("A Test", postService.AddedPosts[0].Body); Assert.Equal(newPost.dateCreated, postService.AddedPosts[0].Created); Assert.Equal("test", postService.AddedPosts[0].Slug); Assert.Equal(Oxite.Models.EntityState.Normal, postService.AddedPosts[0].State); }
public void ListByPostReturnsListOfComments() { FakeCommentService commentService = new FakeCommentService(); FakePostService postService = new FakePostService(); FakeAreaService areaService = new FakeAreaService(); commentService.AllComments.Add(new Comment()); commentService.AllComments.Add(new Comment()); postService.AddedPosts.Add(new Post() { Slug = "test" }); areaService.StoredAreas.Add("test", new Area()); CommentController controller = new CommentController(postService, commentService, null, areaService) { ControllerContext = new System.Web.Mvc.ControllerContext() { RouteData = new System.Web.Routing.RouteData() } }; OxiteViewModelItems <Comment> result = controller.ListByPost(0, 50, new PostAddress("test", "test"), null); Assert.Equal(2, result.Items.Count()); Assert.Same(commentService.AllComments[0], result.Items.ElementAt(0)); Assert.Same(commentService.AllComments[1], result.Items.ElementAt(1)); Assert.Same(postService.AddedPosts[0], result.Items.ElementAt(0).Parent); Assert.Same(postService.AddedPosts[0], result.Items.ElementAt(1).Parent); }
public void ListByAreaSetsAreaAsContainer() { FakePostService postService = new FakePostService(); FakeAreaService areaService = new FakeAreaService(); postService.AllComments.Add(new ParentAndChild <PostBase, Comment>() { Parent = new Post(), Child = new Comment() }); postService.AllComments.Add(new ParentAndChild <PostBase, Comment>() { Parent = new Post(), Child = new Comment() }); areaService.StoredAreas.Add("test", new Area()); CommentController controller = new CommentController(postService, null, areaService) { ControllerContext = new System.Web.Mvc.ControllerContext() { RouteData = new System.Web.Routing.RouteData() } }; OxiteModelList <ParentAndChild <PostBase, Comment> > result = controller.ListByArea(new Area() { Name = "test" }); Assert.Same(areaService.StoredAreas["test"], result.Container); }
public void RsdReturnsValidRsdDoc() { FakeAreaService areaService = new FakeAreaService(); areaService.StoredAreas.Add("test", new Oxite.Models.Area() { ID = Guid.NewGuid(), Name = "test" }); RouteCollection routes = new RouteCollection(); routes.Add("Posts", new Route("", new MvcRouteHandler())); UrlHelper helper = new UrlHelper(new RequestContext(new FakeHttpContext(new Uri("http://oxite.net/"), "~/"), new RouteData()), routes); Site site = new Site() { Host = new Uri("http://oxite.net") }; AreaController controller = new AreaController(site, areaService, null, null, null, null) { Url = helper }; ContentResult result = controller.Rsd("test"); Assert.NotNull(result); XDocument rsdDoc = XDocument.Parse(result.Content); XNamespace rsdNamespace = "http://archipelago.phrasewise.com/rsd"; XElement rootElement = rsdDoc.Element(rsdNamespace + "rsd"); Assert.NotNull(rootElement); Assert.NotNull(rootElement.Attribute("version")); Assert.Equal("1.0", rootElement.Attribute("version").Value); Assert.Equal("Oxite", rootElement.Descendants(rsdNamespace + "engineName").SingleOrDefault().Value); Assert.Equal("http://oxite.net", rootElement.Descendants(rsdNamespace + "engineLink").SingleOrDefault().Value); Assert.Equal("http://oxite.net/", rootElement.Descendants(rsdNamespace + "homePageLink").SingleOrDefault().Value); XElement apisElement = rootElement.Descendants(rsdNamespace + "apis").SingleOrDefault(); Assert.NotNull(apisElement); Assert.Equal(1, apisElement.Elements().Count()); XElement apiElement = apisElement.Elements().SingleOrDefault(); Assert.NotNull(apiElement); Assert.Equal(rsdNamespace + "api", apiElement.Name); Assert.Equal("MetaWeblog", apiElement.Attribute("name").Value); Assert.Equal(areaService.StoredAreas["test"].ID.ToString("N"), apiElement.Attribute("blogID").Value); Assert.Equal("true", apiElement.Attribute("preferred").Value); Assert.Equal("http://oxite.net/MetaWeblog.svc", apiElement.Attribute("apiLink").Value); }
public void ListByPostReturnsNullOnBadArea() { FakeAreaService areaService = new FakeAreaService(); CommentController controller = new CommentController(null, null, areaService); Assert.Null(controller.ListByPost(new Area() { Name = "test" }, null)); }
public void ListByAreaReturnsNullOnBadArea() { FakeCommentService commentService = new FakeCommentService(); FakeAreaService areaService = new FakeAreaService(); CommentController controller = new CommentController(null, commentService, null, areaService); Assert.Null(controller.ListByArea(new Area() { Name = "test" })); }
public void ItemReturnsNullOnNotFoundArea() { FakeAreaService areaService = new FakeAreaService(); PostController controller = new PostController(null, null, areaService, null); OxiteModelItem <Post> result = controller.Item(new Area() { Name = "Test" }, null); Assert.Null(result); }
public void ItemReturnsNullOnNotFoundPost() { FakeAreaService areaService = new FakeAreaService(); FakePostService postService = new FakePostService(); areaService.StoredAreas.Add("test", new Area()); PostController controller = new PostController(areaService, postService, null, null, null); OxiteViewModelItem <Post> result = controller.Item(new PostAddress("test", "Some-Post"), null); Assert.Null(result); }
public void NewPostSetsCreatorToUser() { FakePostService postService = new FakePostService(); FakeAreaService areaService = new FakeAreaService(); FakeTagService tagService = new FakeTagService(); FakeUserService userService = new FakeUserService(); Guid areaID = Guid.NewGuid(); MetaWeblogAPI service = new MetaWeblogAPI(postService, areaService, userService, null, null); service.NewPost(areaID.ToString(), "test", "test", new Post(), false); Oxite.Model.Post newPost = postService.AddedPosts[0]; Assert.Equal("test", newPost.Creator.Name); }
public void ItemReturnsNullOnNotFoundPost() { FakeAreaService areaService = new FakeAreaService(); FakePostService postService = new FakePostService(); areaService.StoredAreas.Add("test", new Area()); PostController controller = new PostController(postService, null, areaService, null); OxiteModelItem <Post> result = controller.Item(new Area() { Name = "test" }, new Post()); Assert.Null(result); }
public void ListByPostReturnsNullOnBadPost() { FakeAreaService areaService = new FakeAreaService(); areaService.StoredAreas.Add("test", new Area()); FakePostService postService = new FakePostService(); CommentController controller = new CommentController(postService, null, areaService); Assert.Null(controller.ListByPost(new Area() { Name = "test" }, new Post() { Slug = "test" })); }
public void ListByAreaReturnsNullForInvalidArea() { FakePostService postService = new FakePostService(); FakeAreaService areaService = new FakeAreaService(); Area area = new Area() { Name = "test" }; PostController controller = new PostController(postService, null, areaService, null); controller.ControllerContext = new System.Web.Mvc.ControllerContext(new FakeHttpContext("~/"), new RouteData(), controller); OxiteModelList <Post> result = controller.ListByArea(null, 10, area, null); Assert.Null(result); }
public void NewPostAddsExcerptAsBodyShort() { FakePostService postService = new FakePostService(); FakeAreaService areaService = new FakeAreaService(); FakeTagService tagService = new FakeTagService(); FakeUserService userService = new FakeUserService(); Guid areaID = Guid.NewGuid(); MetaWeblogAPI service = new MetaWeblogAPI(postService, areaService, userService, null, null); Post newPost = new Post() { mt_excerpt = "Preview", title = "Test", description = "A Test", dateCreated = DateTime.Now, mt_basename = "test" }; service.NewPost(areaID.ToString(), "test", "test", newPost, false); Assert.Equal(newPost.mt_excerpt, postService.AddedPosts[0].BodyShort); }
public void NewPostSetsPublishDateToNullIfPublishFalse() { FakePostService postService = new FakePostService(); FakeAreaService areaService = new FakeAreaService(); FakeTagService tagService = new FakeTagService(); FakeUserService userService = new FakeUserService(); Guid areaID = Guid.NewGuid(); MetaWeblogAPI service = new MetaWeblogAPI(postService, areaService, userService, null, null); Post newPost = new Post() { title = "Test", description = "A Test", dateCreated = DateTime.Now, mt_basename = "test" }; service.NewPost(areaID.ToString(), "test", "test", newPost, false); Assert.Null(postService.AddedPosts[0].Published); }
public void ListByPostReturnsListOfComments() { FakePostService postService = new FakePostService(); FakeAreaService areaService = new FakeAreaService(); postService.AllComments.Add(new ParentAndChild <PostBase, Comment>() { Parent = new Post(), Child = new Comment() }); postService.AllComments.Add(new ParentAndChild <PostBase, Comment>() { Parent = new Post(), Child = new Comment() }); postService.AddedPosts.Add(new Post() { Slug = "test" }); areaService.StoredAreas.Add("test", new Area()); CommentController controller = new CommentController(postService, null, areaService) { ControllerContext = new System.Web.Mvc.ControllerContext() { RouteData = new System.Web.Routing.RouteData() } }; OxiteModelList <ParentAndChild <PostBase, Comment> > result = controller.ListByPost(new Area() { Name = "test" }, new Post() { Slug = "test" }); Assert.Equal(2, result.List.Count); Assert.Same(postService.AllComments[0].Child, result.List[0].Child); Assert.Same(postService.AllComments[1].Child, result.List[1].Child); Assert.Same(postService.AddedPosts[0], result.List[0].Parent); Assert.Same(postService.AddedPosts[0], result.List[1].Parent); }
public void ListByAreaSetsAreaOnModel() { FakePostService postService = new FakePostService(); FakeAreaService areaService = new FakeAreaService(); Area area = new Area() { Name = "test" }; areaService.StoredAreas.Add("test", area); PostController controller = new PostController(postService, null, areaService, null); controller.ControllerContext = new System.Web.Mvc.ControllerContext(new FakeHttpContext("~/"), new RouteData(), controller); OxiteModelList <Post> result = controller.ListByArea(null, 10, area, null); Assert.Equal(area.Name, result.Container.Name); }
public void NewPostSetsPublishDateIfPublishTrue() { FakePostService postService = new FakePostService(); FakeAreaService areaService = new FakeAreaService(); FakeTagService tagService = new FakeTagService(); FakeUserService userService = new FakeUserService(); Guid areaID = Guid.NewGuid(); areaService.StoredAreas.Add("test", new Oxite.Models.Area() { ID = areaID }); MetaWeblogAPI service = new MetaWeblogAPI(postService, areaService, userService, null, null); Post newPost = new Post() { title = "Test", description = "A Test", dateCreated = DateTime.Now, mt_basename = "test" }; service.NewPost(areaID.ToString(), "test", "test", newPost, true); Assert.True(DateTime.Today < postService.AddedPosts[0].Published); }
public void GetUsersBlogsReturnsAllAreasForValidUser() { FakeAreaService areaService = new FakeAreaService(); FakeUserService userService = new FakeUserService(); areaService.StoredAreas.Add("test1", new Oxite.Models.Area() { DisplayName = "Test One", ID = Guid.NewGuid() }); areaService.StoredAreas.Add("test2", new Oxite.Models.Area() { DisplayName = "Test Two", ID = Guid.NewGuid() }); MetaWeblogAPI service = new MetaWeblogAPI(null, areaService, userService, null, null); BlogInfo[] blogs = service.GetUsersBlogs(null, "test", "test"); Assert.Equal(2, blogs.Length); Assert.Contains(areaService.StoredAreas["test1"].ID.ToString(), blogs.Select(b => b.blogid)); Assert.Contains(areaService.StoredAreas["test2"].ID.ToString(), blogs.Select(b => b.blogid)); Assert.Contains(areaService.StoredAreas["test1"].DisplayName, blogs.Select(b => b.blogName)); Assert.Contains(areaService.StoredAreas["test2"].DisplayName, blogs.Select(b => b.blogName)); }