vendor and env first commit
This commit is contained in:
+118
@@ -0,0 +1,118 @@
|
||||
<?php
|
||||
|
||||
use Akaunting\Setting\Drivers\Database;
|
||||
|
||||
abstract class AbstractFunctionalTest extends PHPUnit_Framework_TestCase
|
||||
{
|
||||
abstract protected function createStore(array $data = []);
|
||||
|
||||
protected function assertStoreEquals($store, $expected, $message = null)
|
||||
{
|
||||
$this->assertEquals($expected, $store->all(), $message);
|
||||
$store->save();
|
||||
$store = $this->createStore();
|
||||
$this->assertEquals($expected, $store->all(), $message);
|
||||
}
|
||||
|
||||
protected function assertStoreKeyEquals($store, $key, $expected, $message = null)
|
||||
{
|
||||
$this->assertEquals($expected, $store->get($key), $message);
|
||||
$store->save();
|
||||
$store = $this->createStore();
|
||||
$this->assertEquals($expected, $store->get($key), $message);
|
||||
}
|
||||
|
||||
/** @test */
|
||||
public function store_is_initially_empty()
|
||||
{
|
||||
$store = $this->createStore();
|
||||
$this->assertEquals([], $store->all());
|
||||
}
|
||||
|
||||
/** @test */
|
||||
public function written_changes_are_saved()
|
||||
{
|
||||
$store = $this->createStore();
|
||||
$store->set('foo', 'bar');
|
||||
$this->assertStoreKeyEquals($store, 'foo', 'bar');
|
||||
}
|
||||
|
||||
/** @test */
|
||||
public function nested_keys_are_nested()
|
||||
{
|
||||
$store = $this->createStore();
|
||||
$store->set('foo.bar', 'baz');
|
||||
$this->assertStoreEquals($store, ['foo' => ['bar' => 'baz']]);
|
||||
}
|
||||
|
||||
/** @test */
|
||||
public function cannot_set_nested_key_on_non_array_member()
|
||||
{
|
||||
$store = $this->createStore();
|
||||
$store->set('foo', 'bar');
|
||||
$this->setExpectedException('UnexpectedValueException', 'Non-array segment encountered');
|
||||
$store->set('foo.bar', 'baz');
|
||||
}
|
||||
|
||||
/** @test */
|
||||
public function can_forget_key()
|
||||
{
|
||||
$store = $this->createStore();
|
||||
$store->set('foo', 'bar');
|
||||
$store->set('bar', 'baz');
|
||||
$this->assertStoreEquals($store, ['foo' => 'bar', 'bar' => 'baz']);
|
||||
|
||||
$store->forget('foo');
|
||||
$this->assertStoreEquals($store, ['bar' => 'baz']);
|
||||
}
|
||||
|
||||
/** @test */
|
||||
public function can_forget_nested_key()
|
||||
{
|
||||
$store = $this->createStore();
|
||||
$store->set('foo.bar', 'baz');
|
||||
$store->set('foo.baz', 'bar');
|
||||
$store->set('bar.foo', 'baz');
|
||||
$this->assertStoreEquals($store, [
|
||||
'foo' => [
|
||||
'bar' => 'baz',
|
||||
'baz' => 'bar',
|
||||
],
|
||||
'bar' => [
|
||||
'foo' => 'baz',
|
||||
],
|
||||
]);
|
||||
|
||||
$store->forget('foo.bar');
|
||||
$this->assertStoreEquals($store, [
|
||||
'foo' => [
|
||||
'baz' => 'bar',
|
||||
],
|
||||
'bar' => [
|
||||
'foo' => 'baz',
|
||||
],
|
||||
]);
|
||||
|
||||
$store->forget('bar.foo');
|
||||
$expected = [
|
||||
'foo' => [
|
||||
'baz' => 'bar',
|
||||
],
|
||||
'bar' => [
|
||||
],
|
||||
];
|
||||
if ($store instanceof Database) {
|
||||
unset($expected['bar']);
|
||||
}
|
||||
$this->assertStoreEquals($store, $expected);
|
||||
}
|
||||
|
||||
/** @test */
|
||||
public function can_forget_all()
|
||||
{
|
||||
$store = $this->createStore(['foo' => 'bar']);
|
||||
$this->assertStoreEquals($store, ['foo' => 'bar']);
|
||||
$store->forgetAll();
|
||||
$this->assertStoreEquals($store, []);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
<?php
|
||||
|
||||
class DatabaseTest extends AbstractFunctionalTest
|
||||
{
|
||||
public function setUp()
|
||||
{
|
||||
$this->container = new \Illuminate\Container\Container();
|
||||
$this->capsule = new \Illuminate\Database\Capsule\Manager($this->container);
|
||||
$this->capsule->setAsGlobal();
|
||||
$this->container['db'] = $this->capsule;
|
||||
$this->capsule->addConnection([
|
||||
'driver' => 'sqlite',
|
||||
'database' => ':memory:',
|
||||
'prefix' => '',
|
||||
]);
|
||||
|
||||
$this->capsule->schema()->create('settings', function ($t) {
|
||||
$t->string('key', 64)->unique();
|
||||
$t->string('value', 4096);
|
||||
});
|
||||
}
|
||||
|
||||
public function tearDown()
|
||||
{
|
||||
$this->capsule->schema()->drop('settings');
|
||||
unset($this->capsule);
|
||||
unset($this->container);
|
||||
}
|
||||
|
||||
protected function createStore(array $data = [])
|
||||
{
|
||||
if ($data) {
|
||||
$store = $this->createStore();
|
||||
$store->set($data);
|
||||
$store->save();
|
||||
unset($store);
|
||||
}
|
||||
|
||||
return new \Akaunting\Setting\Drivers\Database(
|
||||
$this->capsule->getConnection()
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
class JsonTest extends AbstractFunctionalTest
|
||||
{
|
||||
protected function createStore(array $data = null)
|
||||
{
|
||||
$path = dirname(__DIR__) . '/tmp/store.json';
|
||||
|
||||
if ($data !== null) {
|
||||
if ($data) {
|
||||
$json = json_encode($data);
|
||||
} else {
|
||||
$json = '{}';
|
||||
}
|
||||
|
||||
file_put_contents($path, $json);
|
||||
}
|
||||
|
||||
return new \Akaunting\Setting\Drivers\Json(
|
||||
new \Illuminate\Filesystem\Filesystem(),
|
||||
$path
|
||||
);
|
||||
}
|
||||
|
||||
public function tearDown()
|
||||
{
|
||||
$path = dirname(__DIR__) . '/tmp/store.json';
|
||||
unlink($path);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
|
||||
class MemoryTest extends AbstractFunctionalTest
|
||||
{
|
||||
protected function assertStoreEquals($store, $expected, $message = null)
|
||||
{
|
||||
$this->assertEquals($expected, $store->all(), $message);
|
||||
// removed persistance test assertions
|
||||
}
|
||||
|
||||
protected function assertStoreKeyEquals($store, $key, $expected, $message = null)
|
||||
{
|
||||
$this->assertEquals($expected, $store->get($key), $message);
|
||||
// removed persistance test assertions
|
||||
}
|
||||
|
||||
protected function createStore(array $data = null)
|
||||
{
|
||||
return new \Akaunting\Setting\Drivers\Memory($data);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user