/**
* Copyright (c) 2000-present Liferay, Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*/
package com.liferay.calendar.test.util;
import com.liferay.calendar.model.Calendar;
import com.liferay.calendar.model.CalendarBooking;
import com.liferay.calendar.model.CalendarBookingConstants;
import com.liferay.calendar.model.CalendarResource;
import com.liferay.calendar.notification.NotificationType;
import com.liferay.calendar.recurrence.Recurrence;
import com.liferay.calendar.recurrence.RecurrenceSerializer;
import com.liferay.calendar.service.CalendarBookingLocalServiceUtil;
import com.liferay.calendar.util.CalendarResourceUtil;
import com.liferay.portal.kernel.exception.PortalException;
import com.liferay.portal.kernel.model.User;
import com.liferay.portal.kernel.service.ServiceContext;
import com.liferay.portal.kernel.test.util.RandomTestUtil;
import com.liferay.portal.kernel.util.Time;
import com.liferay.portal.kernel.workflow.WorkflowConstants;
import com.liferay.portal.kernel.workflow.WorkflowThreadLocal;
import java.util.Locale;
import java.util.Map;
/**
* @author Adam Brandizzi
*/
public class CalendarBookingTestUtil {
public static CalendarBooking addAllDayCalendarBooking(
User user, Calendar calendar, long startTime, long endTime,
ServiceContext serviceContext)
throws PortalException {
return addCalendarBooking(
user, calendar, new long[0], RandomTestUtil.randomLocaleStringMap(),
RandomTestUtil.randomLocaleStringMap(), startTime, endTime, true,
null, 0, null, 0, null, serviceContext);
}
public static CalendarBooking addCalendarBooking(
User user, Calendar calendar, long[] childCalendarBookingIds,
Map<Locale, String> titleMap, Map<Locale, String> descriptionMap,
long startTime, long endTime, boolean allDay, Recurrence recurrence,
int firstReminder, NotificationType firstReminderType,
int secondReminder, NotificationType secondReminderType,
ServiceContext serviceContext)
throws PortalException {
String firstReminderTypeString = null;
if (firstReminderType != null) {
firstReminderTypeString = firstReminderType.getValue();
}
String secondReminderTypeString = null;
if (secondReminderType != null) {
secondReminderTypeString = secondReminderType.getValue();
}
CalendarBooking calendarBooking =
CalendarBookingLocalServiceUtil.addCalendarBooking(
user.getUserId(), calendar.getCalendarId(),
childCalendarBookingIds,
CalendarBookingConstants.PARENT_CALENDAR_BOOKING_ID_DEFAULT,
CalendarBookingConstants.RECURRING_CALENDAR_BOOKING_ID_DEFAULT,
titleMap, descriptionMap, RandomTestUtil.randomString(),
startTime, endTime, allDay,
RecurrenceSerializer.serialize(recurrence), firstReminder,
firstReminderTypeString, secondReminder,
secondReminderTypeString, serviceContext);
return calendarBooking;
}
public static CalendarBooking addCalendarBooking(
User user, Calendar calendar, long[] childCalendarBookingIds,
Map<Locale, String> titleMap, Map<Locale, String> descriptionMap,
long startTime, long endTime, Recurrence recurrence,
int firstReminder, NotificationType firstReminderType,
int secondReminder, NotificationType secondReminderType,
ServiceContext serviceContext)
throws PortalException {
return addCalendarBooking(
user, calendar, childCalendarBookingIds, titleMap, descriptionMap,
startTime, endTime, false, recurrence, firstReminder,
firstReminderType, secondReminder, secondReminderType,
serviceContext);
}
public static CalendarBooking addCalendarBookingWithAction(
User user, int action)
throws PortalException {
ServiceContext serviceContext = new ServiceContext();
serviceContext.setCompanyId(user.getCompanyId());
serviceContext.setWorkflowAction(action);
CalendarResource calendarResource =
CalendarResourceUtil.getUserCalendarResource(
user.getUserId(), serviceContext);
Calendar calendar = calendarResource.getDefaultCalendar();
long startTime = System.currentTimeMillis();
return addRegularCalendarBooking(
user, calendar, startTime, startTime + (Time.HOUR * 10),
serviceContext);
}
public static CalendarBooking addDraftCalendarBooking(User user)
throws PortalException {
return addCalendarBookingWithAction(
user, WorkflowConstants.ACTION_SAVE_DRAFT);
}
public static CalendarBooking addMasterCalendarBooking(
User user, Calendar calendar, long[] childCalendarBookingIds,
long startTime, long endTime, ServiceContext serviceContext)
throws PortalException {
return addCalendarBooking(
user, calendar, childCalendarBookingIds,
RandomTestUtil.randomLocaleStringMap(),
RandomTestUtil.randomLocaleStringMap(), startTime, endTime, null, 0,
null, 0, null, serviceContext);
}
public static CalendarBooking addPublishedCalendarBooking(User user)
throws PortalException {
return addCalendarBookingWithAction(
user, WorkflowConstants.ACTION_PUBLISH);
}
public static CalendarBooking addRecurringCalendarBooking(
User user, Calendar calendar, long startTime, long endTime,
Recurrence recurrence, ServiceContext serviceContext)
throws PortalException {
return addCalendarBooking(
user, calendar, new long[0], RandomTestUtil.randomLocaleStringMap(),
RandomTestUtil.randomLocaleStringMap(), startTime, endTime,
recurrence, 0, null, 0, null, serviceContext);
}
public static CalendarBooking addRecurringCalendarBooking(
User user, Calendar calendar, Recurrence recurrence,
ServiceContext serviceContext)
throws PortalException {
long startTime = System.currentTimeMillis();
long endTime = startTime + Time.HOUR;
return addCalendarBooking(
user, calendar, new long[0], RandomTestUtil.randomLocaleStringMap(),
RandomTestUtil.randomLocaleStringMap(), startTime, endTime,
recurrence, 0, null, 0, null, serviceContext);
}
public static CalendarBooking addRegularCalendarBooking(
User user, Calendar calendar, long startTime, long endTime,
ServiceContext serviceContext)
throws PortalException {
return addCalendarBooking(
user, calendar, new long[0], RandomTestUtil.randomLocaleStringMap(),
RandomTestUtil.randomLocaleStringMap(), startTime, endTime, null, 0,
null, 0, null, serviceContext);
}
public static CalendarBooking addRegularCalendarBooking(
User user, Calendar calendar, ServiceContext serviceContext)
throws PortalException {
long startTime = System.currentTimeMillis();
long endTime = startTime + Time.HOUR;
return addCalendarBooking(
user, calendar, new long[0], RandomTestUtil.randomLocaleStringMap(),
RandomTestUtil.randomLocaleStringMap(), startTime, endTime, null, 0,
null, 0, null, serviceContext);
}
public static CalendarBooking
addRegularCalendarBookingWithTitleAndDescription(
User user, Calendar calendar, Map<Locale, String> titleMap,
Map<Locale, String> descriptionMap, long startTime,
long endTime, ServiceContext serviceContext)
throws PortalException {
return addCalendarBooking(
user, calendar, new long[0], titleMap, descriptionMap, startTime,
endTime, null, 0, null, 0, null, serviceContext);
}
public static CalendarBooking addRegularCalendarBookingWithWorkflow(
User user, Calendar calendar, ServiceContext serviceContext)
throws PortalException {
boolean workflowEnabled = WorkflowThreadLocal.isEnabled();
try {
WorkflowThreadLocal.setEnabled(true);
serviceContext = (ServiceContext)serviceContext.clone();
serviceContext.setWorkflowAction(
WorkflowConstants.ACTION_SAVE_DRAFT);
return addRegularCalendarBooking(user, calendar, serviceContext);
}
finally {
WorkflowThreadLocal.setEnabled(workflowEnabled);
}
}
public static CalendarBooking updateCalendarBookingInstance(
User user, CalendarBooking calendarBooking, int instanceIndex,
Map<Locale, String> titleMap, Map<Locale, String> descriptionMap,
long instanceStartTime, long instanceEndTime,
ServiceContext serviceContext)
throws PortalException {
return CalendarBookingLocalServiceUtil.updateCalendarBookingInstance(
user.getUserId(), calendarBooking.getCalendarBookingId(),
instanceIndex, calendarBooking.getCalendarId(), titleMap,
descriptionMap, calendarBooking.getLocation(), instanceStartTime,
instanceEndTime, false, null, false, 0, null, 0, null,
serviceContext);
}
public static CalendarBooking updateCalendarBookingInstanceAndAllFollowing(
User user, CalendarBooking calendarBooking, int instanceIndex,
Map<Locale, String> titleMap, Map<Locale, String> descriptionMap,
long instanceStartTime, long instanceEndTime,
ServiceContext serviceContext)
throws PortalException {
return CalendarBookingLocalServiceUtil.updateCalendarBookingInstance(
user.getUserId(), calendarBooking.getCalendarBookingId(),
instanceIndex, calendarBooking.getCalendarId(), titleMap,
descriptionMap, calendarBooking.getLocation(), instanceStartTime,
instanceEndTime, false, null, true, 0, null, 0, null,
serviceContext);
}
}