96 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| namespace DavidBadura\Taskwarrior\Test;
 | |
| 
 | |
| use DavidBadura\Taskwarrior\Config\Config;
 | |
| 
 | |
| /**
 | |
|  * @author David Badura <badura@simplethings.de>
 | |
|  */
 | |
| class ConfigTest extends \PHPUnit_Framework_TestCase
 | |
| {
 | |
|     public function testParse()
 | |
|     {
 | |
|         $content = <<<CONFIG
 | |
| foo.bar=test
 | |
| baz=1
 | |
| on=on
 | |
| off=off
 | |
| yes=yes
 | |
| no=no
 | |
| CONFIG;
 | |
| 
 | |
|         $config = Config::create($content);
 | |
| 
 | |
|         $this->assertTrue($config->has('foo.bar'));
 | |
|         $this->assertTrue($config->has('baz'));
 | |
|         $this->assertFalse($config->has('bla'));
 | |
| 
 | |
|         $this->assertEquals('test', $config->get('foo.bar'));
 | |
|         $this->assertEquals(1, $config->get('baz'));
 | |
|         $this->assertEquals(true, $config->get('on'));
 | |
|         $this->assertEquals(false, $config->get('off'));
 | |
|         $this->assertEquals(true, $config->get('yes'));
 | |
|         $this->assertEquals(false, $config->get('no'));
 | |
|     }
 | |
| 
 | |
|     public function testContext()
 | |
|     {
 | |
|         $content = <<<CONFIG
 | |
| context.work=+work or +freelance
 | |
| CONFIG;
 | |
| 
 | |
|         $config = Config::create($content);
 | |
| 
 | |
|         $this->assertTrue($config->hasContext('work'));
 | |
| 
 | |
|         $context = $config->getContext('work');
 | |
| 
 | |
|         $this->assertEquals('work', $context->name);
 | |
|         $this->assertEquals('+work or +freelance', $context->filter);
 | |
|     }
 | |
| 
 | |
|     public function testReport()
 | |
|     {
 | |
|         $content = <<<CONFIG
 | |
| report.active.columns=id,start,start.age
 | |
| report.active.description=Active tasks
 | |
| report.active.filter=status:pending and +ACTIVE
 | |
| report.active.labels=ID,Started,Active,Age
 | |
| report.active.sort=project+,start+
 | |
| CONFIG;
 | |
| 
 | |
|         $config = Config::create($content);
 | |
| 
 | |
|         $this->assertTrue($config->hasReport('active'));
 | |
| 
 | |
|         $report = $config->getReport('active');
 | |
| 
 | |
|         $this->assertEquals('active', $report->name);
 | |
|         $this->assertEquals(['id', 'start', 'start.age'], $report->columns);
 | |
|         $this->assertEquals('Active tasks', $report->description);
 | |
|         $this->assertEquals('status:pending and +ACTIVE', $report->filter);
 | |
|         $this->assertEquals(['ID', 'Started', 'Active', 'Age'], $report->labels);
 | |
|         $this->assertEquals(['project' => 'ASC', 'start' => 'ASC'], $report->sort);
 | |
|     }
 | |
| 
 | |
|     public function testUda()
 | |
|     {
 | |
|         $content = <<<CONFIG
 | |
| uda.priority.label=Priority
 | |
| uda.priority.type=string
 | |
| uda.priority.values=H,M,L,
 | |
| CONFIG;
 | |
| 
 | |
|         $config = Config::create($content);
 | |
| 
 | |
|         $this->assertTrue($config->hasUda('priority'));
 | |
| 
 | |
|         $uda = $config->getUda('priority');
 | |
| 
 | |
|         $this->assertEquals('priority', $uda->name);
 | |
|         $this->assertEquals('Priority', $uda->label);
 | |
|         $this->assertEquals('string', $uda->type);
 | |
|         $this->assertEquals(['H', 'M', 'L', ''], $uda->values);
 | |
|     }
 | |
| } |