/*
* This file is part of LibrePlan
*
* Copyright (C) 2009-2010 Fundación para o Fomento da Calidade Industrial e
* Desenvolvemento Tecnolóxico de Galicia
* Copyright (C) 2010-2011 Igalia, S.L.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.zkoss.ganttz.data.criticalpath;
import static org.easymock.EasyMock.createNiceMock;
import static org.easymock.EasyMock.expect;
import static org.easymock.EasyMock.isA;
import static org.easymock.EasyMock.replay;
import static org.hamcrest.CoreMatchers.anyOf;
import static org.hamcrest.CoreMatchers.equalTo;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertThat;
import static org.zkoss.ganttz.data.constraint.ConstraintOnComparableValues.biggerOrEqualThan;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import org.joda.time.Days;
import org.joda.time.LocalDate;
import org.junit.Test;
import org.zkoss.ganttz.data.DependencyType;
import org.zkoss.ganttz.data.GanttDate;
import org.zkoss.ganttz.data.IDependency;
import org.zkoss.ganttz.data.ITaskFundamentalProperties;
import org.zkoss.ganttz.data.constraint.Constraint;
import org.zkoss.ganttz.data.constraint.ConstraintOnComparableValues;
/**
* Tests for {@link CriticalPathCalculator}.
*
* @author Manuel Rego Casasnovas <[email protected]>
*/
public class CriticalPathCalculatorTest {
private ICriticalPathCalculable<ITaskFundamentalProperties> diagramGraphExample;
private final LocalDate START = new LocalDate(2009, 12, 1);
private ITaskFundamentalProperties createTask(LocalDate start, int durationDays) {
ITaskFundamentalProperties result = createNiceMock(ITaskFundamentalProperties.class);
expect(result.getBeginDate()).andReturn(toDate(start)).anyTimes();
expect(result.getEndDate()).andReturn(toDate(start.plusDays(durationDays))).anyTimes();
replay(result);
return result;
}
private CriticalPathCalculator<ITaskFundamentalProperties, IDependency<ITaskFundamentalProperties>>
buildCalculator() {
return CriticalPathCalculator.create(false);
}
private ITaskFundamentalProperties createTaskWithBiggerOrEqualThanConstraint(
LocalDate start, int durationDays, LocalDate date) {
ITaskFundamentalProperties result = createNiceMock(ITaskFundamentalProperties.class);
expect(result.getBeginDate()).andReturn(toDate(start)).anyTimes();
expect(result.getEndDate()).andReturn(toDate(start.plusDays(durationDays))).anyTimes();
GanttDate ganttDate = GanttDate.createFrom(date);
Constraint<GanttDate> constraint = biggerOrEqualThan(ganttDate);
expect(result.getStartConstraints()).andReturn(Collections.singletonList(constraint)).anyTimes();
replay(result);
return result;
}
private ITaskFundamentalProperties createTaskWithEqualConstraint(
LocalDate start, int durationDays, LocalDate date) {
ITaskFundamentalProperties result = createNiceMock(ITaskFundamentalProperties.class);
expect(result.getBeginDate()).andReturn(toDate(start)).anyTimes();
expect(result.getEndDate()).andReturn(toDate(start.plusDays(durationDays))).anyTimes();
GanttDate ganttDate = GanttDate.createFrom(date);
Constraint<GanttDate> constraint = ConstraintOnComparableValues.equalTo(ganttDate);
expect(result.getStartConstraints()).andReturn(Collections.singletonList(constraint)).anyTimes();
replay(result);
return result;
}
private IDependency<ITaskFundamentalProperties> createDependency(
ITaskFundamentalProperties source,
ITaskFundamentalProperties destination,
DependencyType dependencyType) {
IDependency<ITaskFundamentalProperties> dependency = createNiceMock(IDependency.class);
expect(dependency.getSource()).andReturn(source).anyTimes();
expect(dependency.getDestination()).andReturn(destination).anyTimes();
expect(dependency.getType()).andReturn(dependencyType).anyTimes();
replay(dependency);
return dependency;
}
private GanttDate toDate(LocalDate localDate) {
return GanttDate.createFrom(localDate);
}
private int daysBetweenStartAndEnd(ITaskFundamentalProperties task) {
LocalDate start = LocalDate.fromDateFields(task.getBeginDate().toDayRoundedDate());
LocalDate end = LocalDate.fromDateFields(task.getEndDate().toDayRoundedDate());
return Days.daysBetween(start, end).getDays();
}
/**
* <pre>
* #### T1 ####
* </pre>
*/
private void givenOneTask(int daysTask1) {
diagramGraphExample = createNiceMock(ICriticalPathCalculable.class);
List<ITaskFundamentalProperties> listOfTasks = Collections.singletonList(createTask(START, daysTask1));
expect(diagramGraphExample.getTasks()).andReturn(listOfTasks).anyTimes();
expect(diagramGraphExample.getInitialTasks()).andReturn(listOfTasks).anyTimes();
expect(diagramGraphExample.getLatestTasks()).andReturn(listOfTasks).anyTimes();
expect(diagramGraphExample.getDependencyFrom(
isA(ITaskFundamentalProperties.class),
isA(ITaskFundamentalProperties.class))).andReturn(null)
.anyTimes();
expect(diagramGraphExample.getIncomingTasksFor(isA(ITaskFundamentalProperties.class)))
.andReturn(new HashSet<>())
.anyTimes();
expect(diagramGraphExample.getOutgoingTasksFor(isA(ITaskFundamentalProperties.class)))
.andReturn(new HashSet<>())
.anyTimes();
addTaskMethods(listOfTasks);
replay(diagramGraphExample);
}
private void addTaskMethods(List<ITaskFundamentalProperties> listOfTasks) {
for (ITaskFundamentalProperties task : listOfTasks) {
expect(diagramGraphExample.getStartDate(task)).andReturn(task.getBeginDate()).anyTimes();
expect(diagramGraphExample.getStartConstraintsFor(task)).andReturn(task.getStartConstraints()).anyTimes();
expect(diagramGraphExample.getEndDateFor(task)).andReturn(task.getEndDate()).anyTimes();
}
}
/**
* <pre>
* #### T1 ####
*
* #### T2 ####
* </pre>
*/
private void givenTwoTasksNotConnected(int daysTask1, int daysTask2) {
diagramGraphExample = createNiceMock(ICriticalPathCalculable.class);
List<ITaskFundamentalProperties> listOfTasks =
Arrays.asList(createTask(START, daysTask1), createTask(START, daysTask2));
expect(diagramGraphExample.getTasks()).andReturn(listOfTasks).anyTimes();
expect(diagramGraphExample.getInitialTasks()).andReturn(listOfTasks).anyTimes();
expect(diagramGraphExample.getLatestTasks()).andReturn(listOfTasks).anyTimes();
expect(diagramGraphExample.getDependencyFrom(
isA(ITaskFundamentalProperties.class),
isA(ITaskFundamentalProperties.class))).andReturn(null)
.anyTimes();
expect(diagramGraphExample.getIncomingTasksFor(isA(ITaskFundamentalProperties.class)))
.andReturn(new HashSet<>())
.anyTimes();
expect(diagramGraphExample.getOutgoingTasksFor(isA(I
没有合适的资源?快使用搜索试试~ 我知道了~
JAVA源代码漏洞测试工程LibrePlan源码下载
共2000个文件
java:1542个
properties:177个
xml:83个
需积分: 5 0 下载量 3 浏览量
2023-09-20
15:04:45
上传
评论
收藏 19.94MB ZIP 举报
温馨提示
JAVA源代码漏洞测试工程LibrePlan源码下载
资源推荐
资源详情
资源评论
收起资源包目录
JAVA源代码漏洞测试工程LibrePlan源码下载 (2000个子文件)
libreplan_zk.css 46KB
ganttzk.css 29KB
resize.css 5KB
libreplan.css 4KB
lsr.css 4KB
lsr.css 4KB
lsr.css 4KB
lsr.css 4KB
lsr.css 4KB
lsr.css 4KB
lsr.css 4KB
lsr.css 4KB
lsr.css 4KB
lsr.css 4KB
jquery.jqplot.min.css 3KB
login.css 2KB
print.css 2KB
dashboard.css 1KB
workreports.css 1KB
user_dashboard.css 812B
project-templates.css 782B
perspectives.css 447B
doctool 10KB
help_page_not_found.html 1KB
CriticalPathCalculatorTest.java 130KB
GanttDiagramGraph.java 85KB
OrderElementTreeModelTest.java 84KB
OrderElementServiceTest.java 78KB
ResourceAllocation.java 76KB
OrderCRUDController.java 66KB
OrderElement.java 59KB
AdvancedAllocationController.java 58KB
WorkReportCRUDController.java 56KB
ManageOrderElementAdvancesController.java 53KB
ConfigurationController.java 53KB
BaseCalendarEditionController.java 51KB
ResourceLoadModel.java 51KB
TaskElementAdapter.java 51KB
OrderElementTest.java 50KB
OrderPlanningModel.java 49KB
TreeController.java 48KB
LimitingResourceQueueModel.java 46KB
Task.java 46KB
Resource.java 45KB
PlanningStateCreator.java 43KB
BaseCalendar.java 43KB
SaveCommandBuilder.java 42KB
OrderLineGroup.java 42KB
ResourceServiceTest.java 40KB
WorkerCRUDController.java 39KB
GenericResourceAllocationTest.java 38KB
ResourceLoadController.java 37KB
OrderElementConverter.java 35KB
PersonalTimesheetController.java 34KB
Util.java 34KB
FormBinder.java 34KB
ManageOrderElementAdvancesModel.java 34KB
Planner.java 34KB
WorkReportTypeCRUDController.java 33KB
CompanyPlanningModel.java 33KB
SpecificResourceAllocationTest.java 33KB
OrderModel.java 33KB
BaseCalendarTest.java 31KB
AllocationRow.java 31KB
OrderElementTreeController.java 31KB
OrderLineTest.java 31KB
TaskPropertiesController.java 30KB
OrderDAO.java 28KB
OrderElementDAOTest.java 28KB
TaskElement.java 28KB
ReportAdvancesServiceTest.java 28KB
MPXJProjectFileConverter.java 28KB
BaseCalendarModel.java 27KB
UntilFillingHoursAllocatorTest.java 27KB
QueuesState.java 27KB
CustomMenuController.java 27KB
CriterionRequirementHandler.java 27KB
ResourceTest.java 27KB
WorkReportServiceTest.java 26KB
AssignedCriterionRequirementController.java 26KB
TaskTest.java 25KB
NewAllocationSelectorController.java 24KB
ChartFiller.java 24KB
Order.java 24KB
EffortDistributor.java 23KB
WorkerModel.java 23KB
LimitingResourcesController.java 23KB
ResourceAllocationController.java 23KB
AssignedTaskQualityFormsToOrderElementController.java 23KB
ConfigurationModel.java 22KB
WorkReportConverter.java 22KB
TaskComponent.java 22KB
ExpenseSheetCRUDController.java 22KB
LimitingResourcesPanel.java 22KB
TaskElementDAOTest.java 22KB
PersonalTimesheetModel.java 22KB
WorkReportModel.java 22KB
MachineCRUDController.java 22KB
OrderElementTemplate.java 21KB
OrderElementDAO.java 21KB
共 2000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 20
资源评论
miyatou_nuaa
- 粉丝: 0
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功