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 }