001    /**
002     * Copyright 2005-2011 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     */
016    package org.kuali.rice.ken.test.util;
017    
018    import org.kuali.rice.core.api.membership.MemberType;
019    import org.kuali.rice.ken.bo.Notification;
020    import org.kuali.rice.ken.bo.NotificationChannel;
021    import org.kuali.rice.ken.bo.NotificationChannelReviewer;
022    import org.kuali.rice.ken.bo.NotificationContentType;
023    import org.kuali.rice.ken.bo.NotificationPriority;
024    import org.kuali.rice.ken.bo.NotificationProducer;
025    import org.kuali.rice.ken.bo.NotificationRecipient;
026    import org.kuali.rice.ken.bo.NotificationSender;
027    import org.kuali.rice.kim.api.KimConstants.KimGroupMemberTypes;
028    
029    import java.sql.Timestamp;
030    import 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     */
036    public 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 NotificationChannel buildTestNotificationChannel(String name, String description, boolean subscribable) {
050            NotificationChannel channel = new NotificationChannel();
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 NotificationChannel 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 NotificationChannel 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 NotificationProducer buildTestNotificationProducer(String name, String description, String contactInfo) {
081            NotificationProducer producer = new NotificationProducer();
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 NotificationChannelReviewer buildTestNotificationChannelReviewer(MemberType reviewerType, String reviewerId) {
095            NotificationChannelReviewer reviewer = new NotificationChannelReviewer();
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 NotificationProducer 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 NotificationContentType buildTestNotificationContentType(String name, String description, String namespace, String xsd, String xsl) {
118            NotificationContentType contentType = new NotificationContentType();
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 NotificationContentType 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 NotificationPriority buildTestNotificationPriority(String name, String description, Integer order) {
143            NotificationPriority priority = new NotificationPriority();
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 NotificationPriority 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 NotificationRecipient buildTestNotificationRecipient(String recipientId, MemberType recipientType) {
165            NotificationRecipient recipient = new NotificationRecipient();
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 NotificationRecipient 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 NotificationRecipient 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 Notification buildTestNotification(String deliveryType, Timestamp sendDateTime, Timestamp autoRemoveDateTime, NotificationContentType contentType,
194                String content, NotificationPriority priority, NotificationProducer producer, NotificationChannel channel, List<NotificationRecipient> recipients,
195                List<NotificationSender> senders) {
196            Notification notification = new Notification();
197            notification.setCreationDateTime(new Timestamp(System.currentTimeMillis()));
198            notification.setDeliveryType(deliveryType);
199            notification.setSendDateTime(sendDateTime);
200            notification.setAutoRemoveDateTime(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 recipientId
215         * @param recipientType
216         * @return NotificationSender
217         */
218        public static final NotificationSender buildTestNotificationSender(String userId) {
219            NotificationSender sender = new NotificationSender();
220            sender.setSenderName(userId);
221            return sender;
222        }
223    
224        /**
225         * This method returns back a specific test mock object.
226         * @return NotificationSender
227         */
228        public static final NotificationSender getTestSender1() {
229            return buildTestNotificationSender("Joe Schmoe");
230        }
231    
232        /**
233         * This method returns back a specific test mock object.
234         * @return NotificationSender
235         */
236        public static final NotificationSender getTestSender2() {
237            return buildTestNotificationSender("John Doe");
238        }
239    }