001 /** 002 * Copyright 2005-2013 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.kim.impl.common; 017 018 import org.junit.Before; 019 import org.junit.Test; 020 import org.kuali.rice.kim.api.common.attribute.KimAttribute; 021 import org.kuali.rice.kim.api.common.attribute.KimAttributeContract; 022 import org.kuali.rice.kim.api.type.KimType; 023 import org.kuali.rice.kim.api.type.KimTypeAttributeContract; 024 import org.kuali.rice.kim.api.type.KimTypeContract; 025 import org.kuali.rice.kim.api.type.KimTypeInfoService; 026 import org.kuali.rice.kim.impl.common.attribute.KimAttributeDataBo; 027 import org.kuali.rice.kim.impl.group.GroupAttributeBo; 028 import org.kuali.rice.kim.impl.type.KimTypeBo; 029 030 import java.util.ArrayList; 031 import java.util.HashMap; 032 import java.util.List; 033 import java.util.Map; 034 035 import static org.junit.Assert.*; 036 import static org.mockito.Mockito.*; 037 038 039 public class KimAttributeDataBoTest { 040 041 private static KimTypeContract mockKimTypeContract; 042 private static KimAttributeContract mockKimAttributeContract; 043 044 private KimTypeInfoService mockInfoService; 045 046 private static KimType create() { 047 return KimType.Builder.create(mockKimTypeContract).build(); 048 } 049 050 private static KimAttribute createKimAttribute() { 051 return KimAttribute.Builder.create(mockKimAttributeContract).build(); 052 } 053 054 @Before 055 public void setup() throws Exception { 056 057 mockKimAttributeContract = mock(KimAttributeContract.class); 058 { 059 Long versionNumber = 1L; 060 String attributeName = "one"; 061 String namespaceCode = "namespaceCode"; 062 String id = "id_one"; 063 when( mockKimAttributeContract.getVersionNumber()).thenReturn(versionNumber); 064 when( mockKimAttributeContract.getAttributeName()).thenReturn(attributeName); 065 when( mockKimAttributeContract.getNamespaceCode()).thenReturn(namespaceCode); 066 when( mockKimAttributeContract.getId() ).thenReturn(id); 067 } 068 069 KimTypeAttributeContract one = mock(KimTypeAttributeContract.class); 070 { 071 String id = "one"; 072 Long versionNumber = 1L; 073 KimAttribute attribute = createKimAttribute(); 074 when(one.getKimAttribute()).thenReturn(attribute); 075 when(one.getId()).thenReturn(id); 076 when(one.getVersionNumber()).thenReturn(versionNumber); 077 } 078 079 080 mockKimTypeContract = mock(KimTypeContract.class); 081 { 082 String id = new String("27"); 083 String serviceName = "barService"; 084 String namespaceCode ="NAMESPACE CODE"; 085 String name = "mock Kim Type Contract"; 086 Long versionNumber = 1L; 087 String objectId = "1"; 088 List attributeDefinitions = new ArrayList<KimTypeAttributeContract>(); 089 attributeDefinitions.add(one); 090 when(mockKimTypeContract.getId()).thenReturn(id); 091 when(mockKimTypeContract.getServiceName()).thenReturn(serviceName); 092 when(mockKimTypeContract.getNamespaceCode()).thenReturn(namespaceCode); 093 when(mockKimTypeContract.getName()).thenReturn(name); 094 when(mockKimTypeContract.getVersionNumber()).thenReturn(versionNumber); 095 when(mockKimTypeContract.getObjectId()).thenReturn(objectId); 096 when(mockKimTypeContract.getAttributeDefinitions()).thenReturn(attributeDefinitions); 097 } 098 099 KimType kimType = create(); 100 mockInfoService = mock(KimTypeInfoService.class); 101 { 102 when( mockInfoService.getKimType(anyString()) ).thenReturn(kimType); 103 } 104 105 } 106 107 @Test 108 public void testKimAttributeDataBo() { 109 KimType kimType = create(); 110 Map<String,String> attributes = new HashMap<String,String>(); //{organizationCode=COMP, chartOfAccountsCode=BL} 111 attributes.put("one","one"); 112 113 String kimTypeId = "27"; 114 115 assertEquals(kimType.getId(), "27"); 116 117 KimAttributeDataBo.setKimTypeInfoService(mockInfoService); 118 119 GroupAttributeBo groupQualifier = KimAttributeDataBo.createFrom(GroupAttributeBo.class, attributes, kimTypeId).get(0); 120 121 assertNotNull(groupQualifier.getKimType()); 122 assertEquals(groupQualifier.getKimType().getId(), KimTypeBo.from(kimType).getId()); 123 124 } 125 126 }