package in.partake.controller.api.event;
import in.partake.controller.api.APIControllerTest;
import in.partake.model.fixture.TestDataProvider;
import in.partake.resource.UserErrorCode;
import org.junit.Test;
import in.partake.controller.ActionProxy;
public class RemoveCommentAPITest extends APIControllerTest {
@Test
public void testToRemoveOwnComment() throws Exception {
ActionProxy proxy = getActionProxy(POST, "/api/event/removeComment");
addFormParameter(proxy, "commentId", TestDataProvider.COMMENTOR_COMMENT_ID);
addValidSessionTokenToParameter(proxy);
loginAs(proxy, TestDataProvider.EVENT_COMMENTOR_ID);
proxy.execute();
assertResultOK(proxy);
}
@Test
public void testToRemoveInvalidComment() throws Exception {
ActionProxy proxy = getActionProxy(POST, "/api/event/removeComment");
addFormParameter(proxy, "commentId", TestDataProvider.INVALID_COMMENT_ID);
addValidSessionTokenToParameter(proxy);
loginAs(proxy, TestDataProvider.EVENT_COMMENTOR_ID);
proxy.execute();
assertResultInvalid(proxy, UserErrorCode.INVALID_COMMENT_ID);
}
@Test
public void testToRemoveCommentByEventOwner() throws Exception {
ActionProxy proxy = getActionProxy(POST, "/api/event/removeComment");
addFormParameter(proxy, "commentId", TestDataProvider.COMMENTOR_COMMENT_ID);
addValidSessionTokenToParameter(proxy);
loginAs(proxy, TestDataProvider.EVENT_OWNER_ID);
proxy.execute();
assertResultOK(proxy);
}
@Test
public void testToRemoveCommentByEventEditor() throws Exception {
ActionProxy proxy = getActionProxy(POST, "/api/event/removeComment");
addFormParameter(proxy, "commentId", TestDataProvider.COMMENTOR_COMMENT_ID);
addValidSessionTokenToParameter(proxy);
loginAs(proxy, TestDataProvider.EVENT_EDITOR_ID);
proxy.execute();
assertResultOK(proxy);
}
@Test
public void testToRemoveCommentByOtherOne() throws Exception {
ActionProxy proxy = getActionProxy(POST, "/api/event/removeComment");
addFormParameter(proxy, "commentId", TestDataProvider.COMMENTOR_COMMENT_ID);
addValidSessionTokenToParameter(proxy);
loginAs(proxy, TestDataProvider.EVENT_UNRELATED_USER_ID);
proxy.execute();
assertResultForbidden(proxy);
}
@Test
public void testToRemoveCommentWithoutLogin() throws Exception {
ActionProxy proxy = getActionProxy(POST, "/api/event/removeComment");
addFormParameter(proxy, "commentId", TestDataProvider.COMMENTOR_COMMENT_ID);
addValidSessionTokenToParameter(proxy);
proxy.execute();
assertResultLoginRequired(proxy);
}
@Test
public void testToRemoveCommentWithoutValidSessionToken() throws Exception {
ActionProxy proxy = getActionProxy(POST, "/api/event/removeComment");
addFormParameter(proxy, "commentId", TestDataProvider.COMMENTOR_COMMENT_ID);
loginAs(proxy, TestDataProvider.EVENT_COMMENTOR_ID);
proxy.execute();
assertResultInvalid(proxy, UserErrorCode.INVALID_SECURITY_CSRF);
}
}