Tested FilesystemJsonStorage
This commit is contained in:
parent
ddcaf4b64d
commit
825ec1c0e5
|
@ -1,2 +1,3 @@
|
||||||
.DS_Store
|
.DS_Store
|
||||||
vendor
|
vendor
|
||||||
|
tests/tmp/*
|
|
@ -50,7 +50,7 @@ class FilesystemJsonStorage implements TokenStorageInterface {
|
||||||
|
|
||||||
public function put(string $key, array $data): bool {
|
public function put(string $key, array $data): bool {
|
||||||
// Ensure that the containing folder exists.
|
// Ensure that the containing folder exists.
|
||||||
mkdir($this->path, 0777, true);
|
@mkdir($this->path, 0777, true);
|
||||||
|
|
||||||
return file_put_contents($this->getPath($key), json_encode($data)) !== false;
|
return file_put_contents($this->getPath($key), json_encode($data)) !== false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,56 @@
|
||||||
|
<?php declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Taproot\IndieAuth\Test;
|
||||||
|
|
||||||
|
use DirectoryIterator;
|
||||||
|
use PHPUnit\Framework\TestCase;
|
||||||
|
use Taproot\IndieAuth\Storage\FilesystemJsonStorage;
|
||||||
|
|
||||||
|
const TMP_DIR = __DIR__ . '/tmp';
|
||||||
|
|
||||||
|
class FilesystemJsonStorageTest extends TestCase {
|
||||||
|
protected function setUp(): void {
|
||||||
|
// Clean tmp dir.
|
||||||
|
foreach (new DirectoryIterator(TMP_DIR) as $fileInfo) {
|
||||||
|
if ($fileInfo->isFile()) {
|
||||||
|
unlink($fileInfo->getPathname());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function tearDown(): void {
|
||||||
|
// Clean tmp dir.
|
||||||
|
foreach (new DirectoryIterator(TMP_DIR) as $fileInfo) {
|
||||||
|
if ($fileInfo->isFile()) {
|
||||||
|
unlink($fileInfo->getPathname());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testCrud() {
|
||||||
|
$s = new FilesystemJsonStorage(TMP_DIR, 0, false);
|
||||||
|
|
||||||
|
$t1data = ['example' => 'data'];
|
||||||
|
$t1path = TMP_DIR . '/t1.json';
|
||||||
|
|
||||||
|
$this->assertTrue($s->put('t1', $t1data), "Saving t1 data failed");
|
||||||
|
|
||||||
|
$this->assertFileExists($t1path, "t1 was not stored to $t1path");
|
||||||
|
|
||||||
|
$this->assertEquals($t1data, $s->get('t1'), "The result of getting t1 did not match the saved data.");
|
||||||
|
|
||||||
|
$s->delete('t1');
|
||||||
|
|
||||||
|
$this->assertFileDoesNotExist($t1path, "t1 was not successfully deleted.");
|
||||||
|
|
||||||
|
$this->assertNull($s->get('t1'), "Getting a nonexistent key did not return null");
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testCleanUp() {
|
||||||
|
$s = new FilesystemJsonStorage(TMP_DIR, 1, false);
|
||||||
|
$s->put('t1', ['example' => 'data']);
|
||||||
|
sleep(2);
|
||||||
|
$s->cleanUp();
|
||||||
|
$this->assertNull($s->get('t1'), 't1 was not cleaned up after expiring.');
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue