• Y
  • List All
  • Feedback
    • This Project
    • All Projects
Profile Account Log out
  • Favorite
  • Project
  • Recent History
Loading...
  • Log in
  • Sign up
kadrians / Testing_for_YONA star
  • Project homeH
  • CodeC
  • IssueI 1
  • Pull requestP
  • Review R
  • MilestoneM
  • BoardB 2
  • Files
  • Commit
  • Branches
Testing_for_YONAsourcetestmodelsCommentThreadTest.java
Download as .zip file
File name
Commit message
Commit date
bin
Yona 1.16.0 Upload
02-04
lib
Yona 1.16.0 Upload
02-04
share/doc/api
Yona 1.16.0 Upload
02-04
source
Source Code Upload
02-04
README.md
Yona 1.16.0 Upload
02-04
File name
Commit message
Commit date
app
Source Code Upload
02-04
conf
Source Code Upload
02-04
docs
Source Code Upload
02-04
lib
Source Code Upload
02-04
project
Source Code Upload
02-04
public
Source Code Upload
02-04
support-script
Source Code Upload
02-04
test
Source Code Upload
02-04
.gitignore
Source Code Upload
02-04
.mailmap
Source Code Upload
02-04
.travis.yml
Source Code Upload
02-04
AUTHORS
Source Code Upload
02-04
LICENSE
Source Code Upload
02-04
NOTICE
Source Code Upload
02-04
README.md
Source Code Upload
02-04
build.sbt
Source Code Upload
02-04
dev.sh
Source Code Upload
02-04
dist.sh
Source Code Upload
02-04
is-alive-bot.sh
Source Code Upload
02-04
minify-js.sh
Source Code Upload
02-04
restart.sh
Source Code Upload
02-04
File name
Commit message
Commit date
actions/support
Source Code Upload
02-04
actors
Source Code Upload
02-04
controllers
Source Code Upload
02-04
mailbox
Source Code Upload
02-04
models
Source Code Upload
02-04
playRepository
Source Code Upload
02-04
support
Source Code Upload
02-04
utils
Source Code Upload
02-04
validation
Source Code Upload
02-04
File name
Commit message
Commit date
support
Source Code Upload
02-04
AttachmentTest.java
Source Code Upload
02-04
CodeCommentThreadTest.java
Source Code Upload
02-04
CommentTest.java
Source Code Upload
02-04
CommentThreadTest.java
Source Code Upload
02-04
CommitCommentTest.java
Source Code Upload
02-04
FileDiffTest.java
Source Code Upload
02-04
IssueTest.java
Source Code Upload
02-04
MilestoneTest.java
Source Code Upload
02-04
ModelTest.java
Source Code Upload
02-04
NotificationEventTest.java
Source Code Upload
02-04
NotificationMailTest.java
Source Code Upload
02-04
OrganizationTest.java
Source Code Upload
02-04
OrganizationUserTest.java
Source Code Upload
02-04
PasswordResetTest.java
Source Code Upload
02-04
PostingTest.java
Source Code Upload
02-04
ProjectTest.java
Source Code Upload
02-04
ProjectUserTest.java
Source Code Upload
02-04
PullRequestEventTest.java
Source Code Upload
02-04
PullRequestTest.java
Source Code Upload
02-04
RecentlyVisitedProjectsTest.java
Source Code Upload
02-04
ReviewCommentTest.java
Source Code Upload
02-04
RoleTest.java
Source Code Upload
02-04
SearchResultTests.java
Source Code Upload
02-04
SearchTests.java
Source Code Upload
02-04
TimelineItemTest.java
Source Code Upload
02-04
UserTest.java
Source Code Upload
02-04
WatchTest.java
Source Code Upload
02-04
Nell 02-04 2600fe6 Source Code Upload UNIX
Raw Open in browser Change history
/** * Yobi, Project Hosting SW * * Copyright 2013 NAVER Corp. * http://yobi.io * * @Author Keesun Baik * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package models; import org.apache.shiro.util.ThreadState; import org.junit.After; import org.junit.Test; import org.junit.Before; import utils.JodaDateUtil; import utils.AccessControl; import models.enumeration.Operation; import models.enumeration.ProjectScope; import java.util.ArrayList; import java.util.List; import static org.fest.assertions.Assertions.assertThat; /** * @author Keesun Baik */ public class CommentThreadTest extends ModelTest<CommentThread> { private User admin; private User manager; private User member; private User author; private User nonmember; private User anonymous; private Project project; private SimpleCommentThread thread; private List<Long> threadIds; String commitId = "123123"; @Before public void before() { project = Project.findByOwnerAndProjectName("yobi", "projectYobi"); admin = User.findByLoginId("admin"); manager = User.findByLoginId("yobi"); member = User.findByLoginId("laziel"); author = User.findByLoginId("nori"); nonmember = User.findByLoginId("doortts"); anonymous = new NullUser(); thread = new SimpleCommentThread(); thread.project = project; thread.author = new UserIdent(author); thread.state = SimpleCommentThread.ThreadState.OPEN; thread.save(); assertThat(this.admin.isSiteManager()).describedAs("admin is Site Admin.").isTrue(); assertThat(ProjectUser.isManager(manager.id, project.id)).describedAs("manager is a manager").isTrue(); assertThat(ProjectUser.isManager(member.id, project.id)).describedAs("member is not a manager").isFalse(); assertThat(ProjectUser.isMember(member.id, project.id)).describedAs("member is a member").isTrue(); assertThat(ProjectUser.isMember(author.id, project.id)).describedAs("author is not a member").isFalse(); assertThat(project.projectScope).isEqualTo(ProjectScope.PUBLIC); threadIds = addTestData(commitId); } @After public void after() { thread.delete(); for(Long id : threadIds) { CommentThread.find.byId(id).delete(); } } @Test public void findByCommitId() { // when List<CommentThread> threadList = CommentThread.findByCommitId(commitId); // then assertThat(threadList.size()).isEqualTo(2); assertThat(threadList.get(0).createdDate).isEqualTo(JodaDateUtil.before(2)); assertThat(threadList.get(1).createdDate).isEqualTo(JodaDateUtil.before(3)); } @Test public void findByCommitIdAndState() { // when and then List<CommentThread> threadList = CommentThread.findByCommitIdAndState(commitId, CommentThread.ThreadState.OPEN); assertThat(threadList.get(0).id).isEqualTo(threadIds.get(0)); // when and then threadList = CommentThread.findByCommitIdAndState(commitId, CommentThread.ThreadState.CLOSED); assertThat(threadList.get(0).id).isEqualTo(threadIds.get(1)); } /** * {@code commitId}를 가지는 {@link models.NonRangedCodeCommentThread} 한 개 저장. * - state: OPEN * - createDate: 3일전 * {@code commitId}를 가지는 {@link models.CodeCommentThread} 한 개 저장. * - state: CLOSED * - path: "readme.md" * - createdDate: 2일전 * 123321을 커밋 ID로 가지는 {@link models.NonRangedCodeCommentThread} 한 개 저장. * - state: OPEN * - createdDate: 1일전 * * @param commitId */ private List<Long> addTestData(String commitId) { List<Long> threadIds = new ArrayList<>(); NonRangedCodeCommentThread thread1 = new NonRangedCodeCommentThread(); thread1.project = project; thread1.commitId = commitId; thread1.state = CommentThread.ThreadState.OPEN; thread1.createdDate = JodaDateUtil.before(3); thread1.save(); threadIds.add(thread1.id); CodeCommentThread thread2 = new CodeCommentThread(); thread2.project = project; thread2.commitId = commitId; thread2.state = CommentThread.ThreadState.CLOSED; CodeRange codeRange = new CodeRange(); codeRange.path = "readme.md"; codeRange.startColumn = 0; codeRange.startLine = 1; codeRange.startSide = CodeRange.Side.A; codeRange.endColumn = 100; codeRange.endLine = 10; codeRange.endSide = CodeRange.Side.B; thread2.codeRange = codeRange; thread2.createdDate = JodaDateUtil.before(2); thread2.save(); threadIds.add(thread2.id); NonRangedCodeCommentThread thread3 = new NonRangedCodeCommentThread(); thread3.project = project; thread3.commitId = "123321"; thread3.state = CommentThread.ThreadState.OPEN; thread3.createdDate = JodaDateUtil.before(1); thread3.save(); threadIds.add(thread3.id); return threadIds; } @Test public void reopenByAuthor() { assertThat(AccessControl.isAllowed(author, thread.asResource(), Operation.REOPEN)).isTrue(); } @Test public void reopenBySiteAdmin() { assertThat(AccessControl.isAllowed(admin, thread.asResource(), Operation.REOPEN)).isTrue(); } public void reopenByManager() { assertThat(AccessControl.isAllowed(member, thread.asResource(), Operation.REOPEN)).isTrue(); } @Test public void reopenByMember() { assertThat(AccessControl.isAllowed(member, thread.asResource(), Operation.REOPEN)).isTrue(); } @Test public void reopenByNonmember() { assertThat(AccessControl.isAllowed(nonmember, thread.asResource(), Operation.REOPEN)).isFalse(); } @Test public void reopenByAnonymous() { assertThat(AccessControl.isAllowed(anonymous, thread.asResource(), Operation.REOPEN)).isFalse(); } @Test public void closeByAuthor() { assertThat(AccessControl.isAllowed(author, thread.asResource(), Operation.CLOSE)).isTrue(); } @Test public void closeBySiteAdmin() { assertThat(AccessControl.isAllowed(admin, thread.asResource(), Operation.CLOSE)).isTrue(); } @Test public void closeByManager() { assertThat(AccessControl.isAllowed(member, thread.asResource(), Operation.CLOSE)).isTrue(); } @Test public void closeByMember() { assertThat(AccessControl.isAllowed(member, thread.asResource(), Operation.CLOSE)).isTrue(); } @Test public void closeByNonmember() { assertThat(AccessControl.isAllowed(nonmember, thread.asResource(), Operation.CLOSE)).isFalse(); } @Test public void closeByAnonymous() { assertThat(AccessControl.isAllowed(anonymous, thread.asResource(), Operation.CLOSE)).isFalse(); } }

          
        
    
    
Copyright Yona authors & © NAVER Corp. & NAVER LABS Supported by NAVER CLOUD PLATFORM

or
login with Google Sign in with Google
Reset password | Sign up