/** * @param string $adapterClassName * @param array $options * @param string|null $secondaryClassName * @param array|null $secondaryOptions * @return CM_File_Filesystem */ public function createFilesystem($adapterClassName, array $options, $secondaryClassName = null, array $secondaryOptions = null) { $adapter = $this->createAdapter($adapterClassName, $options); $filesystem = new CM_File_Filesystem($adapter); if (null !== $secondaryClassName && null !== $secondaryOptions) { $secondaryAdapter = $this->createAdapter($secondaryClassName, $secondaryOptions); $secondaryFilesystem = new CM_File_Filesystem($secondaryAdapter); $filesystem->addSecondary($secondaryFilesystem); } return $filesystem; }
public function testEquals() { $dirTmp = CM_Bootloader::getInstance()->getDirTmp(); $filesystem1 = new CM_File_Filesystem(new CM_File_Filesystem_Adapter_Local($dirTmp)); $filesystem2 = new CM_File_Filesystem(new CM_File_Filesystem_Adapter_Local($dirTmp)); $filesystem3 = new CM_File_Filesystem(new CM_File_Filesystem_Adapter_Local($dirTmp)); $filesystemSecondary1 = new CM_File_Filesystem(new CM_File_Filesystem_Adapter_Local($dirTmp . 'sec1')); $filesystemSecondary2 = new CM_File_Filesystem(new CM_File_Filesystem_Adapter_Local($dirTmp . 'sec2')); $filesystemSecondary3 = new CM_File_Filesystem(new CM_File_Filesystem_Adapter_Local($dirTmp . 'sec1')); $this->assertTrue($filesystem1->equals($filesystem2)); $filesystem1->addSecondary($filesystemSecondary1); $this->assertFalse($filesystem1->equals($filesystem2)); $filesystem2->addSecondary($filesystemSecondary1); $this->assertTrue($filesystem1->equals($filesystem2)); $filesystem3->addSecondary($filesystemSecondary2); $this->assertFalse($filesystem1->equals($filesystem3)); $filesystem1->addSecondary($filesystemSecondary1); $filesystem2->addSecondary($filesystemSecondary3); $this->assertTrue($filesystem1->equals($filesystem2)); $filesystem1->addSecondary($filesystemSecondary1); $filesystem2->addSecondary($filesystemSecondary2); $this->assertFalse($filesystem1->equals($filesystem2)); }