Package in.partake.controller.api.event

Source Code of in.partake.controller.api.event.PostCommentAPITest

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 PostCommentAPITest extends APIControllerTest {

    @Test
    public void testToCommentByOwner() throws Exception {
        ActionProxy proxy = getActionProxy(POST, "/api/event/postComment");
        loginAs(proxy, TestDataProvider.EVENT_OWNER_ID);

        addValidSessionTokenToParameter(proxy);
        addFormParameter(proxy, "eventId", TestDataProvider.DEFAULT_EVENT_ID);
        addFormParameter(proxy, "comment", "comment");

        proxy.execute();
        assertResultOK(proxy);
    }

    @Test
    public void testToCommentByUnrelatedUser() throws Exception {
        ActionProxy proxy = getActionProxy(POST, "/api/event/postComment");
        loginAs(proxy, TestDataProvider.EVENT_UNRELATED_USER_ID);

        addValidSessionTokenToParameter(proxy);
        addFormParameter(proxy, "eventId", TestDataProvider.DEFAULT_EVENT_ID);
        addFormParameter(proxy, "comment", "comment");

        proxy.execute();
        assertResultOK(proxy);
    }

    @Test
    public void testToCommentWithoutLogin() throws Exception {
        ActionProxy proxy = getActionProxy(POST, "/api/event/postComment");

        addValidSessionTokenToParameter(proxy);
        addFormParameter(proxy, "eventId", TestDataProvider.DEFAULT_EVENT_ID);
        addFormParameter(proxy, "comment", "comment");

        proxy.execute();
        assertResultLoginRequired(proxy);
    }

    @Test
    public void testToCommentWithInvalidSessionToken() throws Exception {
        ActionProxy proxy = getActionProxy(POST, "/api/event/postComment");
        loginAs(proxy, TestDataProvider.EVENT_OWNER_ID);

        addInvalidSessionTokenToParameter(proxy);
        addFormParameter(proxy, "eventId", TestDataProvider.DEFAULT_EVENT_ID);
        addFormParameter(proxy, "comment", "comment");

        proxy.execute();
        assertResultInvalid(proxy, UserErrorCode.INVALID_SECURITY_CSRF);
    }

    @Test
    public void testToCommentWithInvalidEventId() throws Exception {
        ActionProxy proxy = getActionProxy(POST, "/api/event/postComment");
        loginAs(proxy, TestDataProvider.EVENT_OWNER_ID);

        addValidSessionTokenToParameter(proxy);
        addFormParameter(proxy, "eventId", TestDataProvider.INVALID_EVENT_ID);
        addFormParameter(proxy, "comment", "comment");

        proxy.execute();
        assertResultInvalid(proxy, UserErrorCode.INVALID_EVENT_ID);
    }

    @Test
    public void testToCommentWithoutEventId() throws Exception {
        ActionProxy proxy = getActionProxy(POST, "/api/event/postComment");
        loginAs(proxy, TestDataProvider.EVENT_OWNER_ID);

        addValidSessionTokenToParameter(proxy);
        addFormParameter(proxy, "comment", "comment");

        proxy.execute();
        assertResultInvalid(proxy, UserErrorCode.MISSING_EVENT_ID);
    }

    @Test
    public void testToCommentWithoutComment() throws Exception {
        ActionProxy proxy = getActionProxy(POST, "/api/event/postComment");
        loginAs(proxy, TestDataProvider.EVENT_OWNER_ID);

        addValidSessionTokenToParameter(proxy);
        addFormParameter(proxy, "eventId", TestDataProvider.DEFAULT_EVENT_ID);

        proxy.execute();
        assertResultInvalid(proxy, UserErrorCode.MISSING_COMMENT);
    }

    @Test
    public void testToCommentWithEmptyComment() throws Exception {
        ActionProxy proxy = getActionProxy(POST, "/api/event/postComment");
        loginAs(proxy, TestDataProvider.EVENT_OWNER_ID);

        addValidSessionTokenToParameter(proxy);
        addFormParameter(proxy, "eventId", TestDataProvider.DEFAULT_EVENT_ID);
        addFormParameter(proxy, "comment", "");

        proxy.execute();
        assertResultInvalid(proxy, UserErrorCode.MISSING_COMMENT);
    }

    @Test
    public void testToCommentWithBlankComment() throws Exception {
        ActionProxy proxy = getActionProxy(POST, "/api/event/postComment");
        loginAs(proxy, TestDataProvider.EVENT_OWNER_ID);

        addValidSessionTokenToParameter(proxy);
        addFormParameter(proxy, "eventId", TestDataProvider.DEFAULT_EVENT_ID);
        addFormParameter(proxy, "comment", "   ");

        proxy.execute();
        assertResultInvalid(proxy, UserErrorCode.MISSING_COMMENT);
    }

    @Test
    public void testToCommentWithTooLongComment() throws Exception {
        ActionProxy proxy = getActionProxy(POST, "/api/event/postComment");
        loginAs(proxy, TestDataProvider.EVENT_OWNER_ID);

        StringBuffer buffer = new StringBuffer();
        for (int i = 0; i < PostCommentAPI.MAX_COMMENT_LENGTH * 2; ++i)
            buffer.append((char)((i % 26) + 'a'));

        addValidSessionTokenToParameter(proxy);
        addFormParameter(proxy, "eventId", TestDataProvider.DEFAULT_EVENT_ID);
        addFormParameter(proxy, "comment", buffer.toString());

        proxy.execute();
        assertResultInvalid(proxy, UserErrorCode.INVALID_COMMENT_TOOLONG);
    }
}
TOP

Related Classes of in.partake.controller.api.event.PostCommentAPITest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.