1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.kuali.kfs.module.ar.service;
20
21 import static org.kuali.kfs.sys.fixture.UserNameFixture.khuntley;
22
23 import java.util.ArrayList;
24 import java.util.List;
25
26 import org.kuali.kfs.integration.ar.AccountsReceivableModuleBillingService;
27 import org.kuali.kfs.module.ar.businessobject.Bill;
28 import org.kuali.kfs.module.ar.businessobject.Milestone;
29 import org.kuali.kfs.module.ar.businessobject.MilestoneSchedule;
30 import org.kuali.kfs.module.ar.businessobject.PredeterminedBillingSchedule;
31 import org.kuali.kfs.sys.ConfigureContext;
32 import org.kuali.kfs.sys.context.KualiTestBase;
33 import org.kuali.kfs.sys.context.SpringContext;
34 import org.kuali.rice.krad.service.BusinessObjectService;
35
36
37
38
39 @ConfigureContext(session = khuntley)
40 public class AccountsReceivableModuleBillingServiceTest extends KualiTestBase {
41 protected AccountsReceivableModuleBillingService accountsReceivableModuleBillingService;
42 protected BusinessObjectService businessObjectService;
43
44 @Override
45 public void setUp() {
46 accountsReceivableModuleBillingService = SpringContext.getBean(AccountsReceivableModuleBillingService.class);
47 businessObjectService = SpringContext.getBean(BusinessObjectService.class);
48 }
49
50 public void testHasActiveBills() {
51 setupPredeterminedBillingSchedule(1L, true);
52 setupPredeterminedBillingSchedule(2L, false);
53
54 assertTrue(accountsReceivableModuleBillingService.hasActiveBills(1L));
55 assertFalse(accountsReceivableModuleBillingService.hasActiveBills(2L));
56 assertFalse(accountsReceivableModuleBillingService.hasActiveBills(111L));
57 }
58
59 public void testHasActiveMilestones() {
60 setupMilestoneSchedule(1L, true);
61 setupMilestoneSchedule(2L, false);
62
63 assertTrue(accountsReceivableModuleBillingService.hasActiveMilestones(1L));
64 assertFalse(accountsReceivableModuleBillingService.hasActiveMilestones(2L));
65 assertFalse(accountsReceivableModuleBillingService.hasActiveMilestones(111L));
66 }
67
68 protected void setupMilestoneSchedule(Long proposalNumber, boolean active) {
69 Milestone milestone = new Milestone();
70 milestone.setProposalNumber(proposalNumber);
71 milestone.setMilestoneNumber(proposalNumber);
72 milestone.setMilestoneIdentifier(proposalNumber + 1000L);
73 milestone.setActive(active);
74
75 MilestoneSchedule milestoneSchedule = new MilestoneSchedule();
76 milestoneSchedule.setProposalNumber(proposalNumber);
77 List<Milestone> milestones = new ArrayList<Milestone>();
78 milestones.add(milestone);
79 milestoneSchedule.setMilestones(milestones);
80 businessObjectService.save(milestoneSchedule);
81 businessObjectService.save(milestone);
82 }
83
84 protected void setupPredeterminedBillingSchedule(Long proposalNumber, boolean active) {
85 Bill bill = new Bill();
86 bill.setProposalNumber(proposalNumber);
87 bill.setBillNumber(proposalNumber);
88 bill.setBillIdentifier(proposalNumber + 1000L);
89 bill.setActive(active);
90
91 PredeterminedBillingSchedule predeterminedBillingSchedule = new PredeterminedBillingSchedule();
92 predeterminedBillingSchedule.setProposalNumber(proposalNumber);
93 List<Bill> bills = new ArrayList<Bill>();
94 bills.add(bill);
95 predeterminedBillingSchedule.setBills(bills);
96 businessObjectService.save(predeterminedBillingSchedule);
97 businessObjectService.save(bill);
98 }
99
100 }