1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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
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 }