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.kcb.dao;
017
018 import org.junit.Ignore;
019 import org.junit.Test;
020 import org.kuali.rice.kcb.bo.RecipientPreference;
021 import org.kuali.rice.kcb.test.BusinessObjectTestCase;
022
023 import java.util.HashMap;
024
025 import static org.junit.Assert.assertEquals;
026 import static org.junit.Assert.assertNotNull;
027
028 /**
029 * This class test basic persistence for the RecipientPreference business object.
030 *
031 * @author Kuali Rice Team (rice.collab@kuali.org)
032 */
033 public class RecipientPreferenceDaoTest extends BusinessObjectTestCase {
034 RecipientPreference pref1 = new RecipientPreference();
035 RecipientPreference pref2 = new RecipientPreference();
036
037 private String[] recipientTypes = {"Type 1", "Type 2"};
038 private String[] recipientIds = {"unit_test_recip1", "unit_test_recip2"};
039 private String[] propertys = {"Property A", "Property B"};
040 private String[] values = {"Value A", "Value B"};
041 private String[] updatedValues = {"Value C", "Value D"};
042
043 /**
044 * @see org.kuali.rice.ken.dao.BusinessObjectPersistenceTestCaseBase#delete()
045 */
046 @Test
047 @Override
048 public void testDelete() {
049 testCreate();
050 businessObjectDao.delete(pref1);
051 businessObjectDao.delete(pref2);
052 }
053
054 /**
055 * @see org.kuali.rice.ken.dao.BusinessObjectPersistenceTestCaseBase#retrieve()
056 */
057 @Test
058 @Override
059 public void testReadByQuery() {
060 testCreate();
061
062 HashMap criteria = new HashMap();
063
064 criteria.put(RecipientPreference.RECIPIENT_FIELD, recipientIds[0]);
065 criteria.put(RecipientPreference.PROPERTY_FIELD, propertys[0]);
066 pref1 = (RecipientPreference) businessObjectDao.findByUniqueKey(RecipientPreference.class, criteria);
067
068 criteria.clear();
069
070 criteria.put(RecipientPreference.RECIPIENT_FIELD, recipientIds[1]);
071 criteria.put(RecipientPreference.PROPERTY_FIELD, propertys[1]);
072 pref2 = (RecipientPreference) businessObjectDao.findByUniqueKey(RecipientPreference.class, criteria);
073
074 assertNotNull(pref1);
075 assertEquals(recipientIds[0], pref1.getRecipientId());
076
077 assertNotNull(pref2);
078 assertEquals(recipientIds[1], pref2.getRecipientId());
079
080 }
081
082 /**
083 * @see org.kuali.rice.ken.dao.BusinessObjectPersistenceTestCaseBase#insert()
084 */
085 @Test
086 @Override
087 public void testCreate() {
088 pref1.setRecipientId(recipientIds[0]);
089 pref1.setProperty(propertys[0]);
090 pref1.setValue(values[0]);
091
092 pref2.setRecipientId(recipientIds[1]);
093 pref2.setProperty(propertys[1]);
094 pref2.setValue(values[1]);
095
096 businessObjectDao.save(pref1);
097 businessObjectDao.save(pref2);
098 }
099
100 /**
101 * @see org.kuali.rice.ken.dao.BusinessObjectPersistenceTestCaseBase#update()
102 */
103 @Test
104 @Ignore // until I fix how this test uses test data
105 @Override
106 public void testUpdate() {
107 testCreate();
108 pref1.setValue(updatedValues[0]);
109
110 pref2.setValue(updatedValues[1]);
111
112 businessObjectDao.save(pref1);
113 businessObjectDao.save(pref2);
114
115 testReadByQuery();
116
117 assertEquals(updatedValues[0], pref1.getValue());
118 assertEquals(updatedValues[1], pref2.getValue());
119 }
120 }