Skip to content

Commit bf4d791

Browse files
Merge pull request #1612 from leoherbie/training-budget
RESKC-938, RESKC-939: upgrading s2s and adding tests #norelease
2 parents 832bf00 + e39d2f7 commit bf4d791

5 files changed

+300
-1
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
package org.kuali.coeus.s2sgen.impl.generate.support;
2+
3+
4+
import org.kuali.coeus.common.budget.framework.period.BudgetPeriod;
5+
import org.kuali.coeus.common.framework.org.Organization;
6+
import org.kuali.coeus.propdev.impl.attachment.Narrative;
7+
import org.kuali.coeus.propdev.impl.budget.ProposalDevelopmentBudgetExt;
8+
import org.kuali.coeus.propdev.impl.core.ProposalDevelopmentDocument;
9+
import org.kuali.coeus.propdev.impl.person.ProposalPerson;
10+
import org.kuali.rice.core.api.criteria.QueryByCriteria;
11+
12+
import org.kuali.rice.krad.data.DataObjectService;
13+
14+
import java.sql.Date;
15+
import java.util.ArrayList;
16+
import java.util.List;
17+
18+
import static org.kuali.coeus.sys.framework.service.KcServiceLocator.getService;
19+
20+
public class PHS398TrainingBudgetV1_0GeneratorTest extends S2SModularBudgetTestBase {
21+
22+
@Override
23+
protected String getFormGeneratorName() {
24+
return PHS398TrainingBudgetV1_0Generator.class.getSimpleName();
25+
}
26+
27+
@Override
28+
protected void prepareData(ProposalDevelopmentDocument document) throws Exception {
29+
Organization organization = getService(DataObjectService.class).findUnique(Organization.class,
30+
QueryByCriteria.Builder.forAttribute("organizationId", "000001").build());
31+
document.getDevelopmentProposal().getApplicantOrganization().setOrganization(organization);
32+
33+
List<Narrative> naList = new ArrayList<>();
34+
35+
Narrative narrative1 = createNarrative("130");
36+
37+
narrative1.setDevelopmentProposal(document.getDevelopmentProposal());
38+
naList.add(narrative1);
39+
document.getDevelopmentProposal().setNarratives(naList);
40+
41+
List<ProposalPerson> proposalPersons = new ArrayList<ProposalPerson>();
42+
ProposalPerson principalInvestigator = new ProposalPerson();
43+
principalInvestigator.setFirstName("ALAN");
44+
principalInvestigator.setLastName("MCAFEE");
45+
principalInvestigator.setProposalPersonRoleId("PI");
46+
principalInvestigator.setPersonId("0001");
47+
principalInvestigator.setRolodexId(0010);
48+
principalInvestigator.setProposalPersonNumber(1);
49+
principalInvestigator.setDevelopmentProposal(document.getDevelopmentProposal());
50+
proposalPersons.add(principalInvestigator);
51+
document.getDevelopmentProposal().setProposalPersons(proposalPersons);
52+
53+
ProposalDevelopmentBudgetExt proposalDevelopmentBudgetExt = new ProposalDevelopmentBudgetExt();
54+
proposalDevelopmentBudgetExt.setDevelopmentProposal(document.getDevelopmentProposal());
55+
proposalDevelopmentBudgetExt.setBudgetVersionNumber(1);
56+
proposalDevelopmentBudgetExt.setBudgetStatus("1");
57+
proposalDevelopmentBudgetExt.setBudgetId(1L);
58+
proposalDevelopmentBudgetExt
59+
.setName("test Document Description");
60+
proposalDevelopmentBudgetExt.setOnOffCampusFlag("Y");
61+
proposalDevelopmentBudgetExt.setStartDate(new Date(new Long(
62+
"1183316613046")));
63+
proposalDevelopmentBudgetExt.setEndDate(new Date(new Long(
64+
"1214852613046")));
65+
proposalDevelopmentBudgetExt.setOhRateTypeCode("1");
66+
proposalDevelopmentBudgetExt.setOhRateClassCode("1");
67+
proposalDevelopmentBudgetExt.setModularBudgetFlag(false);
68+
proposalDevelopmentBudgetExt.setUrRateClassCode("1");
69+
70+
List<BudgetPeriod> budgetPeriods = new ArrayList<BudgetPeriod>();
71+
BudgetPeriod budgetPeriod = new BudgetPeriod();
72+
budgetPeriod.setBudgetPeriodId(1L);
73+
budgetPeriod.setStartDate(new Date(new Long("1183316613046")));
74+
budgetPeriod.setEndDate(new Date(new Long("1214852613046")));
75+
budgetPeriod.setBudgetPeriod(1);
76+
budgetPeriod.setBudget(proposalDevelopmentBudgetExt);
77+
budgetPeriods.add(budgetPeriod);
78+
proposalDevelopmentBudgetExt.setBudgetPeriods(budgetPeriods);
79+
80+
List<ProposalDevelopmentBudgetExt> proposalDevelopmentBudgetExtList = new ArrayList<ProposalDevelopmentBudgetExt>();
81+
proposalDevelopmentBudgetExtList.add(proposalDevelopmentBudgetExt);
82+
document.getDevelopmentProposal().setBudgets(proposalDevelopmentBudgetExtList);
83+
document.getDevelopmentProposal().setFinalBudget(proposalDevelopmentBudgetExt);
84+
85+
}
86+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,194 @@
1+
package org.kuali.coeus.s2sgen.impl.generate.support;
2+
3+
import gov.grants.apply.system.metaGrantApplication.GrantApplicationDocument;
4+
import org.apache.xmlbeans.XmlCursor;
5+
import org.apache.xmlbeans.XmlObject;
6+
import org.junit.Assert;
7+
import org.kuali.coeus.common.budget.framework.period.BudgetPeriod;
8+
import org.kuali.coeus.common.framework.org.Organization;
9+
import org.kuali.coeus.propdev.impl.attachment.Narrative;
10+
import org.kuali.coeus.propdev.impl.budget.ProposalDevelopmentBudgetExt;
11+
import org.kuali.coeus.propdev.impl.budget.subaward.BudgetSubAwards;
12+
import org.kuali.coeus.propdev.impl.core.DevelopmentProposal;
13+
import org.kuali.coeus.propdev.impl.core.ProposalDevelopmentDocument;
14+
import org.kuali.coeus.propdev.impl.core.ProposalDevelopmentService;
15+
import org.kuali.coeus.propdev.impl.location.ProposalSite;
16+
import org.kuali.coeus.propdev.impl.person.ProposalPerson;
17+
import org.kuali.coeus.s2sgen.impl.generate.S2SBaseFormGenerator;
18+
import org.kuali.coeus.sys.framework.service.KcServiceLocator;
19+
import org.kuali.rice.krad.data.DataObjectService;
20+
import org.kuali.rice.krad.service.DocumentService;
21+
22+
import java.sql.Date;
23+
import java.util.ArrayList;
24+
import java.util.Calendar;
25+
import java.util.List;
26+
27+
import static org.kuali.coeus.sys.framework.service.KcServiceLocator.getService;
28+
29+
public abstract class PHS398TrainingSubAwardBudgetBaseGeneratorTest extends S2STestBase {
30+
31+
@Override
32+
protected void prepareData(ProposalDevelopmentDocument document)
33+
throws Exception {
34+
ProposalDevelopmentBudgetExt proposalDevelopmentBudgetExt = new ProposalDevelopmentBudgetExt();
35+
proposalDevelopmentBudgetExt.setBudgetVersionNumber(1);
36+
proposalDevelopmentBudgetExt.setDevelopmentProposal(document.getDevelopmentProposal());
37+
proposalDevelopmentBudgetExt.setBudgetStatus("1");
38+
proposalDevelopmentBudgetExt.setBudgetId(1L);
39+
proposalDevelopmentBudgetExt.setName("test Document Description");
40+
proposalDevelopmentBudgetExt.setOnOffCampusFlag("Y");
41+
proposalDevelopmentBudgetExt.setStartDate(new Date(new Long("1183316613046")));
42+
proposalDevelopmentBudgetExt.setEndDate(new Date(new Long("1214852613046")));
43+
proposalDevelopmentBudgetExt.setOhRateTypeCode("1");
44+
45+
BudgetSubAwards budgetSubAwards = new BudgetSubAwards();
46+
budgetSubAwards.setSubAwardNumber(1);
47+
budgetSubAwards.setBudgetId(1L);
48+
budgetSubAwards.setBudget(proposalDevelopmentBudgetExt);
49+
budgetSubAwards.setNamespace("http://apply.grants.gov/forms/PHS398_TrainingBudget-V1.0");
50+
Organization testOrg = new Organization();
51+
testOrg.setOrganizationName("University of Maine");
52+
testOrg.setOrganizationId("000040");
53+
budgetSubAwards.setOrganization(testOrg);
54+
budgetSubAwards.setSubAwardStatusCode(1);
55+
budgetSubAwards.setHiddenInHierarchy(false);
56+
57+
S2SBaseFormGenerator generatorObject1;
58+
generatorObject1 = KcServiceLocator.getService(PHS398TrainingBudgetV1_0Generator.class.getSimpleName());
59+
generatorObject1.setAttachments(new ArrayList<>());
60+
ProposalDevelopmentDocument doc = initializeDocument();
61+
initializeDevelopmentProposal(doc);
62+
prepareDocData(doc);
63+
doc = saveDocument(doc);
64+
XmlObject object = generatorObject1.getFormObject(doc);
65+
GrantApplicationDocument.GrantApplication.Forms forms = GrantApplicationDocument.GrantApplication.Forms.Factory.newInstance();
66+
setFormObject(forms, object);
67+
GrantApplicationDocument.GrantApplication grantApplication = GrantApplicationDocument.GrantApplication.Factory.newInstance();
68+
grantApplication.setForms(forms);
69+
70+
budgetSubAwards.setSubAwardXmlFileData(grantApplication.xmlText());
71+
List<BudgetSubAwards> budgetSubAwardsList = new ArrayList<>();
72+
budgetSubAwardsList.add(budgetSubAwards);
73+
74+
proposalDevelopmentBudgetExt.setBudgetSubAwards(budgetSubAwardsList);
75+
proposalDevelopmentBudgetExt.setOhRateClassCode("1");
76+
proposalDevelopmentBudgetExt.setModularBudgetFlag(false);
77+
proposalDevelopmentBudgetExt.setUrRateClassCode("1");
78+
proposalDevelopmentBudgetExt = getService(DataObjectService.class).save(proposalDevelopmentBudgetExt);
79+
80+
List<ProposalDevelopmentBudgetExt> proposalDevelopmentBudgetExtList = new ArrayList<>();
81+
proposalDevelopmentBudgetExtList.add(proposalDevelopmentBudgetExt);
82+
83+
document.getDevelopmentProposal().setBudgets(proposalDevelopmentBudgetExtList);
84+
document.getDevelopmentProposal().setFinalBudget(proposalDevelopmentBudgetExt);
85+
}
86+
87+
private ProposalDevelopmentDocument initializeDocument() throws Exception {
88+
ProposalDevelopmentDocument pd = (ProposalDevelopmentDocument) KcServiceLocator.getService(DocumentService.class).getNewDocument("ProposalDevelopmentDocument");
89+
Assert.assertNotNull(pd.getDocumentHeader().getWorkflowDocument());
90+
ProposalDevelopmentService pdService = getService(ProposalDevelopmentService.class);
91+
pdService.initializeUnitOrganizationLocation(pd);
92+
pdService.initializeProposalSiteNumbers(pd);
93+
return pd;
94+
}
95+
96+
private DevelopmentProposal initializeDevelopmentProposal(
97+
ProposalDevelopmentDocument pd) {
98+
DevelopmentProposal developmentProposal = pd.getDevelopmentProposal();
99+
developmentProposal.setPrimeSponsorCode("000120");
100+
developmentProposal.setActivityTypeCode("1");
101+
developmentProposal.refreshReferenceObject("activityType");
102+
developmentProposal.setSponsorCode("000162");
103+
developmentProposal.setOwnedByUnitNumber("000001");
104+
developmentProposal.refreshReferenceObject("ownedByUnit");
105+
developmentProposal.setProposalTypeCode("1");
106+
developmentProposal.setCreationStatusCode("1");
107+
developmentProposal.setApplicantOrganizationId("000001");
108+
developmentProposal.setPerformingOrganizationId("000001");
109+
developmentProposal.setNoticeOfOpportunityCode("1");
110+
developmentProposal.setRequestedStartDateInitial(new Date(Calendar.getInstance().getTimeInMillis()));
111+
developmentProposal.setRequestedEndDateInitial(new Date(Calendar.getInstance().getTimeInMillis()));
112+
developmentProposal.setTitle("Test s2s service title");
113+
developmentProposal.setDeadlineType("P");
114+
developmentProposal.setDeadlineDate(new Date(Calendar.getInstance().getTimeInMillis()));
115+
developmentProposal.setNsfCode("J.05");
116+
return developmentProposal;
117+
}
118+
119+
public void prepareDocData(ProposalDevelopmentDocument document)
120+
throws Exception {
121+
122+
Organization organization = new Organization();
123+
organization.setOrganizationName("University");
124+
organization.setOrganizationId("000001");
125+
organization.setContactAddressId(1);
126+
127+
ProposalSite applicantOrganization = new ProposalSite();
128+
applicantOrganization.setLocationTypeCode(2);
129+
applicantOrganization.setOrganization(organization);
130+
131+
applicantOrganization.setSiteNumber(1);
132+
applicantOrganization.setLocationName(organization.getOrganizationName());
133+
document.getDevelopmentProposal().setApplicantOrganization(applicantOrganization);
134+
document.getDevelopmentProposal().getApplicantOrganization().getOrganization().setDunsNumber("00-176-5866");
135+
136+
List<Narrative> naList = new ArrayList<>();
137+
138+
Narrative narrative1 = createNarrative("130");
139+
140+
narrative1.setDevelopmentProposal(document.getDevelopmentProposal());
141+
naList.add(narrative1);
142+
document.getDevelopmentProposal().setNarratives(naList);
143+
144+
List<ProposalPerson> proposalPersons = new ArrayList<>();
145+
ProposalPerson principalInvestigator = new ProposalPerson();
146+
principalInvestigator.setFirstName("ALAN");
147+
principalInvestigator.setLastName("MCAFEE");
148+
principalInvestigator.setProposalPersonNumber(1);
149+
principalInvestigator.setProposalPersonRoleId("PI");
150+
principalInvestigator.setPersonId("0001");
151+
proposalPersons.add(principalInvestigator);
152+
principalInvestigator.setDevelopmentProposal(document.getDevelopmentProposal());
153+
document.getDevelopmentProposal().setProposalPersons(proposalPersons);
154+
155+
156+
ProposalDevelopmentBudgetExt proposalDevelopmentBudgetExt = new ProposalDevelopmentBudgetExt();
157+
proposalDevelopmentBudgetExt.setBudgetVersionNumber(1);
158+
proposalDevelopmentBudgetExt.setBudgetStatus("1");
159+
proposalDevelopmentBudgetExt.setBudgetId(1L);
160+
proposalDevelopmentBudgetExt.setName("test Document Description");
161+
proposalDevelopmentBudgetExt.setOnOffCampusFlag("Y");
162+
proposalDevelopmentBudgetExt.setStartDate(new Date(new Long("1183316613046")));
163+
proposalDevelopmentBudgetExt.setEndDate(new Date(new Long("1214852613046")));
164+
proposalDevelopmentBudgetExt.setOhRateTypeCode("1");
165+
proposalDevelopmentBudgetExt.setOhRateClassCode("1");
166+
proposalDevelopmentBudgetExt.setModularBudgetFlag(false);
167+
proposalDevelopmentBudgetExt.setUrRateClassCode("1");
168+
169+
List<BudgetPeriod> budgetPeriods = new ArrayList<>();
170+
BudgetPeriod budgetPeriod = new BudgetPeriod();
171+
budgetPeriod.setBudgetPeriodId(1L);
172+
budgetPeriod.setStartDate(new Date(new Long("1183316613046")));
173+
budgetPeriod.setEndDate(new Date(new Long("1214852613046")));
174+
budgetPeriod.setBudgetPeriod(1);
175+
budgetPeriod.setBudget(proposalDevelopmentBudgetExt);
176+
budgetPeriods.add(budgetPeriod);
177+
proposalDevelopmentBudgetExt.setBudgetPeriods(budgetPeriods);
178+
179+
proposalDevelopmentBudgetExt.setDevelopmentProposal(document.getDevelopmentProposal());
180+
List<ProposalDevelopmentBudgetExt> proposalDevelopmentBudgetExtList = new ArrayList<>();
181+
proposalDevelopmentBudgetExtList.add(proposalDevelopmentBudgetExt);
182+
document.getDevelopmentProposal().setBudgets(proposalDevelopmentBudgetExtList);
183+
document.getDevelopmentProposal().setFinalBudget(proposalDevelopmentBudgetExt);
184+
}
185+
186+
private void setFormObject(GrantApplicationDocument.GrantApplication.Forms forms, XmlObject formObject) {
187+
XmlCursor formCursor = formObject.newCursor();
188+
formCursor.toStartDoc();
189+
formCursor.toNextToken();
190+
XmlCursor metaGrantCursor = forms.newCursor();
191+
metaGrantCursor.toNextToken();
192+
formCursor.moveXml(metaGrantCursor);
193+
}
194+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package org.kuali.coeus.s2sgen.impl.generate.support;
2+
3+
public class PHS398TrainingSubAwardBudgetV1_0GeneratorTest extends PHS398TrainingSubAwardBudgetBaseGeneratorTest {
4+
5+
@Override
6+
protected String getFormGeneratorName() {
7+
return PHS398TrainingSubAwardBudgetV1_0Generator.class.getSimpleName();
8+
}
9+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package org.kuali.coeus.s2sgen.impl.generate.support;
2+
3+
4+
public class PHS398TrainingSubAwardBudgetV2_0GeneratorTest extends PHS398TrainingSubAwardBudgetBaseGeneratorTest {
5+
6+
@Override
7+
protected String getFormGeneratorName() {
8+
return PHS398TrainingSubAwardBudgetV2_0Generator.class.getSimpleName();
9+
}
10+
}

pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@
6868
<cas-client-core.version>3.3.3</cas-client-core.version>
6969
<cglib.version>3.1</cglib.version>
7070
<coeus-api-all.version>1602.0001</coeus-api-all.version>
71-
<coeus-s2sgen.version>1603.0008</coeus-s2sgen.version>
71+
<coeus-s2sgen.version>1603.0009</coeus-s2sgen.version>
7272
<commons-beanutils.version>1.8.3-kuali-4</commons-beanutils.version>
7373
<commons-codec.version>1.10</commons-codec.version>
7474
<commons-collections.version>3.2.2</commons-collections.version>

0 commit comments

Comments
 (0)