001 /*
002 * Copyright 2006-2012 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
017 package edu.samplu.travel.krad.test;
018
019 import edu.sampleu.travel.bo.TravelAccount;
020 import edu.sampleu.travel.bo.TravelAccountExtension;
021 import edu.sampleu.travel.bo.TravelAccountType;
022 import org.junit.Assert;
023 import org.junit.Test;
024 import org.kuali.rice.core.api.util.type.KualiPercent;
025 import org.kuali.rice.kew.api.exception.WorkflowException;
026 import org.kuali.rice.krad.exception.ValidationException;
027 import org.kuali.rice.krad.service.BusinessObjectService;
028 import org.kuali.rice.krad.service.KRADServiceLocator;
029 import org.kuali.rice.krad.service.KRADServiceLocatorWeb;
030 import org.kuali.rice.location.impl.campus.CampusTypeBo;
031 import org.kuali.rice.test.BaselineTestCase;
032 import org.kuali.test.BaseMaintenanceDocumentTest;
033 /*
034 import org.kuali.rice.test.BaselineTestCase;
035 import org.kuali.test.BaseMaintenanceDocumentTest;
036 */
037
038 import java.util.HashMap;
039
040 import static junit.framework.Assert.assertNotNull;
041
042 /**
043 * TravelAccountMaintenanceDocumentTest tests that the TravelAccountMaintenanceDocument can be routed to final
044 *
045 */
046 @BaselineTestCase.BaselineMode(BaselineTestCase.Mode.NONE)
047 public class TravelAccountMaintenanceDocumentTest extends BaseMaintenanceDocumentTest {
048 private BusinessObjectService businessObjectService;
049 String travAcctNumber = "8097";
050
051 @Override
052 public void setUp() throws Exception {
053 super.setUp();
054 businessObjectService = KRADServiceLocator.getBusinessObjectService();
055
056 }
057
058 @Override
059 protected Object getNewMaintainableObject() {
060 // create new account
061 TravelAccount ac = new TravelAccount();
062 ac.setName("unit-test-acc");
063 ac.setSubsidizedPercent(new KualiPercent(0.02));
064 ac.setNumber(travAcctNumber);
065
066 //set the account type
067 TravelAccountExtension travExtension = new TravelAccountExtension();
068
069 HashMap<String, String> primaryKeys = new HashMap<String, String>(1);
070 primaryKeys.put("accountTypeCode", "EAT");
071 TravelAccountType expAcctType = businessObjectService.findByPrimaryKey(TravelAccountType.class, primaryKeys);
072 travExtension.setAccountType(expAcctType);
073 travExtension.setNumber(travAcctNumber);
074
075 ac.setExtension(travExtension);
076
077
078 return ac;
079 }
080
081 @Override
082 protected String getDocumentTypeName() {
083 return "TravelAccountMaintenanceDocument";
084 }
085
086 @Override
087 protected String getInitiatorPrincipalName() {
088 return "admin";
089 }
090
091 @Override
092 protected Object getOldMaintainableObject() {
093 return getNewMaintainableObject();
094 }
095
096 @Test
097 /**
098 * test that a validation error occurs when a business object is missing required fields
099 */
100 public void testRouteNewDoc() throws WorkflowException {
101 setupNewAccountMaintDoc(getDocument());
102 KRADServiceLocatorWeb.getDocumentService().routeDocument(getDocument(), "submit", null);
103 Assert.assertTrue(getDocument().getDocumentHeader().getWorkflowDocument().isFinal());
104 //check for account
105 HashMap<String, String> primaryKeys = new HashMap<String, String>(1);
106 primaryKeys.put("number", travAcctNumber);
107 TravelAccount travAcct = businessObjectService.findByPrimaryKey(TravelAccount.class, primaryKeys);
108 assertNotNull(travAcct);
109 }
110 }