📄 testtimesheetutils.java
字号:
assertEquals(new BigDecimal("280.00"), timeEntry.getLineTotalAmt()); } public void testCalculateTimeEntryLineAmount_multipleRates() throws Exception { TimeEntry timeEntry = new TimeEntry(); timeEntry.setTimesheetId(new Long(1)); timeEntry.setWorkId(new Long(1)); timeEntry.setRateTypeCd("RT"); timeEntry.setDay0(new BigDecimal("1.00")); timeEntry.setDay1(new BigDecimal("2.00")); timeEntry.setDay2(new BigDecimal("3.00")); timeEntry.setDay3(new BigDecimal("4.00")); timeEntry.setDay4(new BigDecimal("5.00")); timeEntry.setDay5(new BigDecimal("6.00")); timeEntry.setDay6(new BigDecimal("7.00")); List partyRateList = new ArrayList(); PartyRate pr2 = new PartyRate(); pr2.setFromDt(timesheetUtils .convertStringToDate("20050613", "yyyyMMdd")); pr2.setThruDt(timesheetUtils .convertStringToDate("20050614", "yyyyMMdd")); pr2.setRateTypeCd("RT"); pr2.setRate(new BigDecimal(20.00)); pr2.setRateCur("USD"); pr2.setPartyCd("xyz"); partyRateList.add(pr2); PartyRate pr3 = new PartyRate(); pr3.setFromDt(timesheetUtils .convertStringToDate("20050615", "yyyyMMdd")); pr3.setRateTypeCd("RT"); pr3.setRate(new BigDecimal(10.00)); pr3.setRateCur("USD"); pr3.setPartyCd("xyz"); partyRateList.add(pr3); Date fromDt = timesheetUtils .convertStringToDate("20050613", "yyyyMMdd"); timesheetUtils.calculateTimeEntryLineAmount(timeEntry, partyRateList, fromDt, 7); assertEquals(new BigDecimal("310.00"), timeEntry.getLineTotalAmt()); } public void testCalculateTimeEntryLineAmount_someDaysWithNoHours() throws Exception { List partyRateList = new ArrayList(); PartyRate pr2 = new PartyRate(); pr2.setFromDt(timesheetUtils .convertStringToDate("20050613", "yyyyMMdd")); pr2.setThruDt(timesheetUtils .convertStringToDate("20050614", "yyyyMMdd")); pr2.setRateTypeCd("RT"); pr2.setRate(new BigDecimal(20.00)); pr2.setRateCur("USD"); pr2.setPartyCd("xyz"); partyRateList.add(pr2); PartyRate pr3 = new PartyRate(); pr3.setFromDt(timesheetUtils .convertStringToDate("20050615", "yyyyMMdd")); pr3.setRateTypeCd("RT"); pr3.setRate(new BigDecimal(10.00)); pr3.setRateCur("USD"); pr3.setPartyCd("xyz"); partyRateList.add(pr3); // test with some days with no hours entered TimeEntry timeEntry = new TimeEntry(); timeEntry.setTimesheetId(new Long(1)); timeEntry.setWorkId(new Long(1)); timeEntry.setRateTypeCd("RT"); timeEntry.setDay0(new BigDecimal("1.00")); timeEntry.setDay2(new BigDecimal("0.00")); timeEntry.setDay4(new BigDecimal("5.00")); timeEntry.setDay6(new BigDecimal("7.00")); Date fromDt = timesheetUtils .convertStringToDate("20050613", "yyyyMMdd"); timesheetUtils.calculateTimeEntryLineAmount(timeEntry, partyRateList, fromDt, 7); assertEquals(new BigDecimal("140.00"), timeEntry.getLineTotalAmt()); } public void testCalculateTimeEntryLineAmount_dayAmountCurrencyMismatch() throws Exception { TimeEntry timeEntry = new TimeEntry(); timeEntry.setTimesheetId(new Long(1)); timeEntry.setWorkId(new Long(1)); timeEntry.setRateTypeCd("RT"); timeEntry.setDay0(new BigDecimal("1.00")); timeEntry.setDay1(new BigDecimal("2.00")); timeEntry.setDay2(new BigDecimal("3.00")); timeEntry.setDay3(new BigDecimal("4.00")); timeEntry.setDay4(new BigDecimal("5.00")); timeEntry.setDay5(new BigDecimal("6.00")); timeEntry.setDay6(new BigDecimal("7.00")); List partyRateList = new ArrayList(); PartyRate pr2 = new PartyRate(); pr2.setFromDt(timesheetUtils .convertStringToDate("20050613", "yyyyMMdd")); pr2.setThruDt(timesheetUtils .convertStringToDate("20050614", "yyyyMMdd")); pr2.setRateTypeCd("RT"); pr2.setRate(new BigDecimal(20.00)); pr2.setRateCur("USD"); pr2.setPartyCd("xyz"); partyRateList.add(pr2); PartyRate pr3 = new PartyRate(); pr3.setFromDt(timesheetUtils .convertStringToDate("20050615", "yyyyMMdd")); pr3.setRateTypeCd("RT"); pr3.setRate(new BigDecimal(10.00)); pr3.setRateCur("CAD"); pr3.setPartyCd("xyz"); partyRateList.add(pr3); Date fromDt = timesheetUtils .convertStringToDate("20050613", "yyyyMMdd"); try { timesheetUtils.calculateTimeEntryLineAmount(timeEntry, partyRateList, fromDt, 7); fail("A CurrencyMismatchException should be raised."); } catch (CurrencyMismatchException expected) { assertTrue(true); } } public void testCalculateTimesheetAmount_weekly_noTimeEntrySuccess() throws Exception { // test for timesheet with no time entries 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); timesheet.setTimeEntries(null); timesheetUtils.calculateTimesheetAmount(timesheet, partyRateList); assertEquals(new BigDecimal("0.00"), timesheet.getTotalAmt()); } public void testCalculateTimesheetAmount_weekly_multipleTimeEntrySuccess() 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); 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("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("RT"); 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); timesheetUtils.calculateTimesheetAmount(timesheet, partyRateList); assertEquals(new BigDecimal("410.00"), timesheet.getTotalAmt()); TimeEntry ter = (TimeEntry) timeEntryList.get(0); assertEquals(new BigDecimal("280.00"), ter.getLineTotalAmt()); ter = (TimeEntry) timeEntryList.get(1); assertEquals(new BigDecimal("130.00"), ter.getLineTotalAmt()); } public void testCalculateTimesheetAmount_weekly_mulitpleTimeEntryWithOneEntryWithoutHoursSuccess() throws Exception { // test with multiple time entries with one time entry line having no // hours. Timesheet timesheet = new Timesheet(); timesheet.setTimesheetId(new Long(1)); timesheet.setPartyCd("xyz"); timesheet.setFromDt(timesheetUtils.convertStringToDate("20050613", "yyyyMMdd")); timesheet.setThruDt(timesheetUtils.convertStringToDate("20050619", "yyyyMMdd")); 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 te3 = new TimeEntry(); te3.setTimesheetId(new Long(1)); te3.setWorkId(new Long(3)); te3.setRateTypeCd("RT"); timeEntryList.add(te3); List partyRateList = new ArrayList(); 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"); partyRateList.add(pr1); timesheet.setTimeEntries(timeEntryList); timesheetUtils.calculateTimesheetAmount(timesheet, partyRateList); assertEquals(new BigDecimal("280.00"), timesheet.getTotalAmt()); TimeEntry ter = (TimeEntry) timeEntryList.get(0); assertEquals(new BigDecimal("280.00"), ter.getLineTotalAmt()); ter = (TimeEntry) timeEntryList.get(1); assertEquals(new BigDecimal("0.00"), ter.getLineTotalAmt()); } public void testCalculateTimesheetAmount_weekly_invalidPeriod() throws Exception { // invalid timesheet period. Timesheet timesheet = new Timesheet(); timesheet.setTimesheetId(new Long(1)); timesheet.setPartyCd("xyz"); timesheet.setFromDt(timesheetUtils.convertStringToDate("20050614", "yyyyMMdd")); timesheet.setThruDt(timesheetUtils.convertStringToDate("20050620", "yyyyMMdd")); try { timesheetUtils.calculateTimesheetAmount(timesheet, null); fail("A InvalidTimesheetPeriodException should be raised."); } catch (InvalidTimesheetPeriodException expected) { assertTrue(true); } } public void testCalculateTimesheetAmount_semiMonthly_invalidPeriod() throws Exception { timesheetUtils.setTimesheetPeriod(TimesheetUtils.SEMI_MONTHLY); // invalid timesheet period. Timesheet timesheet = new Timesheet(); timesheet.setTimesheetId(new Long(1)); timesheet.setPartyCd("xyz"); timesheet.setFromDt(timesheetUtils.convertStringToDate("20050601", "yyyyMMdd")); timesheet.setThruDt(timesheetUtils.convertStringToDate("20050616", "yyyyMMdd")); try { timesheetUtils.calculateTimesheetAmount(timesheet, null); fail("A InvalidTimesheetPeriodException should be raised."); } catch (InvalidTimesheetPeriodException expected) { assertTrue(true); } } public void testCalculateTimesheetAmount_semiMonthly_singleTimeEntrySuccess() throws Exception { timesheetUtils.setTimesheetPeriod(TimesheetUtils.SEMI_MONTHLY); Timesheet timesheet = new Timesheet(); timesheet.setTimesheetId(new Long(1)); timesheet.setPartyCd("xyz"); timesheet.setFromDt(timesheetUtils.convertStringToDate("20050516", "yyyyMMdd")); timesheet.setThruDt(timesheetUtils.convertStringToDate("20050531",
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -