001/** 002 * Copyright 2005-2014 The Kuali Foundation 003 * 004 * Licensed under the Educational Community License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.opensource.org/licenses/ecl2.php 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016package org.kuali.rice.ken.test.util; 017 018import org.kuali.rice.core.api.membership.MemberType; 019import org.kuali.rice.ken.bo.NotificationBo; 020import org.kuali.rice.ken.bo.NotificationChannelBo; 021import org.kuali.rice.ken.bo.NotificationChannelReviewerBo; 022import org.kuali.rice.ken.bo.NotificationContentTypeBo; 023import org.kuali.rice.ken.bo.NotificationPriorityBo; 024import org.kuali.rice.ken.bo.NotificationProducerBo; 025import org.kuali.rice.ken.bo.NotificationRecipientBo; 026import org.kuali.rice.ken.bo.NotificationSenderBo; 027import org.kuali.rice.kim.api.KimConstants.KimGroupMemberTypes; 028 029import java.sql.Timestamp; 030import java.util.List; 031 032/** 033 * This class helps to provide common mock objects for testing and also helper methods to build instances of objects. 034 * @author Kuali Rice Team (rice.collab@kuali.org) 035 */ 036public final class MockObjectsUtil { 037 038 private MockObjectsUtil() { 039 throw new UnsupportedOperationException("do not call"); 040 } 041 042 /** 043 * This method is a helper to build a NotificationChannel instance. 044 * @param name 045 * @param description 046 * @param subscribable 047 * @return NotificationChannel 048 */ 049 public static final NotificationChannelBo buildTestNotificationChannel(String name, String description, boolean subscribable) { 050 NotificationChannelBo channel = new NotificationChannelBo(); 051 channel.setName(name); 052 channel.setDescription(description); 053 channel.setSubscribable(subscribable); 054 return channel; 055 } 056 057 /** 058 * This method returns back a specific test mock object. 059 * @return NotificationChannel 060 */ 061 public static final NotificationChannelBo getTestChannel1() { 062 return buildTestNotificationChannel("Test Channel 1", "Test Channel 1 - description", true); 063 } 064 065 /** 066 * This method returns back a specific test mock object. 067 * @return NotificationChannel 068 */ 069 public static final NotificationChannelBo getTestChannel2() { 070 return buildTestNotificationChannel("Test Channel 2", "Test Channel 2 - description", false); 071 } 072 073 /** 074 * This method is a helper to build a NotificationProducer instance. 075 * @param name 076 * @param description 077 * @param contactInfo 078 * @return 079 */ 080 public static final NotificationProducerBo buildTestNotificationProducer(String name, String description, String contactInfo) { 081 NotificationProducerBo producer = new NotificationProducerBo(); 082 producer.setName(name); 083 producer.setDescription(description); 084 producer.setContactInfo(contactInfo); 085 return producer; 086 } 087 088 /** 089 * This method is a helper to build a NotificationChannelReviewer instance. 090 * @param reviewerType 091 * @param reviewerId 092 * @return 093 */ 094 public static final NotificationChannelReviewerBo buildTestNotificationChannelReviewer(MemberType reviewerType, String reviewerId) { 095 NotificationChannelReviewerBo reviewer = new NotificationChannelReviewerBo(); 096 reviewer.setReviewerType(reviewerType.getCode()); 097 reviewer.setReviewerId(reviewerId); 098 return reviewer; 099 } 100 101 /** 102 * This method returns back a specific test mock object. 103 * @return NotificationProducer 104 */ 105 public static final NotificationProducerBo getTestProducer1() { 106 return buildTestNotificationProducer("Produer 1", "Producer 1 - description", "Producer 1 - contact info"); 107 } 108 109 /** 110 * This method is a helper to build a NotificationContentType instance. 111 * @param name 112 * @param description 113 * @param namespace 114 * @param xsd 115 * @return NotificationContentType 116 */ 117 public static final NotificationContentTypeBo buildTestNotificationContentType(String name, String description, String namespace, String xsd, String xsl) { 118 NotificationContentTypeBo contentType = new NotificationContentTypeBo(); 119 contentType.setName(name); 120 contentType.setDescription(description); 121 contentType.setNamespace(namespace); 122 contentType.setXsd(xsd); 123 contentType.setXsl(xsl); 124 return contentType; 125 } 126 127 /** 128 * This method returns back a specific test mock object. 129 * @return NotificationContentType 130 */ 131 public static final NotificationContentTypeBo getTestContentType1() { 132 return buildTestNotificationContentType("Content Type 1", "Content Type 1 - description", "Content Type 1 - namespace", "Simple.xsd", "Simple.xsl"); 133 } 134 135 /** 136 * This method is a helper to build a NotificationPriority instance. 137 * @param name 138 * @param description 139 * @param order 140 * @return NotificationPriority 141 */ 142 public static final NotificationPriorityBo buildTestNotificationPriority(String name, String description, Integer order) { 143 NotificationPriorityBo priority = new NotificationPriorityBo(); 144 priority.setName(name); 145 priority.setDescription(description); 146 priority.setOrder(order); 147 return priority; 148 } 149 150 /** 151 * This method returns back a specific test mock object. 152 * @return NotificationPriority 153 */ 154 public static final NotificationPriorityBo getTestPriority1() { 155 return buildTestNotificationPriority("Priority 1", "Priority 1 - description", new Integer(1)); 156 } 157 158 /** 159 * This method is a helper to build a NotificationRecipient instance. 160 * @param recipientId 161 * @param recipientType 162 * @return NotificationRecipient 163 */ 164 public static final NotificationRecipientBo buildTestNotificationRecipient(String recipientId, MemberType recipientType) { 165 NotificationRecipientBo recipient = new NotificationRecipientBo(); 166 recipient.setRecipientId(recipientId); 167 recipient.setRecipientType(recipientType.getCode()); 168 return recipient; 169 } 170 171 /** 172 * This method returns back a specific test mock object. 173 * @return NotificationRecipient 174 */ 175 public static final NotificationRecipientBo getTestRecipient1() { 176 return buildTestNotificationRecipient("ag266", KimGroupMemberTypes.PRINCIPAL_MEMBER_TYPE); 177 } 178 179 /** 180 * This method returns back a specific test mock object. 181 * @return NotificationRecipient 182 */ 183 public static final NotificationRecipientBo getTestRecipient2() { 184 return buildTestNotificationRecipient("Notification Team", KimGroupMemberTypes.GROUP_MEMBER_TYPE); 185 } 186 187 /** 188 * This method is a helper to build a Notification instance. 189 * @param recipientId 190 * @param recipientType 191 * @return Notification 192 */ 193 public static final NotificationBo buildTestNotification(String deliveryType, Timestamp sendDateTime, Timestamp autoRemoveDateTime, NotificationContentTypeBo contentType, 194 String content, NotificationPriorityBo priority, NotificationProducerBo producer, NotificationChannelBo channel, List<NotificationRecipientBo> recipients, 195 List<NotificationSenderBo> senders) { 196 NotificationBo notification = new NotificationBo(); 197 notification.setCreationDateTimeValue(new Timestamp(System.currentTimeMillis())); 198 notification.setDeliveryType(deliveryType); 199 notification.setSendDateTimeValue(sendDateTime); 200 notification.setAutoRemoveDateTimeValue(autoRemoveDateTime); 201 notification.setContentType(contentType); 202 notification.setContent(content); 203 notification.setPriority(priority); 204 notification.setProducer(producer); 205 notification.setChannel(channel); 206 notification.setRecipients(recipients); 207 notification.setSenders(senders); 208 209 return notification; 210 } 211 212 /** 213 * This method is a helper to build a NotificationSender instance. 214 * @param userId 215 * @return NotificationSender 216 */ 217 public static final NotificationSenderBo buildTestNotificationSender(String userId) { 218 NotificationSenderBo sender = new NotificationSenderBo(); 219 sender.setSenderName(userId); 220 return sender; 221 } 222 223 /** 224 * This method returns back a specific test mock object. 225 * @return NotificationSender 226 */ 227 public static final NotificationSenderBo getTestSender1() { 228 return buildTestNotificationSender("Joe Schmoe"); 229 } 230 231 /** 232 * This method returns back a specific test mock object. 233 * @return NotificationSender 234 */ 235 public static final NotificationSenderBo getTestSender2() { 236 return buildTestNotificationSender("John Doe"); 237 } 238}