本文整理汇总了PHP中Kanboard\Model\TaskCreation::create方法的典型用法代码示例。如果您正苦于以下问题:PHP TaskCreation::create方法的具体用法?PHP TaskCreation::create怎么用?PHP TaskCreation::create使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Kanboard\Model\TaskCreation
的用法示例。
在下文中一共展示了TaskCreation::create方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: testAverageWithTransitions
public function testAverageWithTransitions()
{
$transitionModel = new Transition($this->container);
$taskFinderModel = new TaskFinder($this->container);
$taskCreationModel = new TaskCreation($this->container);
$projectModel = new Project($this->container);
$averageLeadCycleTimeAnalytic = new AverageTimeSpentColumnAnalytic($this->container);
$now = time();
$this->assertEquals(1, $projectModel->create(array('name' => 'test1')));
$this->assertEquals(1, $taskCreationModel->create(array('project_id' => 1, 'title' => 'test')));
$this->assertEquals(2, $taskCreationModel->create(array('project_id' => 1, 'title' => 'test')));
$this->container['db']->table(Task::TABLE)->eq('id', 1)->update(array('date_completed' => $now + 3600));
$this->container['db']->table(Task::TABLE)->eq('id', 2)->update(array('date_completed' => $now + 1800));
foreach (array(1, 2) as $task_id) {
$task = $taskFinderModel->getById($task_id);
$task['task_id'] = $task['id'];
$task['date_moved'] = $now - 900;
$task['src_column_id'] = 3;
$task['dst_column_id'] = 1;
$this->assertTrue($transitionModel->save(1, $task));
}
$stats = $averageLeadCycleTimeAnalytic->build(1);
$expected = array(1 => array('count' => 2, 'time_spent' => 3600 + 1800, 'average' => (int) ((3600 + 1800) / 2), 'title' => 'Backlog'), 2 => array('count' => 0, 'time_spent' => 0, 'average' => 0, 'title' => 'Ready'), 3 => array('count' => 2, 'time_spent' => 1800, 'average' => 900, 'title' => 'Work in progress'), 4 => array('count' => 0, 'time_spent' => 0, 'average' => 0, 'title' => 'Done'));
$this->assertEquals($expected, $stats);
}
示例2: testBuild
public function testBuild()
{
$taskCreationModel = new TaskCreation($this->container);
$projectModel = new Project($this->container);
$averageLeadCycleTimeAnalytic = new AverageLeadCycleTimeAnalytic($this->container);
$now = time();
$this->assertEquals(1, $projectModel->create(array('name' => 'test1')));
$this->assertEquals(2, $projectModel->create(array('name' => 'test1')));
$this->assertEquals(1, $taskCreationModel->create(array('project_id' => 1, 'title' => 'test')));
$this->assertEquals(2, $taskCreationModel->create(array('project_id' => 1, 'title' => 'test')));
$this->assertEquals(3, $taskCreationModel->create(array('project_id' => 1, 'title' => 'test')));
$this->assertEquals(4, $taskCreationModel->create(array('project_id' => 1, 'title' => 'test')));
// LT=3600 CT=1800
$this->container['db']->table(Task::TABLE)->eq('id', 1)->update(array('date_completed' => $now + 3600, 'date_started' => $now + 1800));
// LT=1800 CT=900
$this->container['db']->table(Task::TABLE)->eq('id', 2)->update(array('date_completed' => $now + 1800, 'date_started' => $now + 900));
// LT=3600 CT=0
$this->container['db']->table(Task::TABLE)->eq('id', 3)->update(array('date_completed' => $now + 3600));
// LT=2*3600 CT=0
$this->container['db']->table(Task::TABLE)->eq('id', 4)->update(array('date_completed' => $now + 2 * 3600));
$stats = $averageLeadCycleTimeAnalytic->build(1);
$this->assertEquals(4, $stats['count']);
$this->assertEquals(3600 + 1800 + 3600 + 2 * 3600, $stats['total_lead_time'], '', 5);
$this->assertEquals(1800 + 900, $stats['total_cycle_time'], '', 5);
$this->assertEquals((3600 + 1800 + 3600 + 2 * 3600) / 4, $stats['avg_lead_time'], '', 5);
$this->assertEquals((1800 + 900) / 4, $stats['avg_cycle_time'], '', 5);
}
示例3: createTasks
private function createTasks($user_id, $nb_active, $nb_inactive)
{
$taskCreationModel = new TaskCreation($this->container);
for ($i = 0; $i < $nb_active; $i++) {
$this->assertNotFalse($taskCreationModel->create(array('project_id' => 1, 'title' => 'test', 'owner_id' => $user_id, 'is_active' => 1)));
}
for ($i = 0; $i < $nb_inactive; $i++) {
$this->assertNotFalse($taskCreationModel->create(array('project_id' => 1, 'title' => 'test', 'owner_id' => $user_id, 'is_active' => 0)));
}
}
示例4: testCountByProject
public function testCountByProject()
{
$tc = new TaskCreation($this->container);
$tf = new TaskFinder($this->container);
$p = new Project($this->container);
$this->assertEquals(1, $p->create(array('name' => 'Project #1')));
$this->assertEquals(2, $p->create(array('name' => 'Project #2')));
$this->assertEquals(1, $tc->create(array('title' => 'Task #1', 'project_id' => 1)));
$this->assertEquals(2, $tc->create(array('title' => 'Task #2', 'project_id' => 2)));
$this->assertEquals(3, $tc->create(array('title' => 'Task #3', 'project_id' => 2)));
$this->assertEquals(1, $tf->countByProjectId(1));
$this->assertEquals(2, $tf->countByProjectId(2));
}
示例5: testBuildWithOnlyClosedTask
public function testBuildWithOnlyClosedTask()
{
$taskCreationModel = new TaskCreation($this->container);
$projectModel = new Project($this->container);
$estimatedTimeComparisonAnalytic = new EstimatedTimeComparisonAnalytic($this->container);
$this->assertEquals(1, $projectModel->create(array('name' => 'test1')));
$this->assertEquals(2, $projectModel->create(array('name' => 'test1')));
$this->assertNotFalse($taskCreationModel->create(array('project_id' => 1, 'title' => 'test', 'time_estimated' => 5.5, 'is_active' => 0)));
$this->assertNotFalse($taskCreationModel->create(array('project_id' => 1, 'title' => 'test', 'time_estimated' => 1.75, 'is_active' => 0)));
$this->assertNotFalse($taskCreationModel->create(array('project_id' => 1, 'title' => 'test', 'time_spent' => 8.25, 'is_active' => 0)));
$this->assertNotFalse($taskCreationModel->create(array('project_id' => 1, 'title' => 'test', 'time_spent' => 0.25, 'is_active' => 0)));
$expected = array('closed' => array('time_spent' => 8.5, 'time_estimated' => 7.25), 'open' => array('time_spent' => 0, 'time_estimated' => 0));
$this->assertEquals($expected, $estimatedTimeComparisonAnalytic->build(1));
}
示例6: testMoveTaskAnotherSwimlane
public function testMoveTaskAnotherSwimlane()
{
$tp = new TaskPosition($this->container);
$tc = new TaskCreation($this->container);
$p = new Project($this->container);
$tf = new TaskFinder($this->container);
$s = new Swimlane($this->container);
$this->container['dispatcher'] = new EventDispatcher();
$this->container['dispatcher']->addSubscriber(new TaskMovedDateSubscriber($this->container));
$now = time();
$this->assertEquals(1, $p->create(array('name' => 'Project #1')));
$this->assertEquals(1, $s->create(array('project_id' => 1, 'name' => 'S1')));
$this->assertEquals(2, $s->create(array('project_id' => 1, 'name' => 'S2')));
$this->assertEquals(1, $tc->create(array('title' => 'Task #1', 'project_id' => 1)));
$task = $tf->getById(1);
$this->assertNotEmpty($task);
$this->assertEquals($now, $task['date_moved'], '', 1);
$this->assertEquals(1, $task['column_id']);
$this->assertEquals(0, $task['swimlane_id']);
sleep(1);
$this->assertTrue($tp->movePosition(1, 1, 2, 1, 2));
$task = $tf->getById(1);
$this->assertNotEmpty($task);
$this->assertNotEquals($now, $task['date_moved']);
$this->assertEquals(2, $task['column_id']);
$this->assertEquals(2, $task['swimlane_id']);
}
示例7: testExecute
public function testExecute()
{
$action = new TaskAssignColorUser($this->container, 1, Task::EVENT_ASSIGNEE_CHANGE);
$action->setParam('user_id', 1);
$action->setParam('color_id', 'blue');
// We create a task in the first column
$tc = new TaskCreation($this->container);
$tf = new TaskFinder($this->container);
$p = new Project($this->container);
$this->assertEquals(1, $p->create(array('name' => 'test')));
$this->assertEquals(1, $tc->create(array('title' => 'test', 'project_id' => 1, 'column_id' => 1, 'color_id' => 'green')));
// We change the assignee
$event = array('project_id' => 1, 'task_id' => 1, 'owner_id' => 5);
// Our event should NOT be executed
$this->assertFalse($action->execute(new GenericEvent($event)));
// Our task should be assigned to nobody and have the green color
$task = $tf->getById(1);
$this->assertNotEmpty($task);
$this->assertEquals(0, $task['owner_id']);
$this->assertEquals('green', $task['color_id']);
// We change the assignee
$event = array('project_id' => 1, 'task_id' => 1, 'owner_id' => 1);
// Our event should be executed
$this->assertTrue($action->execute(new GenericEvent($event)));
// Our task should be assigned to nobody and have the blue color
$task = $tf->getById(1);
$this->assertNotEmpty($task);
$this->assertEquals(0, $task['owner_id']);
$this->assertEquals('blue', $task['color_id']);
}
示例8: testGetTitle
public function testGetTitle()
{
$wn = new Notification($this->container);
$p = new Project($this->container);
$tf = new TaskFinder($this->container);
$tc = new TaskCreation($this->container);
$s = new Subtask($this->container);
$c = new Comment($this->container);
$f = new TaskFile($this->container);
$this->assertEquals(1, $p->create(array('name' => 'test')));
$this->assertEquals(1, $tc->create(array('title' => 'test', 'project_id' => 1)));
$this->assertEquals(1, $s->create(array('title' => 'test', 'task_id' => 1)));
$this->assertEquals(1, $c->create(array('comment' => 'test', 'task_id' => 1, 'user_id' => 1)));
$this->assertEquals(1, $f->create(1, 'test', 'blah', 123));
$task = $tf->getDetails(1);
$subtask = $s->getById(1, true);
$comment = $c->getById(1);
$file = $c->getById(1);
$this->assertNotEmpty($task);
$this->assertNotEmpty($subtask);
$this->assertNotEmpty($comment);
$this->assertNotEmpty($file);
foreach (NotificationSubscriber::getSubscribedEvents() as $event_name => $values) {
$title = $wn->getTitleWithoutAuthor($event_name, array('task' => $task, 'comment' => $comment, 'subtask' => $subtask, 'file' => $file, 'changes' => array()));
$this->assertNotEmpty($title);
$title = $wn->getTitleWithAuthor('foobar', $event_name, array('task' => $task, 'comment' => $comment, 'subtask' => $subtask, 'file' => $file, 'changes' => array()));
$this->assertNotEmpty($title);
}
$this->assertNotEmpty($wn->getTitleWithoutAuthor(Task::EVENT_OVERDUE, array('tasks' => array(array('id' => 1)))));
$this->assertNotEmpty($wn->getTitleWithoutAuthor('unkown', array()));
}
示例9: testGetAll
public function testGetAll()
{
$this->container['sessionStorage']->user = array('id' => 1);
$this->container['externalLinkManager'] = new ExternalLinkManager($this->container);
$projectModel = new Project($this->container);
$taskCreationModel = new TaskCreation($this->container);
$taskExternalLinkModel = new TaskExternalLink($this->container);
$webLinkProvider = new WebLinkProvider($this->container);
$this->container['externalLinkManager']->register($webLinkProvider);
$this->assertEquals(1, $projectModel->create(array('name' => 'Test')));
$this->assertEquals(1, $taskCreationModel->create(array('title' => 'Test', 'project_id' => 1)));
$this->assertEquals(1, $taskExternalLinkModel->create(array('task_id' => 1, 'url' => 'https://miniflux.net/', 'title' => 'MX', 'link_type' => 'weblink', 'dependency' => 'related')));
$this->assertEquals(2, $taskExternalLinkModel->create(array('task_id' => 1, 'url' => 'http://kanboard.net/', 'title' => 'KB', 'link_type' => 'weblink', 'dependency' => 'related')));
$links = $taskExternalLinkModel->getAll(1);
$this->assertCount(2, $links);
$this->assertEquals('KB', $links[0]['title']);
$this->assertEquals('MX', $links[1]['title']);
$this->assertEquals('Web Link', $links[0]['type']);
$this->assertEquals('Web Link', $links[1]['type']);
$this->assertEquals('Related', $links[0]['dependency_label']);
$this->assertEquals('Related', $links[1]['dependency_label']);
$this->assertEquals('admin', $links[0]['creator_username']);
$this->assertEquals('admin', $links[1]['creator_username']);
$this->assertEquals('', $links[0]['creator_name']);
$this->assertEquals('', $links[1]['creator_name']);
}
示例10: testUpdateTotals
public function testUpdateTotals()
{
$p = new Project($this->container);
$pds = new ProjectDailyStats($this->container);
$tc = new TaskCreation($this->container);
$ts = new TaskStatus($this->container);
$this->assertEquals(1, $p->create(array('name' => 'UnitTest')));
$this->assertEquals(1, $tc->create(array('title' => 'Task #1', 'project_id' => 1, 'date_started' => strtotime('-1 day'))));
$this->assertEquals(2, $tc->create(array('title' => 'Task #1', 'project_id' => 1)));
$pds->updateTotals(1, date('Y-m-d', strtotime('-1 day')));
$this->assertTrue($ts->close(1));
$pds->updateTotals(1, date('Y-m-d'));
$metrics = $pds->getRawMetrics(1, date('Y-m-d', strtotime('-1days')), date('Y-m-d'));
$expected = array(array('day' => date('Y-m-d', strtotime('-1days')), 'avg_lead_time' => 0, 'avg_cycle_time' => 43200), array('day' => date('Y-m-d'), 'avg_lead_time' => 0, 'avg_cycle_time' => 43200));
$this->assertEquals($expected, $metrics);
}
示例11: testExecute
public function testExecute()
{
$action = new TaskAssignColorCategory($this->container, 1, Task::EVENT_CREATE_UPDATE);
$action->setParam('category_id', 1);
$action->setParam('color_id', 'blue');
// We create a task in the first column
$tc = new TaskCreation($this->container);
$tf = new TaskFinder($this->container);
$p = new Project($this->container);
$c = new Category($this->container);
$this->assertEquals(1, $p->create(array('name' => 'test')));
$this->assertEquals(1, $c->create(array('name' => 'c1', 'project_id' => 1)));
$this->assertEquals(2, $c->create(array('name' => 'c2', 'project_id' => 1)));
$this->assertEquals(1, $tc->create(array('title' => 'test', 'project_id' => 1, 'column_id' => 1, 'color_id' => 'green', 'category_id' => 2)));
// We create an event but we don't do anything
$event = array('project_id' => 1, 'task_id' => 1, 'column_id' => 1, 'category_id' => 2, 'position' => 2);
// Our event should NOT be executed
$this->assertFalse($action->execute(new GenericEvent($event)));
// Our task should be assigned to the ategory_id=1 and have the green color
$task = $tf->getById(1);
$this->assertNotEmpty($task);
$this->assertEquals(2, $task['category_id']);
$this->assertEquals('green', $task['color_id']);
// We create an event to move the task
$event = array('project_id' => 1, 'task_id' => 1, 'column_id' => 1, 'position' => 5, 'category_id' => 1);
// Our event should be executed
$this->assertTrue($action->execute(new GenericEvent($event)));
// Our task should have the blue color
$task = $tf->getById(1);
$this->assertNotEmpty($task);
$this->assertEquals('blue', $task['color_id']);
}
示例12: testExecute
public function testExecute()
{
$action = new TaskMoveAnotherProject($this->container, 1, Task::EVENT_MOVE_COLUMN);
// We create a task in the first column
$tc = new TaskCreation($this->container);
$tf = new TaskFinder($this->container);
$p = new Project($this->container);
$this->assertEquals(1, $p->create(array('name' => 'project 1')));
$this->assertEquals(2, $p->create(array('name' => 'project 2')));
$this->assertEquals(1, $tc->create(array('title' => 'test', 'project_id' => 1, 'column_id' => 1)));
// We create an event to move the task to the 2nd column
$event = array('project_id' => 1, 'task_id' => 1, 'column_id' => 2);
// Our event should NOT be executed because we define the same project
$action->setParam('column_id', 2);
$action->setParam('project_id', 1);
$this->assertFalse($action->execute(new GenericEvent($event)));
// Our task should be assigned to the project 1
$task = $tf->getById(1);
$this->assertNotEmpty($task);
$this->assertEquals(1, $task['project_id']);
// We create an event to move the task to the 2nd column
$event = array('project_id' => 1, 'task_id' => 1, 'column_id' => 2);
// Our event should be executed because we define a different project
$action->setParam('column_id', 2);
$action->setParam('project_id', 2);
$this->assertTrue($action->execute(new GenericEvent($event)));
// Our task should be assigned to the project 2
$task = $tf->getById(1);
$this->assertNotEmpty($task);
$this->assertEquals(2, $task['project_id']);
}
示例13: testExecute
public function testExecute()
{
$action = new TaskMoveColumnCategoryChange($this->container, 1, Task::EVENT_UPDATE);
$action->setParam('dest_column_id', 3);
$action->setParam('category_id', 1);
$this->assertEquals(3, $action->getParam('dest_column_id'));
$this->assertEquals(1, $action->getParam('category_id'));
// We create a task in the first column
$tc = new TaskCreation($this->container);
$tf = new TaskFinder($this->container);
$p = new Project($this->container);
$c = new Category($this->container);
$this->assertEquals(1, $p->create(array('name' => 'test')));
$this->assertEquals(1, $c->create(array('name' => 'bug', 'project_id' => 1)));
$this->assertEquals(1, $tc->create(array('title' => 'test', 'project_id' => 1, 'column_id' => 1)));
// No category should be assigned + column_id=1
$task = $tf->getById(1);
$this->assertNotEmpty($task);
$this->assertEmpty($task['category_id']);
$this->assertEquals(1, $task['column_id']);
// We create an event to move the task to the 2nd column
$event = array('task_id' => 1, 'column_id' => 1, 'project_id' => 1, 'category_id' => 1);
// Our event should be executed
$this->assertTrue($action->hasCompatibleEvent());
$this->assertTrue($action->hasRequiredProject($event));
$this->assertTrue($action->hasRequiredParameters($event));
$this->assertTrue($action->hasRequiredCondition($event));
$this->assertTrue($action->isExecutable($event));
$this->assertTrue($action->execute(new GenericEvent($event)));
// Our task should be moved to the other column
$task = $tf->getById(1);
$this->assertNotEmpty($task);
$this->assertEquals(3, $task['column_id']);
}
示例14: testCleanup
public function testCleanup()
{
$e = new ProjectActivity($this->container);
$tc = new TaskCreation($this->container);
$tf = new TaskFinder($this->container);
$p = new Project($this->container);
$this->assertEquals(1, $p->create(array('name' => 'Project #1')));
$this->assertEquals(1, $tc->create(array('title' => 'Task #1', 'project_id' => 1)));
$max = 15;
$nb_events = 100;
for ($i = 0; $i < $nb_events; $i++) {
$this->assertTrue($e->createEvent(1, 1, 1, Task::EVENT_CLOSE, array('task' => $tf->getbyId(1))));
}
$this->assertEquals($nb_events, $this->container['db']->table('project_activities')->count());
$e->cleanup($max);
$events = $e->getProject(1);
$this->assertNotEmpty($events);
$this->assertTrue(is_array($events));
$this->assertEquals($max, count($events));
$this->assertEquals(100, $events[0]['id']);
$this->assertEquals(99, $events[1]['id']);
$this->assertEquals(86, $events[14]['id']);
// Cleanup during task creation
$nb_events = ProjectActivity::MAX_EVENTS + 10;
for ($i = 0; $i < $nb_events; $i++) {
$this->assertTrue($e->createEvent(1, 1, 1, Task::EVENT_CLOSE, array('task' => $tf->getbyId(1))));
}
$this->assertEquals(ProjectActivity::MAX_EVENTS, $this->container['db']->table('project_activities')->count());
}
示例15: testUpdateTotals
public function testUpdateTotals()
{
$p = new Project($this->container);
$pds = new ProjectDailyColumnStats($this->container);
$tc = new TaskCreation($this->container);
$ts = new TaskStatus($this->container);
$this->assertEquals(1, $p->create(array('name' => 'UnitTest')));
$this->assertEquals(0, $pds->countDays(1, date('Y-m-d', strtotime('-2days')), date('Y-m-d')));
for ($i = 0; $i < 10; $i++) {
$this->assertNotFalse($tc->create(array('title' => 'Task #' . $i, 'project_id' => 1, 'column_id' => 1)));
}
for ($i = 0; $i < 5; $i++) {
$this->assertNotFalse($tc->create(array('title' => 'Task #' . $i, 'project_id' => 1, 'column_id' => 4)));
}
$pds->updateTotals(1, date('Y-m-d', strtotime('-2days')));
for ($i = 0; $i < 15; $i++) {
$this->assertNotFalse($tc->create(array('title' => 'Task #' . $i, 'project_id' => 1, 'column_id' => 3)));
}
for ($i = 0; $i < 25; $i++) {
$this->assertNotFalse($tc->create(array('title' => 'Task #' . $i, 'project_id' => 1, 'column_id' => 2)));
}
$pds->updateTotals(1, date('Y-m-d', strtotime('-1 day')));
$this->assertNotFalse($ts->close(1));
$this->assertNotFalse($ts->close(2));
for ($i = 0; $i < 3; $i++) {
$this->assertNotFalse($tc->create(array('title' => 'Task #' . $i, 'project_id' => 1, 'column_id' => 3)));
}
for ($i = 0; $i < 5; $i++) {
$this->assertNotFalse($tc->create(array('title' => 'Task #' . $i, 'project_id' => 1, 'column_id' => 2)));
}
for ($i = 0; $i < 4; $i++) {
$this->assertNotFalse($tc->create(array('title' => 'Task #' . $i, 'project_id' => 1, 'column_id' => 4)));
}
$pds->updateTotals(1, date('Y-m-d'));
$this->assertEquals(3, $pds->countDays(1, date('Y-m-d', strtotime('-2days')), date('Y-m-d')));
$metrics = $pds->getAggregatedMetrics(1, date('Y-m-d', strtotime('-2days')), date('Y-m-d'));
$this->assertNotEmpty($metrics);
$this->assertEquals(4, count($metrics));
$this->assertEquals(5, count($metrics[0]));
$this->assertEquals('Date', $metrics[0][0]);
$this->assertEquals('Backlog', $metrics[0][1]);
$this->assertEquals('Ready', $metrics[0][2]);
$this->assertEquals('Work in progress', $metrics[0][3]);
$this->assertEquals('Done', $metrics[0][4]);
$this->assertEquals(date('Y-m-d', strtotime('-2days')), $metrics[1][0]);
$this->assertEquals(10, $metrics[1][1]);
$this->assertEquals(0, $metrics[1][2]);
$this->assertEquals(0, $metrics[1][3]);
$this->assertEquals(5, $metrics[1][4]);
$this->assertEquals(date('Y-m-d', strtotime('-1day')), $metrics[2][0]);
$this->assertEquals(10, $metrics[2][1]);
$this->assertEquals(25, $metrics[2][2]);
$this->assertEquals(15, $metrics[2][3]);
$this->assertEquals(5, $metrics[2][4]);
$this->assertEquals(date('Y-m-d'), $metrics[3][0]);
$this->assertEquals(10, $metrics[3][1]);
$this->assertEquals(30, $metrics[3][2]);
$this->assertEquals(18, $metrics[3][3]);
$this->assertEquals(9, $metrics[3][4]);
}