View Javadoc
1   /*
2    * The Kuali Financial System, a comprehensive financial management system for higher education.
3    * 
4    * Copyright 2005-2014 The Kuali Foundation
5    * 
6    * This program is free software: you can redistribute it and/or modify
7    * it under the terms of the GNU Affero General Public License as
8    * published by the Free Software Foundation, either version 3 of the
9    * License, or (at your option) any later version.
10   * 
11   * This program is distributed in the hope that it will be useful,
12   * but WITHOUT ANY WARRANTY; without even the implied warranty of
13   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14   * GNU Affero General Public License for more details.
15   * 
16   * You should have received a copy of the GNU Affero General Public License
17   * along with this program.  If not, see <http://www.gnu.org/licenses/>.
18   */
19  package org.kuali.kfs.module.purap.document.service;
20  
21  import static org.kuali.kfs.sys.fixture.UserNameFixture.khuntley;
22  
23  import java.util.List;
24  
25  import org.kuali.kfs.module.purap.businessobject.PurchasingCapitalAssetItem;
26  import org.kuali.kfs.module.purap.businessobject.PurchasingItem;
27  import org.kuali.kfs.module.purap.businessobject.RequisitionItem;
28  import org.kuali.kfs.module.purap.document.RequisitionDocument;
29  import org.kuali.kfs.module.purap.fixture.RequisitionDocumentFixture;
30  import org.kuali.kfs.module.purap.fixture.RequisitionDocumentWithCapitalAssetItemsFixture;
31  import org.kuali.kfs.module.purap.fixture.RequisitionItemFixture;
32  import org.kuali.kfs.sys.ConfigureContext;
33  import org.kuali.kfs.sys.context.KualiTestBase;
34  import org.kuali.kfs.sys.context.SpringContext;
35  import org.kuali.rice.krad.exception.ValidationException;
36  import org.kuali.rice.krad.util.ObjectUtils;
37  
38  @ConfigureContext(session = khuntley)
39  public class PurchasingServiceTest extends KualiTestBase {
40  
41  
42      @Override
43      protected void setUp() throws Exception {
44          super.setUp();
45  
46      }
47  
48      @Override
49      protected void tearDown() throws Exception {
50  
51          super.tearDown();
52      }
53  
54      public void testSetupCapitalAssetItems() {
55          RequisitionDocument requisition = RequisitionDocumentWithCapitalAssetItemsFixture.REQ_VALID_IND_NEW_CAPITAL_ASSET_ITEM.createRequisitionDocument();
56  
57          SpringContext.getBean(PurchasingService.class).setupCapitalAssetItems(requisition);
58          List<PurchasingCapitalAssetItem> afterFirstCall = requisition.getPurchasingCapitalAssetItems();
59  
60          RequisitionItem item2 = (RequisitionItem)ObjectUtils.deepCopy(requisition.getItem(0));
61          item2.setItemIdentifier(null);
62          requisition.addItem(item2);
63  
64          SpringContext.getBean(PurchasingService.class).setupCapitalAssetItems(requisition);
65          List<PurchasingCapitalAssetItem> afterSecondCall = requisition.getPurchasingCapitalAssetItems();
66          assertTrue(afterSecondCall.size() == 2);
67  
68          for (PurchasingCapitalAssetItem camsItem : afterSecondCall) {
69              assertTrue(camsItem.getPurchasingCapitalAssetSystem() != null);
70          }
71  
72      }
73  
74      @ConfigureContext(session = khuntley, shouldCommitTransactions = true)
75      public void testDeleteCapitalAssetItems() {
76          RequisitionDocument requisition = RequisitionDocumentWithCapitalAssetItemsFixture.REQ_VALID_IND_NEW_CAPITAL_ASSET_ITEM.createRequisitionDocument();
77          requisition.getDocumentHeader().setDocumentDescription("From PurchasingServiceTest)");
78  
79          SpringContext.getBean(PurchasingService.class).setupCapitalAssetItems(requisition);
80  
81          PurchasingItem item2 = RequisitionItemFixture.REQ_ITEM_VALID_CAPITAL_ASSET.createRequisitionItemForCapitalAsset();
82  
83          requisition.addItem(item2);
84  
85          SpringContext.getBean(PurchasingService.class).setupCapitalAssetItems(requisition);
86  
87          SpringContext.getBean(PurapService.class).saveDocumentNoValidation(requisition);
88  
89          //now do the deletion
90          SpringContext.getBean(PurchasingService.class).deleteCapitalAssetItems(requisition, requisition.getItem(0).getItemIdentifier());
91  
92          List<PurchasingCapitalAssetItem> afterDeletion = requisition.getPurchasingCapitalAssetItems();
93  
94          try {
95              SpringContext.getBean(PurapService.class).saveDocumentNoValidation(requisition);
96          } catch ( ValidationException ex ) {
97              fail( "Validation error when saving document without validation: " + dumpMessageMapErrors() );
98          }
99          assertEquals(1, afterDeletion.size());
100 
101         for (PurchasingCapitalAssetItem camsItem : afterDeletion) {
102             assertNotNull("PurchasingCapitalAssetSystem on " + camsItem + " should not have been null", camsItem.getPurchasingCapitalAssetSystem());
103         }
104     }
105 
106     public void testSetupCapitalAssetSystem() {
107         RequisitionDocument requisition = RequisitionDocumentWithCapitalAssetItemsFixture.REQ_VALID_ONE_NEW_CAPITAL_ASSET_ITEM.createRequisitionDocument();
108         SpringContext.getBean(PurchasingService.class).setupCapitalAssetSystem(requisition);
109         assertTrue(requisition.getPurchasingCapitalAssetSystems().size() == 1);
110     }
111 
112     @ConfigureContext(session = khuntley, shouldCommitTransactions = false)
113     public final void testDefaultUseTaxIndicatorValue(){
114 
115         RequisitionDocument requisitionDocument = RequisitionDocumentFixture.REQ_TAX.createRequisitionDocument();
116         requisitionDocument.refreshReferenceObject("vendorDetail");
117 
118         requisitionDocument.getVendorDetail().setDefaultAddressStateCode(requisitionDocument.getVendorStateCode());
119         boolean defaultUseTaxIndicatorValue = SpringContext.getBean(PurchasingService.class).getDefaultUseTaxIndicatorValue(requisitionDocument);
120         assertFalse(defaultUseTaxIndicatorValue);
121     }
122 
123 }