View Javadoc
1   /**
2    * Copyright 2005-2014 The Kuali Foundation
3    *
4    * Licensed under the Educational Community License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    * http://www.opensource.org/licenses/ecl2.php
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  package org.kuali.rice.kcb.dao;
17  
18  import org.junit.Test;
19  import org.kuali.rice.core.api.criteria.QueryByCriteria;
20  import org.kuali.rice.kcb.bo.RecipientPreference;
21  import org.kuali.rice.kcb.test.KCBTestCase;
22  import org.kuali.rice.krad.bo.DataObjectBase;
23  import org.kuali.rice.krad.data.DataObjectService;
24  import org.kuali.rice.krad.data.PersistenceOption;
25  import org.kuali.rice.krad.service.KRADServiceLocator;
26  
27  import java.util.List;
28  
29  import static org.junit.Assert.assertEquals;
30  import static org.junit.Assert.assertNotNull;
31  
32  import static org.kuali.rice.core.api.criteria.PredicateFactory.equal;
33  
34  /**
35   * This class test basic persistence for the RecipientPreference business object.
36   * 
37   * @author Kuali Rice Team (rice.collab@kuali.org)
38   */
39  public class RecipientPreferenceDaoTest extends KCBTestCase {
40  
41      private String[] recipientIds = {"unit_test_recip1", "unit_test_recip2"};
42      private String[] propertys = {"Property A", "Property B"};
43      private String[] values = {"Value A", "Value B"};
44      private String[] updatedValues = {"Value C", "Value D"};
45  
46      /**
47       * Tests creating a {@link RecipientPreference}.
48       */
49      @Test
50      public void testCreate() {
51          RecipientPreference pref1 = createRecipientPreference(0);
52          assertNotNull(pref1.getId());
53  
54          RecipientPreference pref2 = createRecipientPreference(1);
55          assertNotNull(pref2.getId());
56      }
57      
58      /**
59       * Tests finding a {@link RecipientPreference}.
60       */
61      @Test
62      public void testFind() {
63          RecipientPreference pref1 = createRecipientPreference(0);
64          RecipientPreference pref2 = createRecipientPreference(1);
65  
66          QueryByCriteria.Builder criteria1 = QueryByCriteria.Builder.create();
67          criteria1.setPredicates(equal(RecipientPreference.RECIPIENT_FIELD, recipientIds[0]),
68                  equal(RecipientPreference.PROPERTY_FIELD, propertys[0]));
69          List<RecipientPreference> prefs1 =
70                  getDataObjectService().findMatching(RecipientPreference.class, criteria1.build()).getResults();
71  
72          assertNotNull(pref1);
73          assertEquals(prefs1.size(), 1);
74  
75          pref1 = prefs1.get(0);
76          assertNotNull(pref1);
77          assertEquals(recipientIds[0], pref1.getRecipientId());
78  
79          QueryByCriteria.Builder criteria2 = QueryByCriteria.Builder.create();
80          criteria2.setPredicates(equal(RecipientPreference.RECIPIENT_FIELD, recipientIds[1]),
81                  equal(RecipientPreference.PROPERTY_FIELD, propertys[1]));
82          List<RecipientPreference> prefs2 =
83                  getDataObjectService().findMatching(RecipientPreference.class, criteria2.build()).getResults();
84  
85          assertNotNull(pref2);
86          assertEquals(prefs2.size(), 1);
87          pref2 = prefs2.get(0);
88          assertNotNull(pref2);
89          assertEquals(recipientIds[1], pref2.getRecipientId());
90      }
91      
92      /**
93       * Tests updating a {@link RecipientPreference}.
94       */
95      @Test
96      public void testUpdate() {
97          RecipientPreference pref1 = createRecipientPreference(0);
98          RecipientPreference pref2 = createRecipientPreference(1);
99  
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 }