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.dao;
017
018 import org.kuali.rice.ken.bo.NotificationChannel;
019 import org.kuali.rice.ken.bo.NotificationChannelReviewer;
020 import org.kuali.rice.ken.test.util.MockObjectsUtil;
021 import org.kuali.rice.ken.util.NotificationConstants;
022 import org.kuali.rice.kim.api.KimConstants.KimGroupMemberTypes;
023
024 import java.util.HashMap;
025
026 /**
027 * This class tests basic persistence for the {@link NotificationChannelReviewer} business object.
028 *
029 * @author Kuali Rice Team (rice.collab@kuali.org)
030 */
031 public class NotificationChannelReviewerDaoTest extends BusinessObjectPersistenceTestCaseBase {
032 private NotificationChannel mockChannel1 = MockObjectsUtil.getTestChannel1();
033 private NotificationChannelReviewer mockReviewer = MockObjectsUtil.buildTestNotificationChannelReviewer(KimGroupMemberTypes.PRINCIPAL_MEMBER_TYPE, "aReviewer");
034
035 /**
036 * @see org.kuali.rice.ken.dao.BusinessObjectPersistenceTestCaseBase#setup()
037 */
038 @Override
039 protected void setup() {
040 super.setup();
041 businessObjectDao.save(mockChannel1);
042 }
043
044 /**
045 * @see org.kuali.rice.ken.dao.BusinessObjectPersistenceTestCaseBase#delete()
046 */
047 @Override
048 protected boolean delete() {
049 HashMap criteria = new HashMap();
050
051 criteria.put(NotificationConstants.BO_PROPERTY_NAMES.REVIEWER_ID, mockReviewer.getReviewerId());
052 NotificationChannelReviewer reviewer = (NotificationChannelReviewer) businessObjectDao.findByUniqueKey(NotificationChannelReviewer.class, criteria);
053
054 try {
055 businessObjectDao.delete(reviewer);
056 } catch(Exception e) {
057 return false;
058 }
059 return true;
060 }
061
062
063 /**
064 * @see org.kuali.rice.ken.dao.BusinessObjectPersistenceTestCaseBase#insert()
065 */
066 @Override
067 protected boolean insert() {
068 mockReviewer.setChannel(mockChannel1);
069
070 try {
071 businessObjectDao.save(mockReviewer);
072 } catch(Exception e) {
073 return false;
074 }
075 return true;
076 }
077
078 /**
079 * @see org.kuali.rice.ken.dao.BusinessObjectPersistenceTestCaseBase#retrieve()
080 */
081 @Override
082 protected boolean retrieve() {
083 HashMap criteria = new HashMap();
084
085 criteria.put(NotificationConstants.BO_PROPERTY_NAMES.REVIEWER_ID, mockReviewer.getReviewerId());
086 NotificationChannelReviewer reviewer = (NotificationChannelReviewer) businessObjectDao.findByUniqueKey(NotificationChannelReviewer.class, criteria);
087
088 boolean success = true;
089
090 success &= reviewer != null;
091 success &= reviewer.getReviewerId().equals(mockReviewer.getReviewerId());
092 success &= reviewer.getReviewerType().equals(mockReviewer.getReviewerType());
093 success &= reviewer.getChannel() != null;
094 success &= reviewer.getChannel().getId().equals(mockChannel1.getId());
095
096 return success;
097 }
098
099 /**
100 * @see org.kuali.rice.ken.dao.BusinessObjectPersistenceTestCaseBase#update()
101 */
102 @Override
103 protected boolean update() {
104 HashMap criteria = new HashMap();
105
106 criteria.put(NotificationConstants.BO_PROPERTY_NAMES.REVIEWER_ID, mockReviewer.getReviewerId());
107 NotificationChannelReviewer reviewer = (NotificationChannelReviewer) businessObjectDao.findByUniqueKey(NotificationChannelReviewer.class, criteria);
108
109 reviewer.setReviewerId("updatedReviewerId");
110 reviewer.setReviewerType(KimGroupMemberTypes.GROUP_MEMBER_TYPE.getCode());
111
112 try {
113 businessObjectDao.save(reviewer);
114 } catch(Exception e) {
115 return false;
116 }
117 return true;
118 }
119
120 /**
121 * @see org.kuali.rice.ken.dao.BusinessObjectPersistenceTestCaseBase#validateChanges()
122 */
123 @Override
124 protected boolean validateChanges() {
125 NotificationChannelReviewer reviewer = (NotificationChannelReviewer) businessObjectDao.findById(NotificationChannelReviewer.class, mockReviewer.getId());
126
127 boolean success = reviewer != null;
128 success &= reviewer.getReviewerId().equals("updatedReviewerId");
129 success &= reviewer.getReviewerType().equals(KimGroupMemberTypes.GROUP_MEMBER_TYPE.getCode());
130
131 return success;
132 }
133 }