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); } }