package in.partake.controller.api.ticket; import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.nullValue; import static org.junit.Assert.assertThat; import in.partake.controller.api.APIControllerTest; import in.partake.model.dto.UserTicket; import in.partake.model.dto.auxiliary.ParticipationStatus; import in.partake.resource.UserErrorCode; import org.junit.Test; import in.partake.controller.ActionProxy; public class RemoveAttendantAPITest extends APIControllerTest { @Test public void testToRemoveAttendant() throws Exception { ActionProxy proxy = getActionProxy(POST, API_EVENT_REMOVE_ATTENDANT); addFormParameter(proxy, "ticketId", DEFAULT_EVENT_TICKET_ID.toString()); addFormParameter(proxy, "userId", EVENT_ENROLLED_USER_ID); addValidSessionTokenToParameter(proxy); loginAs(proxy, EVENT_OWNER_ID); UserTicket enrollment = loadEnrollment(EVENT_ENROLLED_USER_ID, DEFAULT_EVENT_TICKET_ID); assertThat(enrollment.getStatus(), is(ParticipationStatus.ENROLLED)); proxy.execute(); assertResultOK(proxy); enrollment = loadEnrollment(EVENT_ENROLLED_USER_ID, DEFAULT_EVENT_TICKET_ID); assertThat(enrollment, is(nullValue())); } @Test public void testToRemoveAttendantWithoutLogin() throws Exception { ActionProxy proxy = getActionProxy(POST, API_EVENT_REMOVE_ATTENDANT); addFormParameter(proxy, "ticketId", DEFAULT_EVENT_TICKET_ID.toString()); addFormParameter(proxy, "userId", EVENT_ENROLLED_USER_ID); addValidSessionTokenToParameter(proxy); proxy.execute(); assertResultLoginRequired(proxy); } @Test public void testToRemoveAttendantWithInvalidSessionToken() throws Exception { ActionProxy proxy = getActionProxy(POST, API_EVENT_REMOVE_ATTENDANT); addFormParameter(proxy, "ticketId", DEFAULT_EVENT_TICKET_ID.toString()); addFormParameter(proxy, "userId", EVENT_ENROLLED_USER_ID); addInvalidSessionTokenToParameter(proxy); loginAs(proxy, EVENT_OWNER_ID); proxy.execute(); assertResultInvalid(proxy, UserErrorCode.INVALID_SECURITY_CSRF); } @Test public void testToRemoveAttendantWithInvalidticketId() throws Exception { ActionProxy proxy = getActionProxy(POST, API_EVENT_REMOVE_ATTENDANT); addFormParameter(proxy, "ticketId", INVALID_EVENT_TICKET_ID.toString()); addFormParameter(proxy, "userId", EVENT_ENROLLED_USER_ID); addValidSessionTokenToParameter(proxy); loginAs(proxy, EVENT_OWNER_ID); proxy.execute(); assertResultInvalid(proxy, UserErrorCode.INVALID_TICKET_ID); } }