feat(tw): Used RELATED-TO iCal prop as depends prop feat(tw): Used DESCRIPTION iCal prop as annotations refactor(tw): Changed project_tag_prefix to project_category_prefix chore(tw): Added documentation on configs
		
			
				
	
	
		
			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']);
 | |
| //
 | |
| //  }
 | |
| 
 | |
| }
 |