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    }