📄 testtimesheetutils.java
字号:
"yyyyMMdd")); PartyRate pr1 = new PartyRate(); pr1.setFromDt(timesheetUtils .convertStringToDate("20050501", "yyyyMMdd")); pr1.setRateTypeCd("RT"); pr1.setRate(new BigDecimal(10.00)); pr1.setRateCur("USD"); pr1.setPartyCd("xyz"); List partyRateList = new ArrayList(); partyRateList.add(pr1); List timeEntryList = new ArrayList(); // test for timesheet with multiple timeEntries lines. TimeEntry te1 = new TimeEntry(); te1.setTimesheetId(new Long(1)); te1.setWorkId(new Long(1)); te1.setRateTypeCd("RT"); te1.setDay0(new BigDecimal("8.00")); te1.setDay1(new BigDecimal("8.00")); te1.setDay2(new BigDecimal("8.00")); te1.setDay3(new BigDecimal("8.00")); te1.setDay4(new BigDecimal("8.00")); te1.setDay5(new BigDecimal("0.00")); te1.setDay6(new BigDecimal("0.00")); te1.setDay7(new BigDecimal("8.00")); te1.setDay8(new BigDecimal("8.00")); te1.setDay9(new BigDecimal("8.00")); te1.setDay10(new BigDecimal("8.00")); te1.setDay11(new BigDecimal("8.00")); te1.setDay12(new BigDecimal("8.00")); te1.setDay13(new BigDecimal("8.00")); te1.setDay14(new BigDecimal("8.00")); te1.setDay15(new BigDecimal("8.00")); timeEntryList.add(te1); timesheet.setTimeEntries(timeEntryList); timesheetUtils.calculateTimesheetAmount(timesheet, partyRateList); assertEquals(new BigDecimal("1120.00"), timesheet.getTotalAmt()); } public void testCalculateTimesheetAmount_rateStartingInBetweenPeriodSuccess() throws Exception { Timesheet timesheet = new Timesheet(); timesheet.setTimesheetId(new Long(1)); timesheet.setPartyCd("xyz"); timesheet.setFromDt(timesheetUtils.convertStringToDate("20050613", "yyyyMMdd")); timesheet.setThruDt(timesheetUtils.convertStringToDate("20050619", "yyyyMMdd")); PartyRate pr1 = new PartyRate(); pr1.setFromDt(timesheetUtils .convertStringToDate("20050615", "yyyyMMdd")); pr1.setRateTypeCd("RT"); pr1.setRate(new BigDecimal(10.00)); pr1.setRateCur("USD"); pr1.setPartyCd("xyz"); List partyRateList = new ArrayList(); partyRateList.add(pr1); TimeEntry te1 = new TimeEntry(); te1.setTimesheetId(new Long(1)); te1.setWorkId(new Long(1)); te1.setRateTypeCd("RT"); // note zeros are ok before the rate start date of 15th te1.setDay0(new BigDecimal("0.00")); // nothing for day1 // hours on and after 15th the rate start date te1.setDay2(new BigDecimal("8.00")); te1.setDay3(new BigDecimal("8.00")); te1.setDay4(new BigDecimal("8.00")); te1.setDay5(new BigDecimal("8.00")); te1.setDay6(new BigDecimal("8.00")); List timeEntryList = new ArrayList(); timeEntryList.add(te1); timesheet.setTimeEntries(timeEntryList); timesheetUtils.calculateTimesheetAmount(timesheet, partyRateList); assertEquals(new BigDecimal("400.00"), timesheet.getTotalAmt()); } public void testCalculateTimesheetAmount_rateStartingInBetweenPeriodFailure() throws Exception { Timesheet timesheet = new Timesheet(); timesheet.setTimesheetId(new Long(1)); timesheet.setPartyCd("xyz"); timesheet.setFromDt(timesheetUtils.convertStringToDate("20050613", "yyyyMMdd")); timesheet.setThruDt(timesheetUtils.convertStringToDate("20050619", "yyyyMMdd")); PartyRate pr1 = new PartyRate(); pr1.setFromDt(timesheetUtils .convertStringToDate("20050615", "yyyyMMdd")); pr1.setRateTypeCd("RT"); pr1.setRate(new BigDecimal(10.00)); pr1.setRateCur("USD"); pr1.setPartyCd("xyz"); List partyRateList = new ArrayList(); partyRateList.add(pr1); TimeEntry te1 = new TimeEntry(); te1.setTimesheetId(new Long(1)); te1.setWorkId(new Long(1)); te1.setRateTypeCd("RT"); // hours for the 13th which is before the rate start date will cause // failure te1.setDay0(new BigDecimal("8.00")); List timeEntryList = new ArrayList(); timeEntryList.add(te1); timesheet.setTimeEntries(timeEntryList); try { timesheetUtils.calculateTimesheetAmount(timesheet, partyRateList); fail("Should raise RateNotFoundException"); } catch (RateNotFoundException expected) { assertTrue(true); } } public void testCalculateTimesheetAmount_rateEndingInBetweenPeriodSucess() throws Exception { Timesheet timesheet = new Timesheet(); timesheet.setTimesheetId(new Long(1)); timesheet.setPartyCd("xyz"); timesheet.setFromDt(timesheetUtils.convertStringToDate("20050613", "yyyyMMdd")); timesheet.setThruDt(timesheetUtils.convertStringToDate("20050619", "yyyyMMdd")); PartyRate pr1 = new PartyRate(); pr1.setFromDt(timesheetUtils .convertStringToDate("20050613", "yyyyMMdd")); pr1.setThruDt(timesheetUtils .convertStringToDate("20050615", "yyyyMMdd")); pr1.setRateTypeCd("RT"); pr1.setRate(new BigDecimal(10.00)); pr1.setRateCur("USD"); pr1.setPartyCd("xyz"); List partyRateList = new ArrayList(); partyRateList.add(pr1); TimeEntry te1 = new TimeEntry(); te1.setTimesheetId(new Long(1)); te1.setWorkId(new Long(1)); te1.setRateTypeCd("RT"); te1.setDay0(new BigDecimal("8.00")); te1.setDay1(new BigDecimal("8.00")); te1.setDay2(new BigDecimal("8.00")); // zeros after rate end date are OK. te1.setDay3(new BigDecimal("0.00")); te1.setDay4(new BigDecimal("0.00")); te1.setDay5(new BigDecimal("0.00")); te1.setDay6(new BigDecimal("0.00")); List timeEntryList = new ArrayList(); timeEntryList.add(te1); timesheet.setTimeEntries(timeEntryList); timesheetUtils.calculateTimesheetAmount(timesheet, partyRateList); assertEquals(new BigDecimal("240.00"), timesheet.getTotalAmt()); } public void testCalculateTimesheetAmount_rateEndingInBetweenPeriodFailure() throws Exception { Timesheet timesheet = new Timesheet(); timesheet.setTimesheetId(new Long(1)); timesheet.setPartyCd("xyz"); timesheet.setFromDt(timesheetUtils.convertStringToDate("20050613", "yyyyMMdd")); timesheet.setThruDt(timesheetUtils.convertStringToDate("20050619", "yyyyMMdd")); PartyRate pr1 = new PartyRate(); pr1.setFromDt(timesheetUtils .convertStringToDate("20050613", "yyyyMMdd")); pr1.setThruDt(timesheetUtils .convertStringToDate("20050615", "yyyyMMdd")); pr1.setRateTypeCd("RT"); pr1.setRate(new BigDecimal(10.00)); pr1.setRateCur("USD"); pr1.setPartyCd("xyz"); List partyRateList = new ArrayList(); partyRateList.add(pr1); TimeEntry te1 = new TimeEntry(); te1.setTimesheetId(new Long(1)); te1.setWorkId(new Long(1)); te1.setRateTypeCd("RT"); te1.setDay0(new BigDecimal("8.00")); te1.setDay1(new BigDecimal("8.00")); te1.setDay2(new BigDecimal("8.00")); // hours for 16th will cause failure te1.setDay3(new BigDecimal("8.00")); List timeEntryList = new ArrayList(); timeEntryList.add(te1); timesheet.setTimeEntries(timeEntryList); try { timesheetUtils.calculateTimesheetAmount(timesheet, partyRateList); fail("Should raise RateNotFoundException"); } catch (RateNotFoundException expected) { assertTrue(true); } } public void testCalculateTimesheetAmount_multipleTimeEntryCurrencyMismatch() throws Exception { Timesheet timesheet = new Timesheet(); timesheet.setTimesheetId(new Long(1)); timesheet.setPartyCd("xyz"); timesheet.setFromDt(timesheetUtils.convertStringToDate("20050613", "yyyyMMdd")); timesheet.setThruDt(timesheetUtils.convertStringToDate("20050619", "yyyyMMdd")); PartyRate pr1 = new PartyRate(); pr1.setFromDt(timesheetUtils .convertStringToDate("20050613", "yyyyMMdd")); pr1.setRateTypeCd("RT"); pr1.setRate(new BigDecimal(10.00)); pr1.setRateCur("USD"); pr1.setPartyCd("xyz"); List partyRateList = new ArrayList(); partyRateList.add(pr1); PartyRate pr2 = new PartyRate(); pr2.setFromDt(timesheetUtils .convertStringToDate("20050613", "yyyyMMdd")); pr2.setRateTypeCd("OT"); pr2.setRate(new BigDecimal(10.00)); pr2.setRateCur("CAD"); pr2.setPartyCd("xyz"); partyRateList.add(pr2); List timeEntryList = new ArrayList(); TimeEntry te1 = new TimeEntry(); te1.setTimesheetId(new Long(1)); te1.setWorkId(new Long(1)); te1.setRateTypeCd("RT"); te1.setDay0(new BigDecimal("1.00")); te1.setDay1(new BigDecimal("2.00")); te1.setDay2(new BigDecimal("3.00")); te1.setDay3(new BigDecimal("4.00")); te1.setDay4(new BigDecimal("5.00")); te1.setDay5(new BigDecimal("6.00")); te1.setDay6(new BigDecimal("7.00")); timeEntryList.add(te1); TimeEntry te2 = new TimeEntry(); te2.setTimesheetId(new Long(1)); te2.setWorkId(new Long(2)); te2.setRateTypeCd("OT"); te2.setDay0(new BigDecimal("1.00")); te2.setDay1(new BigDecimal("2.00")); te2.setDay2(new BigDecimal("3.00")); te2.setDay6(new BigDecimal("7.00")); timeEntryList.add(te2); timesheet.setTimeEntries(timeEntryList); try { timesheetUtils.calculateTimesheetAmount(timesheet, partyRateList); fail("Should raise CurrencyMismatchException"); } catch (CurrencyMismatchException expected) { assertTrue(true); } } public void testCalculateTimesheetAmount_RateIsZeroSuccess() throws Exception { Timesheet timesheet = new Timesheet(); timesheet.setTimesheetId(new Long(1)); timesheet.setPartyCd("xyz"); timesheet.setFromDt(timesheetUtils.convertStringToDate("20050613", "yyyyMMdd")); timesheet.setThruDt(timesheetUtils.convertStringToDate("20050619", "yyyyMMdd")); PartyRate pr1 = new PartyRate(); pr1.setFromDt(timesheetUtils .convertStringToDate("20050613", "yyyyMMdd")); pr1.setRateTypeCd("RT"); pr1.setRate(new BigDecimal("0.00")); pr1.setRateCur("USD"); pr1.setPartyCd("xyz"); List partyRateList = new ArrayList(); partyRateList.add(pr1); List timeEntryList = new ArrayList(); TimeEntry te1 = new TimeEntry(); te1.setTimesheetId(new Long(1)); te1.setWorkId(new Long(1)); te1.setRateTypeCd("RT"); te1.setDay0(new BigDecimal("1.00")); te1.setDay1(new BigDecimal("0.00")); timeEntryList.add(te1); timesheet.setTimeEntries(timeEntryList); timesheetUtils.calculateTimesheetAmount(timesheet, partyRateList); assertEquals(new BigDecimal("0.00"), timesheet.getTotalAmt()); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -