static void Main(string[] args) { IPostRepository postRepository = new PostDataAccess(); IUserRepository userRepository = new UserDataAccess(); ICommentRepository commentRepository = new CommentDataAccess(); var service = new UserService(userRepository, postRepository, commentRepository); var response = service.GetUserActiveRespose(1); foreach (var item in response) { Console.Write(item); } var service1 = new UserService(userRepository, postRepository, commentRepository); var comments = service1.GetUserComents(2); foreach (var item in comments) { Console.Write(item.Comment); } Console.ReadLine(); }
static void Main(string[] args) { IPostRepository postRepository = new PostDataAccess(); IUserRepository userRepository = new UserDataAccess(); ICommentRepository commentRepository = new CommentDataAccess(); var service = new UserService(userRepository, postRepository); // var response = service.GetUserActiveRespose(4); var commentService = new UserCommentsService(userRepository, postRepository, commentRepository); int user = 9; var userComments = commentService.GetUserComments(user); if (userComments.Comments.Count == 0) { Console.WriteLine($"User {user} has no comments"); } foreach (var c in userComments.Comments) { Console.WriteLine($"Comment for User: {userComments.User.Id},PostId: {c.PostId}, Body: {c.Text}"); } Console.ReadKey(); }
public static async Task <Post> Add(Post post, Account account) { CheckValid(post); post.Owner = account; return(await PostDataAccess.Add(post)); }
// GET: Reply public ActionResult AddReplyAction(int replyOfPost, string replyUser, string content, int hasPicture, string picturePath) { if (Request.Cookies["LoginUser"] == null) { return(Json("您未登录")); } content = SensitiveWordFilter.CheckValidity(content); ReplyDataAccess rda = new ReplyDataAccess(); Reply reply = new Reply(); reply.ReplyOfPost = replyOfPost; reply.ReplyUser = replyUser; reply.ReplyTime = DateTime.Now; new PostDataAccess().SetReplyCount(replyOfPost); int floor = new PostDataAccess().GetPostByID(replyOfPost).ReplyCount; reply.ReplyFloor = floor + 1; reply.ReplyContent = content; reply.HasPicture = hasPicture; reply.PicturePath = picturePath; bool addresult = rda.AddReply(reply); if (addresult) { new LogDataAccess().AddLog(replyUser, new UserDataAccess().GetUserByID(replyUser).NickName, "回复了《" + new PostDataAccess().GetPostByID(replyOfPost).Title + "》"); return(Json("success")); } else { return(Json("failed")); } }
public void TestEditPost_ValidData_Success() { var mockPostRepo = new MockPostRepo(); var mockPostValidator = new MockPostValidator(); var mockAuthorValidator = new MockAuthorValidator(); var postDataAccess = new PostDataAccess(mockPostRepo, mockPostValidator, new MockAuthorRepo(), mockAuthorValidator); var post = new Post("OriginalTitle", new Author("OriginalAuthor", 0), "OriginalBody"); var expectedPost = new Post("newTitle", new Author("newAuthor", 0), "newBody", post.Timestamp, post.PostID); var listOfPosts = new List <Post>() { post }; mockPostValidator.StubPostExists(true) .StubValidPost(true); mockPostRepo.StubGetAllPosts(listOfPosts) .StubTryEditPostBool(true) .StubTryEditPostResult(expectedPost); mockAuthorValidator.StubIsValidAuthor(true); var returnedPost = postDataAccess.EditPost(post); mockPostValidator.AssertPostExistsCalled(); mockPostRepo.AssertGetAllPostsCalled(); mockPostValidator.AssertIsValidPostCalled(); mockPostRepo.AssertTryEditPostCalled(); mockAuthorValidator.AssertIsValidAuthorCalled(); Assert.NotNull(returnedPost); AssertPostsEqual(expectedPost, returnedPost); }
static void Main(string[] args) { IPostRepository postRepository = new PostDataAccess(); IUserRepository userRepository = new UserDataAccess(); var service = new UserService(userRepository, postRepository); var response = service.GetUserActiveRespose(2); }
public void TestGetPostFromList_EmptyList() { var postDataAccess = new PostDataAccess(new MockPostRepo(), new MockPostValidator(), new MockAuthorRepo(), new MockAuthorValidator()); var listOfPosts = new List <Post>(); var returnedPost = postDataAccess.GetPostFromList(listOfPosts, Guid.NewGuid()); Assert.Null(returnedPost); }
public void PostDataAccessGet_True() { List <Post> posts = new List <Post>() { new Post() { id = 1, date = new DateTime(2020, 11, 20), imgURL = "", numberOfComments = 1, postContent = "test content 1", postPreviewContent = "preview 1", title = "Post 1" }, new Post() { id = 2, date = new DateTime(2020, 11, 20), imgURL = "/img1", numberOfComments = 1, postContent = "test content 2", postPreviewContent = "preview 2", title = "Post 2" } }; DataTable table1 = new DataTable(); table1.Columns.Add("Id", typeof(int)); table1.Columns.Add("date", typeof(DateTime)); table1.Columns.Add("imgURL", typeof(string)); table1.Columns.Add("numberOfComments", typeof(int)); table1.Columns.Add("postContent", typeof(string)); table1.Columns.Add("postPreviewContent", typeof(string)); table1.Columns.Add("title", typeof(string)); table1.Rows.Add("1", new DateTime(2020, 11, 20), "", "1", "test content 1", "preview 1", "Post 1"); table1.Rows.Add("2", new DateTime(2020, 11, 20), "/img1", "1", "test content 2", "preview 2", "Post 2"); Mock <IBaseDataAccess> mock = new Mock <IBaseDataAccess>(); mock.Setup(x => x.Get(It.IsAny <IDbCommand>())).Returns(table1); PostDataAccess postDataAccess = new PostDataAccess(mock.Object); List <Post> p = new List <Post>(); p = postDataAccess.GetPost(); mock.Verify((m => m.Get(It.IsAny <IDbCommand>())), Times.Once()); Assert.Equal(2, posts.Count); Assert.Equal(posts.Count, p.Count); Assert.True(posts[0].Equals(p[0])); Assert.True(posts[1].Equals(p[1])); }
public void TestSearchBy_InvalidData_Failure() { var mockPostRepo = new MockPostRepo(); var mockPostValidator = new MockPostValidator(); var mockAuthorRepo = new MockAuthorRepo(); var mockAuthorValidator = new MockAuthorValidator(); var postDataAccess = new PostDataAccess(mockPostRepo, mockPostValidator, mockAuthorRepo, mockAuthorValidator); //TODO }
public static Post Get(int id) { var post = PostDataAccess.Get(id); if (post == null) { throw new Error404NotFound <Post>(id); } return(post); }
public void TestAddPost_InvalidPost_Failure(string title, string authorName, string body) { var mockPostValidator = new MockPostValidator(); var postDataAccess = new PostDataAccess(new MockPostRepo(), mockPostValidator, new MockAuthorRepo(), new MockAuthorValidator()); var post = new Post(title, new Author(authorName, 0), body); mockPostValidator.StubValidPost(false); Assert.Throws <ArgumentException>(() => postDataAccess.AddPost(post)); mockPostValidator.AssertIsValidPostCalled(); }
public void TestDeletePost_InvalidPost_Failure() { var mockPostValidator = new MockPostValidator(); var postDataAccess = new PostDataAccess(new MockPostRepo(), mockPostValidator, new MockAuthorRepo(), new MockAuthorValidator()); var post = new Post("", new Author("", 0), ""); mockPostValidator.StubPostExists(false); Assert.Throws <ArgumentException>(() => postDataAccess.DeletePost(post)); mockPostValidator.AssertPostExistsCalled(); }
public static async Task <Post> Update(Post post, Account account) { var postInDatabase = post.GetManaged; if (!postInDatabase.IsOwner(account)) { throw new Error403Forbidden <Post>("Bạn không có quyền chỉnh sửa bài viết này"); } CheckValid(post); return(await PostDataAccess.Update(postInDatabase, post)); }
public static async Task Delete(int id, Account account) { var post = Get(id); var conditionOfAdmin = account.Access == EnumAccess.Administrator; var conditionOfMod = post.IsOwner(account); if (!(conditionOfAdmin || conditionOfMod)) { throw new Error403Forbidden <Post>("Bạn không có quyền xóa bài viết này"); } await PostDataAccess.Delete(post); }
public void TestEditPost_PostExistsButInvalidPost() { var mockPostValidator = new MockPostValidator(); var postDataAccess = new PostDataAccess(new MockPostRepo(), mockPostValidator, new MockAuthorRepo(), new MockAuthorValidator()); var post = new Post("", new Author("", 0), ""); mockPostValidator.StubPostExists(true) .StubValidPost(false); Assert.Throws <ArgumentException>(() => postDataAccess.EditPost(post)); mockPostValidator.AssertPostExistsCalled(); mockPostValidator.AssertIsValidPostCalled(); }
static void Main(string[] args) { IPostRepository postRepository = new PostDataAccess(); IUserRepository userRepository = new UserDataAccess(); ICommentRepository commentRepository = new CommentDataAccess(); //var service = new UserService(userRepository, postRepository); //var response = service.GetUserActiveRespose(2); var serviceComments = new UserCommentService(userRepository, commentRepository); var userComments = serviceComments.UserComments(1); }
public void TestGetPostFromList_invalidID() { var nonExistentPostID = "00000000-0000-0000-0000-000000000000"; var postDataAccess = new PostDataAccess(new MockPostRepo(), new MockPostValidator(), new MockAuthorRepo(), new MockAuthorValidator()); var post = new Post("", new Author("", 0), ""); var listOfPosts = new List <Post>() { post }; var returnedPost = postDataAccess.GetPostFromList(listOfPosts, Guid.Parse(nonExistentPostID)); Assert.Null(returnedPost); }
public void TestGetPostFromList_ValidID() { var postDataAccess = new PostDataAccess(new MockPostRepo(), new MockPostValidator(), new MockAuthorRepo(), new MockAuthorValidator()); var post = new Post("", new Author("", 0), ""); var listOfPosts = new List <Post>() { post }; var returnedPost = postDataAccess.GetPostFromList(listOfPosts, post.PostID); Assert.NotNull(returnedPost); AssertPostsEqual(post, returnedPost); }
public void TestGetPostById_InvalidID_Success() { var nonExistentPostID = "33b9def6-f7db-4120-9f00-6137bbeeb8d1"; var postDataAccess = new PostDataAccess(new MockPostRepo(), new MockPostValidator(), new MockAuthorRepo(), new MockAuthorValidator()); var post = new Post("", new Author("", 0), "", DateTime.Now, Guid.Parse("bb2da75b-3bec-4d92-ba7e-4cbdf7b50759")); var listOfPosts = new List <Post>(); listOfPosts.Add(post); new MockPostRepo().StubGetAllPosts(listOfPosts); var returnedPost = postDataAccess.GetPostById(Guid.Parse(nonExistentPostID)); new MockPostRepo().AssertGetAllPostsCalled(); Assert.Null(returnedPost); }
public ActionResult DeletePostByID(string post_id) { PostDataAccess pda = new PostDataAccess(); var deleteresult = pda.DeletePostByID(post_id); if (deleteresult) { return(Json("success")); } else { return(Json("error")); } }
public void TestGetPostCount() { var postDataAccess = new PostDataAccess(new MockPostRepo(), new MockPostValidator(), new MockAuthorRepo(), new MockAuthorValidator()); var post = new Post("", new Author("", 0), ""); var listOfPosts = new List <Post>() { post }; new MockPostRepo().StubGetAllPosts(listOfPosts); var returnedCount = postDataAccess.GetPostCount(); new MockPostRepo().AssertGetAllPostsCalled(); Assert.Equal(listOfPosts.Count, returnedCount); }
public void TestGetPostById_ValidID_Success() { var mockPostRepo = new MockPostRepo(); var postDataAccess = new PostDataAccess(mockPostRepo, new MockPostValidator(), new MockAuthorRepo(), new MockAuthorValidator()); var post = new Post("", new Author("", 0), ""); var listOfPosts = new List <Post>() { post }; mockPostRepo.StubGetAllPosts(listOfPosts); var returnedPost = postDataAccess.GetPostById(post.PostID); mockPostRepo.AssertGetAllPostsCalled(); Assert.NotNull(returnedPost); AssertPostsEqual(post, returnedPost); }
public ActionResult GetAllPostOfStudent() { //var userInfo = dataAccess.GetUserInfoByID(2); var userInfo = (UserLoginModel)Session[Helper.Commons.USER_SEESION]; var list = new PostDataAccess().GetAllPostByUser(userInfo.UserID); // hard code var res = list.Select(x => new SubmittionModel() { Sub_ID = x.Sub_ID, Sub_Title = x.Sub_Title, Department_ID = userInfo.Department_ID, Department_Name = userInfo.Department, Description = x.Sub_Description, Created_Date = x.Created_Date.ToString() }).ToList(); return(Json(res.OrderBy(x => x.Created_Date), JsonRequestBehavior.AllowGet)); }
static void Main(string[] args) { IPostRepository postRepository = new PostDataAccess(); IUserRepository userRepository = new UserDataAccess(); ICommentRepository commentRepository = new CommentDataAccess(); var service = new UserService(userRepository, postRepository); var commentService = new CommentService(userRepository, postRepository, commentRepository); var response = service.GetUserActiveRespose(2); var userComments = commentService.GetUserComments(1); foreach (var c in userComments.Comments) { Console.WriteLine(c.Text); } Console.ReadKey(); }
public void TestGetListOfPostsByAuthorID() { var mockPostRepo = new MockPostRepo(); var postDataAccess = new PostDataAccess(mockPostRepo, new MockPostValidator(), new MockAuthorRepo(), new MockAuthorValidator()); var postNotByAuthor = new Post("", new Author("NotAuthor", 1), ""); var postByAuthor = new Post("", new Author("Author", 0), ""); var listOfPosts = new List <Post>() { postByAuthor }; mockPostRepo.StubGetAllPostsByAuthor(listOfPosts); var returnedListOfPosts = postDataAccess.GetListOfPostsByAuthorID(0); mockPostRepo.AssertGetAllPostsByAuthorCalled(); AssertPostsEqual(postByAuthor, returnedListOfPosts[0]); }
public void TestAddPost_ValidData_Success() { var mockPostRepo = new MockPostRepo(); var mockPostValidator = new MockPostValidator(); var mockAuthorValidator = new MockAuthorValidator(); var postDataAccess = new PostDataAccess(mockPostRepo, mockPostValidator, new MockAuthorRepo(), mockAuthorValidator); var author = new Author("author", 0); var post = new Post("title", author, "body"); mockPostValidator.StubValidPost(true); mockPostRepo.StubTryAddPostResult(post) .StubTryAddPostBool(true); mockAuthorValidator.StubIsValidAuthor(true); var returnedPost = postDataAccess.AddPost(post); mockPostValidator.AssertIsValidPostCalled(); mockPostRepo.AssertTryAddPostCalled(); mockAuthorValidator.AssertIsValidAuthorCalled(); Assert.NotNull(returnedPost); AssertPostsEqual(post, returnedPost); }
public void TestDeletePost_ValidData_Success() { var mockPostRepo = new MockPostRepo(); var mockPostValidator = new MockPostValidator(); var postDataAccess = new PostDataAccess(mockPostRepo, mockPostValidator, new MockAuthorRepo(), new MockAuthorValidator()); var post = new Post("", new Author("", 0), ""); var listOfPosts = new List <Post>(); listOfPosts.Add(post); mockPostValidator.StubPostExists(true); mockPostRepo.StubGetAllPosts(listOfPosts) .StubTryDeletePostBool(true) .StubTryDeletePostResult(post); var returnedPost = postDataAccess.DeletePost(post); mockPostValidator.AssertPostExistsCalled(); mockPostRepo.AssertGetAllPostsCalled(); mockPostRepo.AssertTryDeletePostCalled(); Assert.NotNull(returnedPost); AssertPostsEqual(post, returnedPost); }
public void TestGetSortedListOfPosts(PostComponent postComp) { var mockPostRepo = new MockPostRepo(); var postDataAccess = new PostDataAccess(mockPostRepo, new MockPostValidator(), new MockAuthorRepo(), new MockAuthorValidator()); var aPost = new Post("AAA", new Author("AAA", 0), "AAA", Convert.ToDateTime("1111-01-01T11:11:11.1111111Z"), Guid.Parse("11111111-1111-1111-1111-111111111111")); var bPost = new Post("BBB", new Author("BBB", 1), "BBB", Convert.ToDateTime("1112-02-02T12:22:22.2222222Z"), Guid.Parse("22222222-2222-2222-2222-222222222222")); var cPost = new Post("CCC", new Author("CCC", 2), "CCC", Convert.ToDateTime("1113-03-03T13:33:33.3333333Z"), Guid.Parse("33333333-3333-3333-3333-333333333333")); var listOfPosts = new List <Post>() { cPost, aPost, bPost }; mockPostRepo.StubGetAllPosts(listOfPosts); var returnedListOfPosts = postDataAccess.GetSortedListOfPosts(postComp); mockPostRepo.AssertGetAllPostsCalled(); Assert.Equal(listOfPosts.Count, returnedListOfPosts.Count); AssertPostsEqual(aPost, returnedListOfPosts[0]); AssertPostsEqual(bPost, returnedListOfPosts[1]); AssertPostsEqual(cPost, returnedListOfPosts[2]); }
public void PostDataAccessAdd_True() { Post post = new Post() { id = 1, date = DateTime.Now, imgURL = "", numberOfComments = 1, postContent = "test content 1", postPreviewContent = "preview 1", title = "Post 1" }; var baseDataAccessMock = new Mock <IBaseDataAccess>(); PostDataAccess postDataAccess = new PostDataAccess(baseDataAccessMock.Object); baseDataAccessMock.Setup(m => m.Add(It.Is <SqlCommand>(c => c.CommandType.Equals(CommandType.StoredProcedure) && c.Parameters["@date"].Value.Equals(post.date) && c.Parameters["@title"].Value.Equals(post.title) && c.Parameters["@postPreviewContent"].Value.Equals(post.postPreviewContent) && c.Parameters["@postContent"].Value.Equals(post.postContent) && c.Parameters["@imgURL"].Value.Equals(post.imgURL) && c.Parameters["@numberOfComments"].Value.Equals(post.numberOfComments) ))).Returns(1); int id = postDataAccess.AddPost(post); baseDataAccessMock.Verify((m => m.Add(It.Is <SqlCommand>(c => c.CommandType.Equals(CommandType.StoredProcedure) && c.Parameters["@date"].Value.Equals(post.date) && c.Parameters["@title"].Value.Equals(post.title) && c.Parameters["@postPreviewContent"].Value.Equals(post.postPreviewContent) && c.Parameters["@postContent"].Value.Equals(post.postContent) && c.Parameters["@imgURL"].Value.Equals(post.imgURL) && c.Parameters["@numberOfComments"].Value.Equals(post.numberOfComments) ))), Times.Once()); Assert.Equal(1, id); }
static void Main(string[] args) { IPostRepository postRepository = new PostDataAccess(); IUserRepository userRepository = new UserDataAccess(); var service = new UserService(userRepository, postRepository); var response = service.GetUserActiveRespose(2); CommentDataAccess comment = new CommentDataAccess(); var lista = comment.GetCommentsByUserId(8); foreach (var item in lista) { Console.WriteLine($" id : {item.Id} text : {item.Text}"); } Console.ReadLine(); }