1
0
Fork 0
mirror of synced 2024-07-03 05:31:38 +12:00
appwrite/tests/unit/Storage/Devices/LocalTest.php
2020-03-24 19:56:32 +02:00

123 lines
5.5 KiB
PHP

<?php
namespace Appwrite\Tests;
use Appwrite\Storage\Devices\Local;
use PHPUnit\Framework\TestCase;
class LocalTest extends TestCase
{
/**
* @var Local
*/
protected $object = null;
public function setUp()
{
$this->object = new Local(realpath(__DIR__ . '/../../../resources/disk-a'));
}
public function tearDown()
{
}
public function testName()
{
$this->assertEquals($this->object->getName(), 'Local Storage');
}
public function testDescription()
{
$this->assertEquals($this->object->getDescription(), 'Adapter for Local storage that is in the physical or virtual machine or mounted to it.');
}
public function testRoot()
{
$this->assertEquals($this->object->getRoot(), '/usr/share/nginx/html/tests/resources/disk-a');
}
public function testPath()
{
$this->assertEquals($this->object->getPath('image.png'), '/usr/share/nginx/html/tests/resources/disk-a/i/m/a/g/image.png');
$this->assertEquals($this->object->getPath('x.png'), '/usr/share/nginx/html/tests/resources/disk-a/x/./p/n/x.png');
$this->assertEquals($this->object->getPath('y'), '/usr/share/nginx/html/tests/resources/disk-a/y/x/x/x/y');
}
public function testWrite()
{
$this->assertEquals($this->object->write($this->object->getPath('text.txt'), 'Hello World'), true);
$this->assertEquals(file_exists($this->object->getPath('text.txt')), true);
$this->assertEquals(is_readable($this->object->getPath('text.txt')), true);
$this->object->delete($this->object->getPath('text.txt'));
}
public function testRead()
{
$this->assertEquals($this->object->write($this->object->getPath('text-for-read.txt'), 'Hello World'), true);
$this->assertEquals($this->object->read($this->object->getPath('text-for-read.txt')), 'Hello World');
$this->object->delete($this->object->getPath('text-for-read.txt'));
}
public function testMove()
{
$this->assertEquals($this->object->write($this->object->getPath('text-for-move.txt'), 'Hello World'), true);
$this->assertEquals($this->object->read($this->object->getPath('text-for-move.txt')), 'Hello World');
$this->assertEquals($this->object->move($this->object->getPath('text-for-move.txt'), $this->object->getPath('text-for-move-new.txt')), true);
$this->assertEquals($this->object->read($this->object->getPath('text-for-move-new.txt')), 'Hello World');
$this->assertEquals(file_exists($this->object->getPath('text-for-move.txt')), false);
$this->assertEquals(is_readable($this->object->getPath('text-for-move.txt')), false);
$this->assertEquals(file_exists($this->object->getPath('text-for-move-new.txt')), true);
$this->assertEquals(is_readable($this->object->getPath('text-for-move-new.txt')), true);
$this->object->delete($this->object->getPath('text-for-move-new.txt'));
}
public function testDelete()
{
$this->assertEquals($this->object->write($this->object->getPath('text-for-delete.txt'), 'Hello World'), true);
$this->assertEquals($this->object->read($this->object->getPath('text-for-delete.txt')), 'Hello World');
$this->assertEquals($this->object->delete($this->object->getPath('text-for-delete.txt')), true);
$this->assertEquals(file_exists($this->object->getPath('text-for-delete.txt')), false);
$this->assertEquals(is_readable($this->object->getPath('text-for-delete.txt')), false);
}
public function testFileSize()
{
$this->assertEquals($this->object->getFileSize(__DIR__ . '/../../../resources/disk-a/kitten-1.jpg'), 599639);
$this->assertEquals($this->object->getFileSize(__DIR__ . '/../../../resources/disk-a/kitten-2.jpg'), 131958);
}
public function testFileMimeType()
{
$this->assertEquals($this->object->getFileMimeType(__DIR__ . '/../../../resources/disk-a/kitten-1.jpg'), 'image/jpeg');
$this->assertEquals($this->object->getFileMimeType(__DIR__ . '/../../../resources/disk-a/kitten-2.jpg'), 'image/jpeg');
$this->assertEquals($this->object->getFileMimeType(__DIR__ . '/../../../resources/disk-b/kitten-1.png'), 'image/png');
$this->assertEquals($this->object->getFileMimeType(__DIR__ . '/../../../resources/disk-b/kitten-2.png'), 'image/png');
}
public function testFileHash()
{
$this->assertEquals($this->object->getFileHash(__DIR__ . '/../../../resources/disk-a/kitten-1.jpg'), '7551f343143d2e24ab4aaf4624996b6a');
$this->assertEquals($this->object->getFileHash(__DIR__ . '/../../../resources/disk-a/kitten-2.jpg'), '81702fdeef2e55b1a22617bce4951cb5');
$this->assertEquals($this->object->getFileHash(__DIR__ . '/../../../resources/disk-b/kitten-1.png'), '03010f4f02980521a8fd6213b52ec313');
$this->assertEquals($this->object->getFileHash(__DIR__ . '/../../../resources/disk-b/kitten-2.png'), '8a9ed992b77e4b62b10e3a5c8ed72062');
}
public function testDirectorySize()
{
$this->assertGreaterThan(0, $this->object->getDirectorySize(__DIR__ . '/../../../resources/disk-a/'));
$this->assertGreaterThan(0, $this->object->getDirectorySize(__DIR__ . '/../../../resources/disk-b/'));
}
public function testPartitionFreeSpace()
{
$this->assertGreaterThan(0, $this->object->getPartitionFreeSpace());
}
public function testPartitionTotalSpace()
{
$this->assertGreaterThan(0, $this->object->getPartitionTotalSpace());
}
}