001    /**
002     * Copyright 2005-2013 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.NotificationPriorityBo;
021    import org.kuali.rice.ken.test.util.MockObjectsUtil;
022    import org.kuali.rice.ken.util.NotificationConstants;
023    
024    
025    /**
026     * This class test basic persistence for the NotificationPriority business object.
027     * 
028     * @author Kuali Rice Team (rice.collab@kuali.org)
029     */
030    public class NotificationPriorityDaoTest extends BusinessObjectPersistenceTestCaseBase {
031        NotificationPriorityBo mockPriority1 = MockObjectsUtil.getTestPriority1();
032        NotificationPriorityBo priority1 = MockObjectsUtil.getTestPriority1();
033        
034        private String[] updatedDescriptions = {"Test 1 - updated description", "Test 2 - updated description"};
035        
036        /**
037         * @see org.kuali.rice.ken.dao.BusinessObjectPersistenceTestCaseBase#delete()
038         */
039        @Override
040        protected boolean delete() {
041            try {
042                businessObjectDao.delete(priority1);
043            } catch(Exception e) {
044                return false;
045            }
046            return true;
047        }
048        
049        /**
050         * @see org.kuali.rice.ken.dao.BusinessObjectPersistenceTestCaseBase#retrieve()
051         */
052        @Override
053        protected boolean retrieve() {
054            priority1 = new NotificationPriorityBo();
055            
056            HashMap criteria = new HashMap();
057            
058            criteria.put(NotificationConstants.BO_PROPERTY_NAMES.NAME, mockPriority1.getName());
059            priority1 = (NotificationPriorityBo) (businessObjectDao.findMatching(NotificationPriorityBo.class, criteria)).iterator().next();
060            
061            boolean success = true;
062            
063            success &= priority1 != null;
064            success &= priority1.getDescription().equals(mockPriority1.getDescription());
065            
066            return success;
067        }
068        
069        /**
070         * @see org.kuali.rice.ken.dao.BusinessObjectPersistenceTestCaseBase#insert()
071         */
072        @Override
073        protected boolean insert() {
074            try {
075                businessObjectDao.save(priority1);
076            } catch(Exception e) {
077                return false;
078            }
079            return true;
080        }
081        
082        /**
083         * @see org.kuali.rice.ken.dao.BusinessObjectPersistenceTestCaseBase#update()
084         */
085        @Override
086        protected boolean update() {
087            priority1.setDescription(updatedDescriptions[0]);
088            
089            try {
090                businessObjectDao.save(priority1);
091            } catch(Exception e) {
092                return false;
093            }
094            return true;
095        }
096        
097        /**
098         * @see org.kuali.rice.ken.dao.BusinessObjectPersistenceTestCaseBase#validateChanges()
099         */
100        @Override
101        protected boolean validateChanges() {
102            retrieve();  //retrieve fresh again
103            
104            boolean success = true;
105            
106            success &= priority1.getDescription().equals(updatedDescriptions[0]);
107                
108            return success;
109        }
110    }