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.krms.test;
017
018 import java.util.Collections;
019
020 import org.junit.Before;
021 import org.junit.Test;
022 import org.kuali.rice.krms.api.repository.context.ContextDefinition;
023 import org.kuali.rice.krms.api.repository.term.TermDefinition;
024 import org.kuali.rice.krms.api.repository.term.TermParameterDefinition;
025 import org.kuali.rice.krms.api.repository.term.TermResolverDefinition;
026 import org.kuali.rice.krms.api.repository.term.TermSpecificationDefinition;
027 import org.kuali.rice.krms.api.repository.type.KrmsTypeDefinition;
028 import org.kuali.rice.krms.api.repository.type.KrmsTypeRepositoryService;
029 import org.kuali.rice.krms.impl.repository.ContextBoService;
030 import org.kuali.rice.krms.impl.repository.ContextBoServiceImpl;
031 import org.kuali.rice.krms.impl.repository.KrmsTypeBoServiceImpl;
032 import org.kuali.rice.krms.impl.repository.TermBoService;
033 import org.kuali.rice.krms.impl.repository.TermBoServiceImpl;
034 import org.kuali.rice.test.BaselineTestCase.BaselineMode;
035 import org.kuali.rice.test.BaselineTestCase.Mode;
036
037 @BaselineMode(Mode.CLEAR_DB)
038 public class TermRelatedBoTest extends AbstractBoTest {
039
040 private TermBoService termBoService;
041 private ContextBoService contextRepository;
042 private KrmsTypeRepositoryService krmsTypeRepository;
043
044 @Before
045 public void setup() {
046
047 // wire up BO services
048
049 termBoService = new TermBoServiceImpl();
050 ((TermBoServiceImpl)termBoService).setBusinessObjectService(getBoService());
051
052 contextRepository = new ContextBoServiceImpl();
053 ((ContextBoServiceImpl)contextRepository).setBusinessObjectService(getBoService());
054
055 krmsTypeRepository = new KrmsTypeBoServiceImpl();
056 ((KrmsTypeBoServiceImpl)krmsTypeRepository).setBusinessObjectService(getBoService());
057 }
058
059 @Test
060 public void creationTest() {
061
062 // KrmsType for context
063 KrmsTypeDefinition krmsContextTypeDefinition = KrmsTypeDefinition.Builder.create("KrmsTestContextType", "KRMS").build();
064 krmsContextTypeDefinition = krmsTypeRepository.createKrmsType(krmsContextTypeDefinition);
065
066 // Context
067 ContextDefinition.Builder contextBuilder = ContextDefinition.Builder.create("KRMS", "testContext");
068 contextBuilder.setTypeId(krmsContextTypeDefinition.getId());
069 ContextDefinition contextDefinition = contextBuilder.build();
070 contextDefinition = contextRepository.createContext(contextDefinition);
071
072 // output TermSpec
073 TermSpecificationDefinition outputTermSpec =
074 TermSpecificationDefinition.Builder.create(null, "outputTermSpec", contextDefinition.getId(),
075 "java.lang.String").build();
076 outputTermSpec = termBoService.createTermSpecification(outputTermSpec);
077
078 // prereq TermSpec
079 TermSpecificationDefinition prereqTermSpec =
080 TermSpecificationDefinition.Builder.create(null, "prereqTermSpec", contextDefinition.getId(),
081 "java.lang.String").build();
082 prereqTermSpec = termBoService.createTermSpecification(prereqTermSpec);
083
084 // KrmsType for TermResolver
085 KrmsTypeDefinition krmsTermResolverTypeDefinition = KrmsTypeDefinition.Builder.create("KrmsTestResolverType", "KRMS").build();
086 krmsTermResolverTypeDefinition = krmsTypeRepository.createKrmsType(krmsTermResolverTypeDefinition);
087
088 // TermResolver
089 TermResolverDefinition termResolverDef =
090 TermResolverDefinition.Builder.create(null, "KRMS", "testResolver", krmsTermResolverTypeDefinition.getId(),
091 TermSpecificationDefinition.Builder.create(outputTermSpec),
092 Collections.singleton(TermSpecificationDefinition.Builder.create(prereqTermSpec)),
093 null,
094 Collections.singleton("testParamName")).build();
095 termResolverDef = termBoService.createTermResolver(termResolverDef);
096
097 // Term Param
098 TermParameterDefinition.Builder termParamBuilder =
099 TermParameterDefinition.Builder.create(null, null, "testParamName", "testParamValue");
100
101 // Term
102 TermDefinition termDefinition =
103 TermDefinition.Builder.create(null, TermSpecificationDefinition.Builder.create(outputTermSpec), Collections.singletonList(termParamBuilder)).build();
104 termBoService.createTerm(termDefinition);
105 }
106
107 }