Package in.partake.controller.api.event

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

package in.partake.controller.api.event;

import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertThat;
import in.partake.controller.ActionProxy;
import in.partake.controller.api.APIControllerTest;
import in.partake.model.EventEx;
import in.partake.model.dto.EventTicket;
import in.partake.model.dto.auxiliary.TicketAmountType;
import in.partake.model.dto.auxiliary.TicketApplicationEnd;
import in.partake.model.dto.auxiliary.TicketApplicationStart;
import in.partake.model.dto.auxiliary.TicketPriceType;
import in.partake.model.dto.auxiliary.TicketReservationEnd;

import java.util.List;

import org.junit.Test;

public class ModifyTicketAPITest extends APIControllerTest {

    @Test
    public void testToModifyTicket() throws Exception {
        ActionProxy proxy = getActionProxy(POST, API_EVENT_MODIFY_TICKET);
        loginAs(proxy, EVENT_OWNER_ID);
        addValidSessionTokenToParameter(proxy);

        addFormParameter(proxy, "eventId", UNPUBLISHED_EVENT_ID);
        addFormParameter(proxy, "id[]", new String[] { "" });
        addFormParameter(proxy, "name[]", new String[] { "name" });
        addFormParameter(proxy, "applicationStart[]", new String[] { "anytime" });
        addFormParameter(proxy, "applicationStartDayBeforeEvent[]", new String[] { "0" });
        addFormParameter(proxy, "customApplicationStartDate[]", new String[] { "2012-01-01 00:00" });
        addFormParameter(proxy, "applicationEnd[]", new String[] { "till_time_before_event" });
        addFormParameter(proxy, "applicationEndDayBeforeEvent[]", new String[] { "0" });
        addFormParameter(proxy, "customApplicationEndDate[]", new String[] { "2012-01-01 00:00" });
        addFormParameter(proxy, "reservationEnd[]", new String[] { "till_time_before_application" });
        addFormParameter(proxy, "reservationEndHourBeforeApplication[]", new String[] { "0" });
        addFormParameter(proxy, "customReservationEndDate[]", new String[] { "2012-01-01 00:00" });
        addFormParameter(proxy, "priceType[]", new String[] { "free" });
        addFormParameter(proxy, "price[]", new String[] { "0" });
        addFormParameter(proxy, "amountType[]", new String[] { "unlimited" });
        addFormParameter(proxy, "amount[]", new String[] { "0" });

        proxy.execute();
        assertResultOK(proxy);

        EventEx modified = loadEventEx(UNPUBLISHED_EVENT_ID);
        List<EventTicket> tickets = modified.getTickets();

        assertThat(tickets.size(), is(1));
        assertThat(tickets.get(0).getName(), is("name"));
        assertThat(tickets.get(0).getApplicationStart(), is(TicketApplicationStart.ANYTIME));
        assertThat(tickets.get(0).getApplicationEnd(), is(TicketApplicationEnd.TILL_TIME_BEFORE_EVENT));
        assertThat(tickets.get(0).getReservationEnd(), is(TicketReservationEnd.TILL_TIME_BEFORE_APPLICATION));
        assertThat(tickets.get(0).getPriceType(), is(TicketPriceType.FREE));
        assertThat(tickets.get(0).getAmountType(), is(TicketAmountType.UNLIMITED));
    }

    @Test
    public void shouldModifyTicketAmountForUnpublishedEvent() throws Exception {
        ActionProxy proxy = getActionProxy(POST, API_EVENT_MODIFY_TICKET);
        loginAs(proxy, EVENT_OWNER_ID);
        addValidSessionTokenToParameter(proxy);

        addFormParameter(proxy, "eventId", UNPUBLISHED_EVENT_ID);
        addFormParameter(proxy, "id[]", new String[] { UNPUBLISHED_EVENT_TICKET_ID.toString() });
        addFormParameter(proxy, "name[]", new String[] { "name" });
        addFormParameter(proxy, "applicationStart[]", new String[] { "anytime" });
        addFormParameter(proxy, "applicationStartDayBeforeEvent[]", new String[] { "0" });
        addFormParameter(proxy, "customApplicationStartDate[]", new String[] { "2012-01-01 00:00" });
        addFormParameter(proxy, "applicationEnd[]", new String[] { "till_time_before_event" });
        addFormParameter(proxy, "applicationEndDayBeforeEvent[]", new String[] { "0" });
        addFormParameter(proxy, "customApplicationEndDate[]", new String[] { "2012-01-01 00:00" });
        addFormParameter(proxy, "reservationEnd[]", new String[] { "till_time_before_application" });
        addFormParameter(proxy, "reservationEndHourBeforeApplication[]", new String[] { "0" });
        addFormParameter(proxy, "customReservationEndDate[]", new String[] { "2012-01-01 00:00" });
        addFormParameter(proxy, "priceType[]", new String[] { "free" });
        addFormParameter(proxy, "price[]", new String[] { "0" });

        // Changed to limited.
        addFormParameter(proxy, "amountType[]", new String[] { "limited" });
        addFormParameter(proxy, "amount[]", new String[] { "10" });

        proxy.execute();
        assertResultOK(proxy);

        EventEx modified = loadEventEx(UNPUBLISHED_EVENT_ID);
        List<EventTicket> tickets = modified.getTickets();

        assertThat(tickets.size(), is(1));
        assertThat(tickets.get(0).getName(), is("name"));
        assertThat(tickets.get(0).getApplicationStart(), is(TicketApplicationStart.ANYTIME));
        assertThat(tickets.get(0).getApplicationEnd(), is(TicketApplicationEnd.TILL_TIME_BEFORE_EVENT));
        assertThat(tickets.get(0).getReservationEnd(), is(TicketReservationEnd.TILL_TIME_BEFORE_APPLICATION));
        assertThat(tickets.get(0).getPriceType(), is(TicketPriceType.FREE));
        assertThat(tickets.get(0).getAmountType(), is(TicketAmountType.LIMITED));
        assertThat(tickets.get(0).getAmount(), is(10));
    }

    @Test
    public void shouldModifyTicketAmountForPublishedEvent() throws Exception {
        ActionProxy proxy = getActionProxy(POST, API_EVENT_MODIFY_TICKET);
        loginAs(proxy, EVENT_OWNER_ID);
        addValidSessionTokenToParameter(proxy);

        addFormParameter(proxy, "eventId", DEFAULT_EVENT_ID);
        addFormParameter(proxy, "id[]", new String[] { DEFAULT_EVENT_TICKET_ID.toString() });
        addFormParameter(proxy, "name[]", new String[] { "name" });
        addFormParameter(proxy, "applicationStart[]", new String[] { "anytime" });
        addFormParameter(proxy, "applicationStartDayBeforeEvent[]", new String[] { "0" });
        addFormParameter(proxy, "customApplicationStartDate[]", new String[] { "2012-01-01 00:00" });
        addFormParameter(proxy, "applicationEnd[]", new String[] { "till_time_before_event" });
        addFormParameter(proxy, "applicationEndDayBeforeEvent[]", new String[] { "0" });
        addFormParameter(proxy, "customApplicationEndDate[]", new String[] { "2012-01-01 00:00" });
        addFormParameter(proxy, "reservationEnd[]", new String[] { "till_time_before_application" });
        addFormParameter(proxy, "reservationEndHourBeforeApplication[]", new String[] { "0" });
        addFormParameter(proxy, "customReservationEndDate[]", new String[] { "2012-01-01 00:00" });
        addFormParameter(proxy, "priceType[]", new String[] { "free" });
        addFormParameter(proxy, "price[]", new String[] { "0" });

        // Changed to limited.
        addFormParameter(proxy, "amountType[]", new String[] { "limited" });
        addFormParameter(proxy, "amount[]", new String[] { "10" });

        proxy.execute();
        assertResultOK(proxy);

        EventEx modified = loadEventEx(DEFAULT_EVENT_ID);
        List<EventTicket> tickets = modified.getTickets();

        assertThat(tickets.size(), is(1));
        assertThat(tickets.get(0).getName(), is("name"));
        assertThat(tickets.get(0).getApplicationStart(), is(TicketApplicationStart.ANYTIME));
        assertThat(tickets.get(0).getApplicationEnd(), is(TicketApplicationEnd.TILL_TIME_BEFORE_EVENT));
        assertThat(tickets.get(0).getReservationEnd(), is(TicketReservationEnd.TILL_TIME_BEFORE_APPLICATION));
        assertThat(tickets.get(0).getPriceType(), is(TicketPriceType.FREE));
        assertThat(tickets.get(0).getAmountType(), is(TicketAmountType.LIMITED));
        assertThat(tickets.get(0).getAmount(), is(10));
    }

    @Test
    public void shouldDeleteTickdetIfNoParticipants() throws Exception {
        removeUserTicketsByEventId(DEFAULT_EVENT_ID);

        ActionProxy proxy = getActionProxy(POST, API_EVENT_MODIFY_TICKET);
        loginAs(proxy, EVENT_OWNER_ID);
        addValidSessionTokenToParameter(proxy);

        addFormParameter(proxy, "eventId", DEFAULT_EVENT_ID);
        addFormParameter(proxy, "id[]", new String[] {});
        addFormParameter(proxy, "name[]", new String[] {});
        addFormParameter(proxy, "applicationStart[]", new String[] {});
        addFormParameter(proxy, "applicationStartDayBeforeEvent[]", new String[] {});
        addFormParameter(proxy, "customApplicationStartDate[]", new String[] {});
        addFormParameter(proxy, "applicationEnd[]", new String[] {});
        addFormParameter(proxy, "applicationEndDayBeforeEvent[]", new String[] {});
        addFormParameter(proxy, "customApplicationEndDate[]", new String[] {});
        addFormParameter(proxy, "reservationEnd[]", new String[] {});
        addFormParameter(proxy, "reservationEndHourBeforeApplication[]", new String[] {});
        addFormParameter(proxy, "customReservationEndDate[]", new String[] {});
        addFormParameter(proxy, "priceType[]", new String[] {});
        addFormParameter(proxy, "price[]", new String[] {});

        // Changed to limited.
        addFormParameter(proxy, "amountType[]", new String[] {});
        addFormParameter(proxy, "amount[]", new String[] {});

        proxy.execute();
        assertResultOK(proxy);

        EventEx modified = loadEventEx(DEFAULT_EVENT_ID);
        List<EventTicket> tickets = modified.getTickets();

        assertThat(tickets.size(), is(0));
    }
}
TOP

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

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.