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']); // // } }