001/** 002 * Copyright 2005-2014 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 */ 016package org.kuali.rice.kcb.dao; 017 018import org.junit.Test; 019import org.kuali.rice.core.api.criteria.QueryByCriteria; 020import org.kuali.rice.kcb.bo.RecipientPreference; 021import org.kuali.rice.kcb.test.KCBTestCase; 022import org.kuali.rice.krad.bo.DataObjectBase; 023import org.kuali.rice.krad.data.DataObjectService; 024import org.kuali.rice.krad.data.PersistenceOption; 025import org.kuali.rice.krad.service.KRADServiceLocator; 026 027import java.util.List; 028 029import static org.junit.Assert.assertEquals; 030import static org.junit.Assert.assertNotNull; 031 032import static org.kuali.rice.core.api.criteria.PredicateFactory.equal; 033 034/** 035 * This class test basic persistence for the RecipientPreference business object. 036 * 037 * @author Kuali Rice Team (rice.collab@kuali.org) 038 */ 039public class RecipientPreferenceDaoTest extends KCBTestCase { 040 041 private String[] recipientIds = {"unit_test_recip1", "unit_test_recip2"}; 042 private String[] propertys = {"Property A", "Property B"}; 043 private String[] values = {"Value A", "Value B"}; 044 private String[] updatedValues = {"Value C", "Value D"}; 045 046 /** 047 * Tests creating a {@link RecipientPreference}. 048 */ 049 @Test 050 public void testCreate() { 051 RecipientPreference pref1 = createRecipientPreference(0); 052 assertNotNull(pref1.getId()); 053 054 RecipientPreference pref2 = createRecipientPreference(1); 055 assertNotNull(pref2.getId()); 056 } 057 058 /** 059 * Tests finding a {@link RecipientPreference}. 060 */ 061 @Test 062 public void testFind() { 063 RecipientPreference pref1 = createRecipientPreference(0); 064 RecipientPreference pref2 = createRecipientPreference(1); 065 066 QueryByCriteria.Builder criteria1 = QueryByCriteria.Builder.create(); 067 criteria1.setPredicates(equal(RecipientPreference.RECIPIENT_FIELD, recipientIds[0]), 068 equal(RecipientPreference.PROPERTY_FIELD, propertys[0])); 069 List<RecipientPreference> prefs1 = 070 getDataObjectService().findMatching(RecipientPreference.class, criteria1.build()).getResults(); 071 072 assertNotNull(pref1); 073 assertEquals(prefs1.size(), 1); 074 075 pref1 = prefs1.get(0); 076 assertNotNull(pref1); 077 assertEquals(recipientIds[0], pref1.getRecipientId()); 078 079 QueryByCriteria.Builder criteria2 = QueryByCriteria.Builder.create(); 080 criteria2.setPredicates(equal(RecipientPreference.RECIPIENT_FIELD, recipientIds[1]), 081 equal(RecipientPreference.PROPERTY_FIELD, propertys[1])); 082 List<RecipientPreference> prefs2 = 083 getDataObjectService().findMatching(RecipientPreference.class, criteria2.build()).getResults(); 084 085 assertNotNull(pref2); 086 assertEquals(prefs2.size(), 1); 087 pref2 = prefs2.get(0); 088 assertNotNull(pref2); 089 assertEquals(recipientIds[1], pref2.getRecipientId()); 090 } 091 092 /** 093 * Tests updating a {@link RecipientPreference}. 094 */ 095 @Test 096 public void testUpdate() { 097 RecipientPreference pref1 = createRecipientPreference(0); 098 RecipientPreference pref2 = createRecipientPreference(1); 099 100 pref1.setValue(updatedValues[0]); 101 pref2.setValue(updatedValues[1]); 102 103 pref1 = KRADServiceLocator.getDataObjectService().save(pref1, PersistenceOption.FLUSH); 104 pref2 = KRADServiceLocator.getDataObjectService().save(pref2, PersistenceOption.FLUSH); 105 106 assertEquals(updatedValues[0], pref1.getValue()); 107 assertEquals(updatedValues[1], pref2.getValue()); 108 } 109 110 /** 111 * Tests deleting a {@link RecipientPreference}. 112 */ 113 @Test 114 public void testDelete() { 115 RecipientPreference pref1 = createRecipientPreference(0); 116 RecipientPreference pref2 = createRecipientPreference(1); 117 118 KRADServiceLocator.getDataObjectService().delete(pref1); 119 KRADServiceLocator.getDataObjectService().delete(pref2); 120 121 assertEquals(0, getDataObjectService().findAll(RecipientPreference.class).getResults().size()); 122 123 } 124 125 private RecipientPreference createRecipientPreference(int index) { 126 RecipientPreference recipientPreference = new RecipientPreference(); 127 recipientPreference.setRecipientId(recipientIds[index]); 128 recipientPreference.setProperty(propertys[index]); 129 recipientPreference.setValue(values[index]); 130 131 return getDataObjectService().save(recipientPreference, PersistenceOption.FLUSH); 132 } 133 134 private DataObjectService getDataObjectService() { 135 return KRADServiceLocator.getDataObjectService(); 136 } 137 138}