package in.partake.controller.api.event;
import in.partake.controller.ActionProxy;
import in.partake.controller.api.APIControllerTest;
import in.partake.model.fixture.TestDataProvider;
import in.partake.resource.UserErrorCode;
import org.junit.Test;
public class GetEventAPITest extends APIControllerTest {
@Test
public void testGetEvent() throws Exception {
ActionProxy proxy = getActionProxy(GET, "/api/event/get?eventId=" + DEFAULT_EVENT_ID);
proxy.execute();
assertResultOK(proxy);
}
@Test
public void testGetEventWithoutId() throws Exception {
ActionProxy proxy = getActionProxy(GET, "/api/event/get");
proxy.execute();
assertResultInvalid(proxy, UserErrorCode.MISSING_EVENT_ID);
}
@Test
public void testGetEventWithInvalidId() throws Exception {
ActionProxy proxy = getActionProxy(GET, "/api/event/get?eventId=" + INVALID_EVENT_ID);
proxy.execute();
assertResultInvalid(proxy, UserErrorCode.INVALID_EVENT_ID);
}
@Test
public void testGetPrivateEventByOwner() throws Exception {
ActionProxy proxy = getActionProxy(GET, "/api/event/get?eventId=" + PRIVATE_EVENT_ID);
loginAs(proxy, TestDataProvider.EVENT_OWNER_ID);
proxy.execute();
assertResultOK(proxy);
}
@Test
public void testGetPrivateEventWithoutLogin() throws Exception {
ActionProxy proxy = getActionProxy(GET, "/api/event/get?eventId=" + PRIVATE_EVENT_ID);
proxy.execute();
assertResultForbidden(proxy);
}
@Test
public void testGetPrivateEventWithInvalidLogin() throws Exception {
ActionProxy proxy = getActionProxy(GET, "/api/event/get?eventId=" + PRIVATE_EVENT_ID);
loginAs(proxy, TestDataProvider.EVENT_UNRELATED_USER_ID);
proxy.execute();
assertResultForbidden(proxy);
}
@Test
public void testGetPrivateEventWithCorrectPasscode() throws Exception {
ActionProxy proxy = getActionProxy(GET, "/api/event/get?eventId=" + PRIVATE_EVENT_ID + "&passcode=passcode");
proxy.execute();
assertResultOK(proxy);
}
@Test
public void testGetPrivateEventwithInvalidPasscode() throws Exception {
ActionProxy proxy = getActionProxy(GET, "/api/event/get?eventId=" + PRIVATE_EVENT_ID + "&passcode=invalid");
proxy.execute();
assertResultForbidden(proxy);
}
}