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 java.util.HashMap; 019 020 import org.kuali.rice.ken.bo.NotificationChannel; 021 import org.kuali.rice.ken.bo.NotificationRecipientList; 022 import org.kuali.rice.ken.test.util.MockObjectsUtil; 023 import org.kuali.rice.ken.util.NotificationConstants; 024 025 026 /** 027 * This class test basic persistence for the NotificationRecipientList business object. 028 * 029 * @author Kuali Rice Team (rice.collab@kuali.org) 030 */ 031 public class NotificationRecipientListDaoTest extends BusinessObjectPersistenceTestCaseBase { 032 NotificationChannel channel1 = MockObjectsUtil.getTestChannel1(); 033 NotificationChannel channel2 = MockObjectsUtil.getTestChannel2(); 034 035 NotificationRecipientList recipientList1 = new NotificationRecipientList(); 036 NotificationRecipientList recipientList2 = new NotificationRecipientList(); 037 038 private String[] recipientTypes = {"Type 1", "Type 2"}; 039 private String[] recipientIds = {"ag266", "jaf30"}; 040 private String[] updatedRecipientIds = {"bh79", "arh14"}; 041 042 /** 043 * @see org.kuali.rice.ken.dao.BusinessObjectPersistenceTestCaseBase#setup() 044 */ 045 @Override 046 protected void setup() { 047 businessObjectDao.save(channel1); 048 businessObjectDao.save(channel2); 049 } 050 051 /** 052 * @see org.kuali.rice.ken.dao.BusinessObjectPersistenceTestCaseBase#delete() 053 */ 054 @Override 055 protected boolean delete() { 056 try { 057 businessObjectDao.delete(recipientList1); 058 businessObjectDao.delete(recipientList2); 059 } catch(Exception e) { 060 return false; 061 } 062 return true; 063 } 064 065 /** 066 * @see org.kuali.rice.ken.dao.BusinessObjectPersistenceTestCaseBase#retrieve() 067 */ 068 @Override 069 protected boolean retrieve() { 070 recipientList1 = new NotificationRecipientList(); 071 recipientList2 = new NotificationRecipientList(); 072 073 HashMap criteria = new HashMap(); 074 075 criteria.put(NotificationConstants.BO_PROPERTY_NAMES.CHANNEL_ID, channel1.getId()); 076 criteria.put(NotificationConstants.BO_PROPERTY_NAMES.RECIPIENT_TYPE, recipientTypes[0]); 077 criteria.put(NotificationConstants.BO_PROPERTY_NAMES.RECIPIENT_ID, recipientIds[0]); 078 recipientList1 = (NotificationRecipientList) (businessObjectDao.findMatching(NotificationRecipientList.class, criteria)).iterator().next(); 079 080 criteria.clear(); 081 082 criteria.put(NotificationConstants.BO_PROPERTY_NAMES.CHANNEL_ID, channel2.getId()); 083 criteria.put(NotificationConstants.BO_PROPERTY_NAMES.RECIPIENT_TYPE, recipientTypes[1]); 084 criteria.put(NotificationConstants.BO_PROPERTY_NAMES.RECIPIENT_ID, recipientIds[1]); 085 recipientList2 = (NotificationRecipientList) (businessObjectDao.findMatching(NotificationRecipientList.class, criteria)).iterator().next(); 086 087 boolean success = true; 088 089 success &= recipientList1 != null; 090 success &= recipientList1.getRecipientId().equals(recipientIds[0]); 091 092 success &= recipientList2 != null; 093 success &= recipientList2.getRecipientId().equals(recipientIds[1]); 094 095 return success; 096 } 097 098 /** 099 * @see org.kuali.rice.ken.dao.BusinessObjectPersistenceTestCaseBase#insert() 100 */ 101 @Override 102 protected boolean insert() { 103 recipientList1.setChannel(channel1); 104 recipientList1.setRecipientType(recipientTypes[0]); 105 recipientList1.setRecipientId(recipientIds[0]); 106 107 recipientList2.setChannel(channel2); 108 recipientList2.setRecipientType(recipientTypes[1]); 109 recipientList2.setRecipientId(recipientIds[1]); 110 111 try { 112 businessObjectDao.save(recipientList1); 113 businessObjectDao.save(recipientList2); 114 } catch(Exception e) { 115 LOG.error("Error saving recipients", e); 116 return false; 117 } 118 return true; 119 } 120 121 /** 122 * @see org.kuali.rice.ken.dao.BusinessObjectPersistenceTestCaseBase#update() 123 */ 124 @Override 125 protected boolean update() { 126 recipientList1.setRecipientId(updatedRecipientIds[0]); 127 128 recipientList2.setRecipientId(updatedRecipientIds[1]); 129 130 try { 131 businessObjectDao.save(recipientList1); 132 businessObjectDao.save(recipientList2); 133 } catch(Exception e) { 134 return false; 135 } 136 return true; 137 } 138 139 /** 140 * @see org.kuali.rice.ken.dao.BusinessObjectPersistenceTestCaseBase#validateChanges() 141 */ 142 @Override 143 protected boolean validateChanges() { 144 recipientList1 = new NotificationRecipientList(); 145 recipientList2 = new NotificationRecipientList(); 146 147 HashMap criteria = new HashMap(); 148 149 criteria.put(NotificationConstants.BO_PROPERTY_NAMES.CHANNEL_ID, channel1.getId()); 150 criteria.put(NotificationConstants.BO_PROPERTY_NAMES.RECIPIENT_TYPE, recipientTypes[0]); 151 criteria.put(NotificationConstants.BO_PROPERTY_NAMES.RECIPIENT_ID, updatedRecipientIds[0]); 152 recipientList1 = (NotificationRecipientList) (businessObjectDao.findMatching(NotificationRecipientList.class, criteria)).iterator().next(); 153 154 criteria.clear(); 155 156 criteria.put(NotificationConstants.BO_PROPERTY_NAMES.CHANNEL_ID, channel2.getId()); 157 criteria.put(NotificationConstants.BO_PROPERTY_NAMES.RECIPIENT_TYPE, recipientTypes[1]); 158 criteria.put(NotificationConstants.BO_PROPERTY_NAMES.RECIPIENT_ID, updatedRecipientIds[1]); 159 recipientList2 = (NotificationRecipientList) (businessObjectDao.findMatching(NotificationRecipientList.class, criteria)).iterator().next(); 160 161 boolean success = true; 162 163 success &= recipientList1.getRecipientId().equals(updatedRecipientIds[0]); 164 success &= recipientList2.getRecipientId().equals(updatedRecipientIds[1]); 165 166 return success; 167 } 168 }