php-litedb/tests/LiteDbTest.php

49 lines
1.4 KiB
PHP

<?php
namespace NoccyLabs\LiteDb;
class LiteDbText extends \PhpUnit\Framework\TestCase
{
public function testCreatingNewDatabase()
{
if (file_exists("/tmp/litedbtest.db"))
unlink("/tmp/litedbtest.db");
$db = new LiteDb("/tmp/litedbtest.db", 1, function ($db, $v) {
$db->createStore("test");
});
$this->assertTrue($db->hasStore("test"));
$this->assertFalse($db->hasStore("test2"));
$this->assertEquals(1, $db->getVersion());
}
public function testUpgradingDatabase()
{
$db = new LiteDb("/tmp/litedbtest.db", 2, function ($db, $v) {
$db->createStore("test2");
});
$this->assertTrue($db->hasStore("test"));
$this->assertTrue($db->hasStore("test2"));
$this->assertEquals(2, $db->getVersion());
}
public function testUsingIndexes()
{
$db = new LiteDb("/tmp/litedbtest.db", 3, function ($db, $v) {
$db->createStore("test3")
->addIndex("foo", [ 'unique'=>true, 'primary'=>true ]);
});
$this->assertTrue($db->hasStore("test3"));
$this->assertEquals(3, $db->getVersion());
$store = $db->getStore("test3");
$this->assertInstanceOf(ObjectStore::class, $store);
$store->add([ 'foo'=>42, 'bar'=>314 ]);
$record = $store->get(42);
$this->assertEquals(['foo'=>42, 'bar'=>314], $record);
}
}