96 lines
3.9 KiB
PHP
96 lines
3.9 KiB
PHP
<?php
|
|
|
|
namespace Aerex\BaikalStorage;
|
|
|
|
use PHPUnit\Framework\TestCase;
|
|
use Aerex\BaikalStorage\AbstractConsole;
|
|
use Aerex\BaikalStorage\Logger;
|
|
use Sabre\VObject\Component\VCalendar as Calendar;
|
|
use Aerex\BaikalStorage\Storages\Taskwarrior;
|
|
|
|
class TaskwarriorTest extends TestCase {
|
|
|
|
/**
|
|
* @var \PHPUnit_Framework_MockObject_MockObject
|
|
* */
|
|
private $mockConsole;
|
|
|
|
protected function setUp(): void {
|
|
$this->mockConsole = $this->createMock(AbstractConsole::class);
|
|
$this->mockLogger = $this->createMock(Logger::class);
|
|
}
|
|
|
|
public function testVObjectToTask() {
|
|
$configs = [
|
|
'general' => [
|
|
'logger' => ['file' => '', 'level'=> 'DEBUG', 'enabled' => true],
|
|
],
|
|
'storages' => [
|
|
'taskwarrior' => ['taskrc' => '', 'taskdata' => '']
|
|
]
|
|
];
|
|
$this->taskwarrior = new Taskwarrior($this->mockConsole, $configs, $this->mockLogger);
|
|
$vcalendar = new Calendar([
|
|
'VTODO' => [
|
|
'SUMMARY' => 'Finish project',
|
|
'DTSTAMP' => new \DateTime('2020-07-04 10:00:00'),
|
|
'DTSTART' => new \DateTime('2020-07-04 12:00:00'),
|
|
'DTEND' => new \DateTime('2020-07-05 01:00:00'),
|
|
'DUE' => new \DateTime('2020-07-05 03:00:00'),
|
|
'LAST_MODIFIED' => new \DateTime('2020-07-04 13:00:00'),
|
|
'PRIORITY' => 5,
|
|
'RRULE' => 'FREQ=MONTHLY'
|
|
]
|
|
]);
|
|
|
|
$task = $this->taskwarrior->vObjectToTask($vcalendar->VTODO);
|
|
$this->assertArrayHasKey('uid', $task, 'task should have a uid');
|
|
$this->assertEquals((string)$vcalendar->VTODO->UID, $task['uid']);
|
|
$this->assertArrayHasKey('description', $task, 'task should have description');
|
|
$this->assertEquals((string)$vcalendar->VTODO->SUMMARY, $task['description']);
|
|
$this->assertArrayHasKey('due', $task, 'task should have due');
|
|
$this->assertEquals($vcalendar->VTODO->DUE->getDateTime()->format(\DateTime::ISO8601), $task['due']);
|
|
$this->assertArrayHasKey('entry', $task, 'task should have an entry');
|
|
$this->assertEquals($vcalendar->VTODO->DTSTAMP->getDateTime()->format(\DateTime::ISO8601), $task['entry']);
|
|
$this->assertArrayHasKey('start', $task, 'task should have start');
|
|
$this->assertEquals($vcalendar->VTODO->DTSTART->getDateTime()->format(\DateTime::ISO8601), $task['start']);
|
|
}
|
|
// public function testVObjectToTaskWithDifferentTimezone() {
|
|
// $configs = [
|
|
// 'general' => [
|
|
// 'logger' => ['file' => '', 'level'=> 'DEBUG', 'enabled' => true],
|
|
// ],
|
|
// 'storages' => [
|
|
// 'taskwarrior' => ['taskrc' => '', 'taskdata' => '']
|
|
// ]
|
|
// ];
|
|
// $this->taskwarrior = new Taskwarrior($this->mockConsole, $configs, $this->mockLogger);
|
|
// $vcalendar = new Calendar([
|
|
// 'VTODO' => [
|
|
// 'SUMMARY' => 'Finish project',
|
|
// 'DTSTAMP' => new \DateTime('2020-07-04 10:00:00'),
|
|
// 'DTSTART' => new \DateTime('2020-07-04 12:00:00'),
|
|
// 'DTEND' => new \DateTime('2020-07-05 01:00:00'),
|
|
// 'DUE' => new \DateTime('2020-07-05 03:00:00'),
|
|
// 'LAST_MODIFIED' => new \DateTime('2020-07-04 13:00:00'),
|
|
// 'PRIORITY' => 5,
|
|
// 'RRULE' => 'FREQ=MONTHLY'
|
|
// ]
|
|
// ]);
|
|
//
|
|
// $task = $this->taskwarrior->vObjectToTask($vcalendar->VTODO);
|
|
// $this->assertArrayHasKey('uid', $task, 'task should have a uid');
|
|
// $this->assertEquals((string)$vcalendar->VTODO->UID, $task['uid']);
|
|
// $this->assertArrayHasKey('description', $task, 'task should have description');
|
|
// $this->assertEquals((string)$vcalendar->VTODO->SUMMARY, $task['description']);
|
|
// $this->assertArrayHasKey('due', $task, 'task should have due');
|
|
// $this->assertEquals($vcalendar->VTODO->DUE->getDateTime(), $task['due']);
|
|
// $this->assertArrayHasKey('entry', $task, 'task should have an entry');
|
|
// $this->assertEquals($vcalendar->VTODO->DTSTAMP->getDateTime(), $task['entry']);
|
|
// $this->assertArrayHasKey('start', $task, 'task should have start');
|
|
// $this->assertEquals($vcalendar->VTODO->DTSTART->getDateTime(), $task['start']);
|
|
//
|
|
// }
|
|
|
|
}
|