• 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_YONAsourcetestcontrollersapiIssueApiNewIssueCommentTest.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
api
Source Code Upload
02-04
ApplicationTest.java
Source Code Upload
02-04
CommentAppTest.java
Source Code Upload
02-04
EnrollProjectAppTest.java
Source Code Upload
02-04
ImportAppTest.java
Source Code Upload
02-04
IssueAppTest.java
Source Code Upload
02-04
MarkdownAppTest.java
Source Code Upload
02-04
PasswordResetAppTest.java
Source Code Upload
02-04
ProjectAppTest.java
Source Code Upload
02-04
PullRequestAppTest.java
Source Code Upload
02-04
ReviewThreadAppTest.java
Source Code Upload
02-04
SiteAppTest.java
Source Code Upload
02-04
UserAppTest.java
Source Code Upload
02-04
WatchProjectAppTest.java
Source Code Upload
02-04
File name
Commit message
Commit date
IssueApiGetIssueTest.java
Source Code Upload
02-04
IssueApiNewIssueCommentTest.java
Source Code Upload
02-04
IssueApiUpdateIssueCommentTest.java
Source Code Upload
02-04
IssueApiUpdateIssueTest.java
Source Code Upload
02-04
UserApiGetIssuesByUserTest.java
Source Code Upload
02-04
Nell 02-04 2600fe6 Source Code Upload UNIX
Raw Open in browser Change history
package controllers.api; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.node.ObjectNode; import models.Issue; import models.Project; import models.User; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mockito; import org.powermock.api.mockito.PowerMockito; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.junit4.PowerMockRunner; import play.libs.Json; import play.mvc.Http; import play.mvc.Result; import play.test.FakeApplication; import play.test.Helpers; import utils.JodaDateUtil; import static org.fest.assertions.Assertions.assertThat; import static play.libs.Json.toJson; import static play.mvc.Results.created; import static play.test.Helpers.fakeRequest; import static play.test.Helpers.*; @RunWith(PowerMockRunner.class) @PrepareForTest({UserApi.class, Project.class, Issue.class, IssueApi.class}) public class IssueApiNewIssueCommentTest { protected static FakeApplication app; private static final String OWNER = "p.mj"; private static final String PROJECT_NAME = "dev"; private static final long NUMBER = 10; private static final String COMMENT = "new comment"; private static final String TOKEN = "abc9F2AAL+3d1FbSyJqO2bxX6QcFLBLNWTfOI07N00k="; @BeforeClass public static void beforeClass() { app = support.Helpers.makeTestApplication(); Helpers.start(app); } @Before public void before() throws Exception { PowerMockito.spy(UserApi.class); PowerMockito.spy(Project.class); PowerMockito.spy(Issue.class); PowerMockito.spy(IssueApi.class); } @Test public void requestBodyIsNull_returnBadRequestError() throws Exception { // GIVEN String headerValue = "token " + TOKEN; // WHEN Result result = callAction( routes.ref.IssueApi.newIssueComment(OWNER, PROJECT_NAME, NUMBER), fakeRequest().withHeader(Http.HeaderNames.AUTHORIZATION, headerValue) ); // THEN assertThat(status(result)).isEqualTo(BAD_REQUEST); assertThat(contentAsString(result)).isEqualTo("Expecting Json data"); } @Test public void tokenIsEmpty_returnUnauthorizedError() throws Exception { // GIVEN String headerValue = "token "; ObjectNode requestBody = Json.newObject(); requestBody.put("comment", COMMENT); Project project = new Project(); Issue issue = new Issue(); PowerMockito.doReturn(false).when(UserApi.class, "isAuthored", Mockito.any()); PowerMockito.doReturn(project).when(Project.class, "findByOwnerAndProjectName", Mockito.anyString(), Mockito.anyString()); PowerMockito.doReturn(issue).when(Issue.class, "findByNumber", Mockito.any(), Mockito.anyLong()); // WHEN Result result = callAction( routes.ref.IssueApi.newIssueComment(OWNER, PROJECT_NAME, NUMBER), fakeRequest().withHeader(Http.HeaderNames.AUTHORIZATION, headerValue).withJsonBody(requestBody) ); // THEN assertThat(status(result)).isEqualTo(UNAUTHORIZED); assertThat(contentAsString(result)).isEqualTo("{\"message\":\"unauthorized request\"}"); } @Test public void userByTokenAndIssueExist_returnIssueComment() throws Exception { // GIVEN String headerValue = "token " + TOKEN; ObjectNode requestBody = Json.newObject(); requestBody.put("comment", COMMENT); Project project = new Project(); Issue issue = new Issue(); User user = new User(); JsonNode expected = getResultJsonNodeByToken(COMMENT); PowerMockito.doReturn(true).when(UserApi.class, "isAuthored", Mockito.any()); PowerMockito.doReturn(project).when(Project.class, "findByOwnerAndProjectName", Mockito.anyString(), Mockito.anyString()); PowerMockito.doReturn(issue).when(Issue.class, "findByNumber", Mockito.any(), Mockito.anyLong()); PowerMockito.doReturn(user).when(UserApi.class, "getAuthorizedUser", Mockito.any()); PowerMockito.doReturn(created(expected)).when(IssueApi.class, "createCommentUsingToken", Mockito.any(), Mockito.any(), Mockito.anyString()); // WHEN Result result = callAction( routes.ref.IssueApi.newIssueComment(OWNER, PROJECT_NAME, NUMBER), fakeRequest().withHeader(Http.HeaderNames.AUTHORIZATION, headerValue).withJsonBody(requestBody) ); // THEN assertThat(status(result)).isEqualTo(CREATED); assertThat(contentAsString(result)).contains("result"); } @Test public void userAndIssueExist_returnIssueComment() throws Exception { // GIVEN ObjectNode requestBody = Json.newObject(); requestBody.put("comment", COMMENT); Project project = new Project(); Issue issue = new Issue(); JsonNode expected = getResultJsonNode(); PowerMockito.doReturn(true).when(UserApi.class, "isAuthored", Mockito.any()); PowerMockito.doReturn(project).when(Project.class, "findByOwnerAndProjectName", Mockito.anyString(), Mockito.anyString()); PowerMockito.doReturn(issue).when(Issue.class, "findByNumber", Mockito.any(), Mockito.anyLong()); PowerMockito.doReturn(created(expected)).when(IssueApi.class, "createCommentByUser", Mockito.any(), Mockito.any(), Mockito.any()); // WHEN Result result = callAction( routes.ref.IssueApi.newIssueComment(OWNER, PROJECT_NAME, NUMBER), fakeRequest().withJsonBody(requestBody) ); // THEN assertThat(status(result)).isEqualTo(CREATED); assertThat(contentAsString(result)).contains("status"); } private JsonNode getResultJsonNodeByToken(String comment) { ObjectNode result = Json.newObject(); ObjectNode basicNode = Json.newObject(); basicNode.put("id", 1); basicNode.put("contents", comment); basicNode.put("createdDate", JodaDateUtil.now().toString()); ObjectNode authorNode = Json.newObject(); authorNode.put("id", 2); authorNode.put("loginId", "p.mj"); authorNode.put("name", "박미정"); basicNode.set("author", toJson(authorNode)); result.set("result", toJson(basicNode)); return result; } private JsonNode getResultJsonNode() { ObjectNode result = Json.newObject(); result.put("status", 201); result.put("location", "path"); return result; } }

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

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