feat: Initial commit
This commit is contained in:
71
tests/StorageManagerTest.php
Normal file
71
tests/StorageManagerTest.php
Normal file
@@ -0,0 +1,71 @@
|
||||
<?php
|
||||
|
||||
namespace Aerex\BaikalStorage;
|
||||
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Aerex\BaikalStorage\AbstractConsole;
|
||||
use Aerex\BaikalStorage\Configs\ConfigBuilder;
|
||||
use Aerex\BaikalStorage\Configs\TaskwarriorConfig;
|
||||
use Aerex\BaikalStorage\Storages\Taskwarrior;
|
||||
use Aerex\BaikalStorage\Storages\IStorage;
|
||||
use Sabre\VObject\Component\VCalendar as Calendar;
|
||||
|
||||
class StorageManagerTest extends TestCase {
|
||||
|
||||
/**
|
||||
* @var \PHPUnit_Framework_MockObject_MockObject
|
||||
* */
|
||||
private $mockConsole;
|
||||
|
||||
private $mockStorage;
|
||||
|
||||
public $mockConfigBuilder;
|
||||
|
||||
function setUp() {
|
||||
$this->mockConfigBuilder = $this->getMockBuilder(ConfigBuilder::class)
|
||||
->setMethods(['readContent'])
|
||||
->setConstructorArgs([''])
|
||||
->getMock();
|
||||
$this->mockConsole = $this->createMock(AbstractConsole::class);
|
||||
$this->mockStorage = $this->createMock(IStorage::class);
|
||||
}
|
||||
|
||||
public function testAddTaskwarriorStorage() {
|
||||
$this->mockConfigBuilder->expects($this->once())
|
||||
->method('readContent')
|
||||
->willReturn(file_get_contents(__DIR__ . '/Fixtures/taskwarrior_config.yml'));
|
||||
$tw = new Taskwarrior($this->mockConsole, new TaskwarriorConfig());
|
||||
$manager = new StorageManager($this->mockConfigBuilder);
|
||||
$manager->addStorage(Taskwarrior::NAME, $tw);
|
||||
$storages = $manager->getStorages();
|
||||
$manager->init();
|
||||
$configs = $manager->getConfigs();
|
||||
$this->assertEquals(sizeof(array_keys($storages)), 1, 'Taskwarrior storage was not added');
|
||||
$this->assertEquals(sizeof(array_keys($configs)), 1, 'Taskwarrior config was not loaded');
|
||||
$this->assertArrayHasKey('taskwarrior', $storages, 'Storages should have taskwarrior');
|
||||
$this->assertArrayHasKey('taskwarrior', $configs, 'Configs should have taskwarrior');
|
||||
}
|
||||
|
||||
public function testTaskwarriorImport() {
|
||||
$cal = new Calendar();
|
||||
$this->mockConfigBuilder->expects($this->once())
|
||||
->method('readContent')
|
||||
->willReturn(file_get_contents(__DIR__ . '/Fixtures/taskwarrior_config.yml'));
|
||||
$this->mockStorage->expects($this->once())
|
||||
->method('save')
|
||||
->with($this->equalTo($cal));
|
||||
$this->mockStorage->expects($this->once())
|
||||
->method('setRawConfigs')
|
||||
->with($this->equalTo(['data_dir' => '~/.task']));
|
||||
$this->mockStorage->expects($this->once())
|
||||
->method('getConfig')
|
||||
->willReturn(new TaskwarriorConfig());
|
||||
|
||||
$manager = new StorageManager($this->mockConfigBuilder);
|
||||
$manager->addStorage(Taskwarrior::NAME, $this->mockStorage);
|
||||
$manager->init();
|
||||
|
||||
$manager->import($cal);
|
||||
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user