1 /**
2 * Copyright 2005-2011 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.krad.util;
17
18 import org.junit.Test;
19 import org.kuali.rice.core.impl.parameter.ParameterBo;
20 import org.kuali.rice.krad.datadictionary.AttributeDefinition;
21 import org.kuali.rice.krad.datadictionary.DataDictionaryEntryBase;
22 import org.kuali.rice.krad.service.KRADServiceLocatorWeb;
23 import org.kuali.test.KRADTestCase;
24
25 import static org.junit.Assert.assertFalse;
26
27 /**
28 * ObjectUtilsTest
29 *
30 * @author Kuali Rice Team (rice.collab@kuali.org)
31 */
32 public class ObjectUtilsTest extends KRADTestCase {
33 @Test
34 public void testObjectUtils_equalsByKey() throws Exception {
35 ParameterBo parameterInDB = new ParameterBo();
36 parameterInDB.setNamespaceCode("KR-NS");
37 parameterInDB.setName("OBJ_UTIL_TEST");
38
39 ParameterBo parameterNew = new ParameterBo();
40 parameterNew.setNamespaceCode("KR-NS");
41 parameterInDB.setName(null);
42
43 boolean equalsResult = false;
44 equalsResult = ObjectUtils.equalByKeys(parameterInDB, parameterNew);
45 assertFalse(equalsResult);
46 }
47
48 /* @Test
49 public void testGetFormatterWithDataDictionary() throws Exception {
50 // test formatter getting correctly pulled from data dictionary
51 TravelAccountUseRate useRate = new TravelAccountUseRate();
52 Formatter formatter = ObjectUtils.getFormatterWithDataDictionary(useRate, "active");
53 assertTrue("Incorrect formatter returned for active property", formatter instanceof BooleanFormatter);
54
55 changeAttributeDefinitionFormatter(useRate.getClass(), "active", IntegerFormatter.class);
56 formatter = ObjectUtils.getFormatterWithDataDictionary(useRate, "active");
57 assertTrue("Incorrect formatter returned for active property", formatter instanceof IntegerFormatter);
58
59 // test formatter getting correctly pulled by data type
60 formatter = ObjectUtils.getFormatterWithDataDictionary(useRate, "activeFromDate");
61 assertTrue("Incorrect formatter returned for date type", formatter instanceof DateFormatter);
62
63 formatter = ObjectUtils.getFormatterWithDataDictionary(useRate, "rate");
64 assertTrue("Incorrect formatter returned for percent type", formatter instanceof PercentageFormatter);
65
66 formatter = ObjectUtils.getFormatterWithDataDictionary(useRate, "number");
67 assertTrue("Incorrect formatter returned for string type", formatter.getClass().getName().equals("org.kuali.rice.core.web.format.Formatter"));
68 }
69 */
70 private void changeAttributeDefinitionFormatter(Class boClass, String attributeName, Class formatterClass) {
71 DataDictionaryEntryBase entry = (DataDictionaryEntryBase) KRADServiceLocatorWeb.getDataDictionaryService()
72 .getDataDictionary().getDictionaryObjectEntry(boClass.getName());
73 if (entry != null) {
74 AttributeDefinition attributeDefinition = entry.getAttributeDefinition(attributeName);
75 attributeDefinition.setFormatterClass(formatterClass.getName());
76 }
77 }
78 }