Browse Source

Part 2

microsub
J. King 6 years ago
parent
commit
a5318d1b12
  1. 6
      tests/cases/Db/SQLite3/TestDriver.php
  2. 4
      tests/cases/Db/SQLite3/TestResult.php
  3. 4
      tests/cases/Db/SQLite3/TestStatement.php
  4. 2
      tests/cases/Db/SQLite3/TestUpdate.php
  5. 14
      tests/cases/Db/SQLite3PDO/Database/TestArticle.php
  6. 14
      tests/cases/Db/SQLite3PDO/Database/TestCleanup.php
  7. 16
      tests/cases/Db/SQLite3PDO/Database/TestDatabaseArticleSQLite3PDO.php
  8. 16
      tests/cases/Db/SQLite3PDO/Database/TestDatabaseCleanupSQLite3PDO.php
  9. 16
      tests/cases/Db/SQLite3PDO/Database/TestDatabaseFeedSQLite3PDO.php
  10. 16
      tests/cases/Db/SQLite3PDO/Database/TestDatabaseFolderSQLite3PDO.php
  11. 12
      tests/cases/Db/SQLite3PDO/Database/TestDatabaseLabelSQLite3PDO.php
  12. 16
      tests/cases/Db/SQLite3PDO/Database/TestDatabaseMetaSQLite3PDO.php
  13. 16
      tests/cases/Db/SQLite3PDO/Database/TestDatabaseMiscellanySQLite3PDO.php
  14. 12
      tests/cases/Db/SQLite3PDO/Database/TestDatabaseSessionSQLite3PDO.php
  15. 16
      tests/cases/Db/SQLite3PDO/Database/TestDatabaseSubscriptionSQLite3PDO.php
  16. 16
      tests/cases/Db/SQLite3PDO/Database/TestDatabaseUserSQLite3PDO.php
  17. 14
      tests/cases/Db/SQLite3PDO/Database/TestFeed.php
  18. 14
      tests/cases/Db/SQLite3PDO/Database/TestFolder.php
  19. 10
      tests/cases/Db/SQLite3PDO/Database/TestLabel.php
  20. 14
      tests/cases/Db/SQLite3PDO/Database/TestMeta.php
  21. 14
      tests/cases/Db/SQLite3PDO/Database/TestMiscellany.php
  22. 10
      tests/cases/Db/SQLite3PDO/Database/TestSession.php
  23. 14
      tests/cases/Db/SQLite3PDO/Database/TestSubscription.php
  24. 14
      tests/cases/Db/SQLite3PDO/Database/TestUser.php
  25. 5
      tests/cases/Db/SQLite3PDO/TestCreation.php
  26. 21
      tests/cases/Db/SQLite3PDO/TestDriver.php
  27. 28
      tests/cases/Db/SQLite3PDO/TestResult.php
  28. 14
      tests/cases/Db/SQLite3PDO/TestStatement.php
  29. 15
      tests/cases/Db/SQLite3PDO/TestUpdate.php
  30. 2
      tests/lib/Database/DriverSQLite3.php
  31. 29
      tests/phpunit.xml

6
tests/cases/Db/SQLite3/TestDriver.php

@ -10,8 +10,8 @@ use JKingWeb\Arsse\Arsse;
use JKingWeb\Arsse\Conf;
use JKingWeb\Arsse\Database;
use JKingWeb\Arsse\Db\SQLite3\Driver;
use JKingWeb\Arsse\Db\SQLite3\Result;
use JKingWeb\Arsse\Db\SQLite3\Statement;
use JKingWeb\Arsse\Db\Result;
use JKingWeb\Arsse\Db\Statement;
/**
* @covers \JKingWeb\Arsse\Db\SQLite3\Driver<extended>
@ -22,7 +22,7 @@ class TestDriver extends \JKingWeb\Arsse\Test\AbstractTest {
protected $ch;
public function setUp() {
if (!Db\SQLite3\Driver::requirementsMet()) {
if (!Driver::requirementsMet()) {
$this->markTestSkipped("SQLite extension not loaded");
}
$this->clearData();

4
tests/cases/Db/SQLite3/TestResult.php

@ -13,10 +13,10 @@ class TestResult extends \JKingWeb\Arsse\Test\AbstractTest {
protected $c;
public function setUp() {
$this->clearData();
if (!Db\SQLite3\Driver::requirementsMet()) {
if (!\JKingWeb\Arsse\Db\SQLite3\Driver::requirementsMet()) {
$this->markTestSkipped("SQLite extension not loaded");
}
$this->clearData();
$c = new \SQLite3(":memory:");
$c->enableExceptions(true);
$this->c = $c;

4
tests/cases/Db/SQLite3/TestStatement.php

@ -18,10 +18,10 @@ class TestStatement extends \JKingWeb\Arsse\Test\AbstractTest {
protected static $imp = \JKingWeb\Arsse\Db\SQLite3\Statement::class;
public function setUp() {
$this->clearData();
if (!extension_loaded("sqlite3")) {
if (!\JKingWeb\Arsse\Db\SQLite3\Driver::requirementsMet()) {
$this->markTestSkipped("SQLite extension not loaded");
}
$this->clearData();
$c = new \SQLite3(":memory:");
$c->enableExceptions(true);
$this->c = $c;

2
tests/cases/Db/SQLite3/TestUpdate.php

@ -26,7 +26,7 @@ class TestUpdate extends \JKingWeb\Arsse\Test\AbstractTest {
const MINIMAL2 = "pragma user_version=2";
public function setUp(Conf $conf = null) {
if (!extension_loaded("sqlite3")) {
if (!Driver::requirementsMet()) {
$this->markTestSkipped("SQLite extension not loaded");
}
$this->clearData();

14
tests/cases/Db/SQLite3PDO/Database/TestArticle.php

@ -0,0 +1,14 @@
<?php
/** @license MIT
* Copyright 2017 J. King, Dustin Wilson et al.
* See LICENSE and AUTHORS files for details */
declare(strict_types=1);
namespace JKingWeb\Arsse\TestCase\Db\SQLite3PDO\Database;
/** @covers \JKingWeb\Arsse\Database<extended> */
class TestArticle extends \JKingWeb\Arsse\Test\AbstractTest {
use \JKingWeb\Arsse\Test\Database\Setup;
use \JKingWeb\Arsse\Test\Database\DriverSQLite3PDO;
use \JKingWeb\Arsse\Test\Database\SeriesArticle;
}

14
tests/cases/Db/SQLite3PDO/Database/TestCleanup.php

@ -0,0 +1,14 @@
<?php
/** @license MIT
* Copyright 2017 J. King, Dustin Wilson et al.
* See LICENSE and AUTHORS files for details */
declare(strict_types=1);
namespace JKingWeb\Arsse\TestCase\Db\SQLite3PDO\Database;
/** @covers \JKingWeb\Arsse\Database<extended> */
class TestCleanup extends \JKingWeb\Arsse\Test\AbstractTest {
use \JKingWeb\Arsse\Test\Database\Setup;
use \JKingWeb\Arsse\Test\Database\DriverSQLite3PDO;
use \JKingWeb\Arsse\Test\Database\SeriesCleanup;
}

16
tests/cases/Db/SQLite3PDO/Database/TestDatabaseArticleSQLite3PDO.php

@ -1,16 +0,0 @@
<?php
/** @license MIT
* Copyright 2017 J. King, Dustin Wilson et al.
* See LICENSE and AUTHORS files for details */
declare(strict_types=1);
namespace JKingWeb\Arsse;
/**
* @covers \JKingWeb\Arsse\Database<extended>
* @group optional */
class TestDatabaseArticleSQLite3PDO extends Test\AbstractTest {
use Test\Database\Setup;
use Test\Database\DriverSQLite3PDO;
use Test\Database\SeriesArticle;
}

16
tests/cases/Db/SQLite3PDO/Database/TestDatabaseCleanupSQLite3PDO.php

@ -1,16 +0,0 @@
<?php
/** @license MIT
* Copyright 2017 J. King, Dustin Wilson et al.
* See LICENSE and AUTHORS files for details */
declare(strict_types=1);
namespace JKingWeb\Arsse;
/**
* @covers \JKingWeb\Arsse\Database<extended>
* @group optional */
class TestDatabaseCleanupSQLite3PDO extends Test\AbstractTest {
use Test\Database\Setup;
use Test\Database\DriverSQLite3PDO;
use Test\Database\SeriesCleanup;
}

16
tests/cases/Db/SQLite3PDO/Database/TestDatabaseFeedSQLite3PDO.php

@ -1,16 +0,0 @@
<?php
/** @license MIT
* Copyright 2017 J. King, Dustin Wilson et al.
* See LICENSE and AUTHORS files for details */
declare(strict_types=1);
namespace JKingWeb\Arsse;
/**
* @covers \JKingWeb\Arsse\Database<extended>
* @group optional */
class TestDatabaseFeedSQLite3PDO extends Test\AbstractTest {
use Test\Database\Setup;
use Test\Database\DriverSQLite3PDO;
use Test\Database\SeriesFeed;
}

16
tests/cases/Db/SQLite3PDO/Database/TestDatabaseFolderSQLite3PDO.php

@ -1,16 +0,0 @@
<?php
/** @license MIT
* Copyright 2017 J. King, Dustin Wilson et al.
* See LICENSE and AUTHORS files for details */
declare(strict_types=1);
namespace JKingWeb\Arsse;
/**
* @covers \JKingWeb\Arsse\Database<extended>
* @group optional */
class TestDatabaseFolderSQLite3PDO extends Test\AbstractTest {
use Test\Database\Setup;
use Test\Database\DriverSQLite3PDO;
use Test\Database\SeriesFolder;
}

12
tests/cases/Db/SQLite3PDO/Database/TestDatabaseLabelSQLite3PDO.php

@ -1,12 +0,0 @@
<?php
declare(strict_types=1);
namespace JKingWeb\Arsse;
/**
* @covers \JKingWeb\Arsse\Database<extended>
* @group optional */
class TestDatabaseLabelSQLite3PDO extends Test\AbstractTest {
use Test\Database\Setup;
use Test\Database\DriverSQLite3PDO;
use Test\Database\SeriesLabel;
}

16
tests/cases/Db/SQLite3PDO/Database/TestDatabaseMetaSQLite3PDO.php

@ -1,16 +0,0 @@
<?php
/** @license MIT
* Copyright 2017 J. King, Dustin Wilson et al.
* See LICENSE and AUTHORS files for details */
declare(strict_types=1);
namespace JKingWeb\Arsse;
/**
* @covers \JKingWeb\Arsse\Database<extended>
* @group optional */
class TestDatabaseMetaSQLite3PDO extends Test\AbstractTest {
use Test\Database\Setup;
use Test\Database\DriverSQLite3PDO;
use Test\Database\SeriesMeta;
}

16
tests/cases/Db/SQLite3PDO/Database/TestDatabaseMiscellanySQLite3PDO.php

@ -1,16 +0,0 @@
<?php
/** @license MIT
* Copyright 2017 J. King, Dustin Wilson et al.
* See LICENSE and AUTHORS files for details */
declare(strict_types=1);
namespace JKingWeb\Arsse;
/**
* @covers \JKingWeb\Arsse\Database<extended>
* @group optional */
class TestDatabaseMiscellanySQLite3PDO extends Test\AbstractTest {
use Test\Database\Setup;
use Test\Database\DriverSQLite3PDO;
use Test\Database\SeriesMiscellany;
}

12
tests/cases/Db/SQLite3PDO/Database/TestDatabaseSessionSQLite3PDO.php

@ -1,12 +0,0 @@
<?php
declare(strict_types=1);
namespace JKingWeb\Arsse;
/**
* @covers \JKingWeb\Arsse\Database<extended>
* @group optional */
class TestDatabaseSessionSQLite3PDO extends Test\AbstractTest {
use Test\Database\Setup;
use Test\Database\DriverSQLite3PDO;
use Test\Database\SeriesSession;
}

16
tests/cases/Db/SQLite3PDO/Database/TestDatabaseSubscriptionSQLite3PDO.php

@ -1,16 +0,0 @@
<?php
/** @license MIT
* Copyright 2017 J. King, Dustin Wilson et al.
* See LICENSE and AUTHORS files for details */
declare(strict_types=1);
namespace JKingWeb\Arsse;
/**
* @covers \JKingWeb\Arsse\Database<extended>
* @group optional */
class TestDatabaseSubscriptionSQLite3PDO extends Test\AbstractTest {
use Test\Database\Setup;
use Test\Database\DriverSQLite3PDO;
use Test\Database\SeriesSubscription;
}

16
tests/cases/Db/SQLite3PDO/Database/TestDatabaseUserSQLite3PDO.php

@ -1,16 +0,0 @@
<?php
/** @license MIT
* Copyright 2017 J. King, Dustin Wilson et al.
* See LICENSE and AUTHORS files for details */
declare(strict_types=1);
namespace JKingWeb\Arsse;
/**
* @covers \JKingWeb\Arsse\Database<extended>
* @group optional */
class TestDatabaseUserSQLite3PDO extends Test\AbstractTest {
use Test\Database\Setup;
use Test\Database\DriverSQLite3PDO;
use Test\Database\SeriesUser;
}

14
tests/cases/Db/SQLite3PDO/Database/TestFeed.php

@ -0,0 +1,14 @@
<?php
/** @license MIT
* Copyright 2017 J. King, Dustin Wilson et al.
* See LICENSE and AUTHORS files for details */
declare(strict_types=1);
namespace JKingWeb\Arsse\TestCase\Db\SQLite3PDO\Database;
/** @covers \JKingWeb\Arsse\Database<extended> */
class TestFeed extends \JKingWeb\Arsse\Test\AbstractTest {
use \JKingWeb\Arsse\Test\Database\Setup;
use \JKingWeb\Arsse\Test\Database\DriverSQLite3PDO;
use \JKingWeb\Arsse\Test\Database\SeriesFeed;
}

14
tests/cases/Db/SQLite3PDO/Database/TestFolder.php

@ -0,0 +1,14 @@
<?php
/** @license MIT
* Copyright 2017 J. King, Dustin Wilson et al.
* See LICENSE and AUTHORS files for details */
declare(strict_types=1);
namespace JKingWeb\Arsse\TestCase\Db\SQLite3PDO\Database;
/** @covers \JKingWeb\Arsse\Database<extended> */
class TestFolder extends \JKingWeb\Arsse\Test\AbstractTest {
use \JKingWeb\Arsse\Test\Database\Setup;
use \JKingWeb\Arsse\Test\Database\DriverSQLite3PDO;
use \JKingWeb\Arsse\Test\Database\SeriesFolder;
}

10
tests/cases/Db/SQLite3PDO/Database/TestLabel.php

@ -0,0 +1,10 @@
<?php
declare(strict_types=1);
namespace JKingWeb\Arsse\TestCase\Db\SQLite3PDO\Database;
/** @covers \JKingWeb\Arsse\Database<extended> */
class TestLabel extends \JKingWeb\Arsse\Test\AbstractTest {
use \JKingWeb\Arsse\Test\Database\Setup;
use \JKingWeb\Arsse\Test\Database\DriverSQLite3PDO;
use \JKingWeb\Arsse\Test\Database\SeriesLabel;
}

14
tests/cases/Db/SQLite3PDO/Database/TestMeta.php

@ -0,0 +1,14 @@
<?php
/** @license MIT
* Copyright 2017 J. King, Dustin Wilson et al.
* See LICENSE and AUTHORS files for details */
declare(strict_types=1);
namespace JKingWeb\Arsse\TestCase\Db\SQLite3PDO\Database;
/** @covers \JKingWeb\Arsse\Database<extended> */
class TestMeta extends \JKingWeb\Arsse\Test\AbstractTest {
use \JKingWeb\Arsse\Test\Database\Setup;
use \JKingWeb\Arsse\Test\Database\DriverSQLite3PDO;
use \JKingWeb\Arsse\Test\Database\SeriesMeta;
}

14
tests/cases/Db/SQLite3PDO/Database/TestMiscellany.php

@ -0,0 +1,14 @@
<?php
/** @license MIT
* Copyright 2017 J. King, Dustin Wilson et al.
* See LICENSE and AUTHORS files for details */
declare(strict_types=1);
namespace JKingWeb\Arsse\TestCase\Db\SQLite3PDO\Database;
/** @covers \JKingWeb\Arsse\Database<extended> */
class TestMiscellany extends \JKingWeb\Arsse\Test\AbstractTest {
use \JKingWeb\Arsse\Test\Database\Setup;
use \JKingWeb\Arsse\Test\Database\DriverSQLite3PDO;
use \JKingWeb\Arsse\Test\Database\SeriesMiscellany;
}

10
tests/cases/Db/SQLite3PDO/Database/TestSession.php

@ -0,0 +1,10 @@
<?php
declare(strict_types=1);
namespace JKingWeb\Arsse\TestCase\Db\SQLite3PDO\Database;
/** @covers \JKingWeb\Arsse\Database<extended> */
class TestSession extends \JKingWeb\Arsse\Test\AbstractTest {
use \JKingWeb\Arsse\Test\Database\Setup;
use \JKingWeb\Arsse\Test\Database\DriverSQLite3PDO;
use \JKingWeb\Arsse\Test\Database\SeriesSession;
}

14
tests/cases/Db/SQLite3PDO/Database/TestSubscription.php

@ -0,0 +1,14 @@
<?php
/** @license MIT
* Copyright 2017 J. King, Dustin Wilson et al.
* See LICENSE and AUTHORS files for details */
declare(strict_types=1);
namespace JKingWeb\Arsse\TestCase\Db\SQLite3PDO\Database;
/** @covers \JKingWeb\Arsse\Database<extended> */
class TestSubscription extends \JKingWeb\Arsse\Test\AbstractTest {
use \JKingWeb\Arsse\Test\Database\Setup;
use \JKingWeb\Arsse\Test\Database\DriverSQLite3PDO;
use \JKingWeb\Arsse\Test\Database\SeriesSubscription;
}

14
tests/cases/Db/SQLite3PDO/Database/TestUser.php

@ -0,0 +1,14 @@
<?php
/** @license MIT
* Copyright 2017 J. King, Dustin Wilson et al.
* See LICENSE and AUTHORS files for details */
declare(strict_types=1);
namespace JKingWeb\Arsse\TestCase\Db\SQLite3PDO\Database;
/** @covers \JKingWeb\Arsse\Database<extended> */
class TestUser extends \JKingWeb\Arsse\Test\AbstractTest {
use \JKingWeb\Arsse\Test\Database\Setup;
use \JKingWeb\Arsse\Test\Database\DriverSQLite3PDO;
use \JKingWeb\Arsse\Test\Database\SeriesUser;
}

5
tests/cases/Db/SQLite3PDO/TestDbDriverCreationSQLite3PDO.php → tests/cases/Db/SQLite3PDO/TestCreation.php

@ -4,9 +4,10 @@
* See LICENSE and AUTHORS files for details */
declare(strict_types=1);
namespace JKingWeb\Arsse;
namespace JKingWeb\Arsse\TestCase\Db\SQLite3PDO;
use JKingWeb\Arsse\Arsse;
use JKingWeb\Arsse\Conf;
use JKingWeb\Arsse\Db\SQLite3\PDODriver as Driver;
use org\bovigo\vfs\vfsStream;
use Phake;
@ -15,7 +16,7 @@ use Phake;
* @covers \JKingWeb\Arsse\Db\SQLite3\PDODriver<extended>
* @covers \JKingWeb\Arsse\Db\PDODriver
* @covers \JKingWeb\Arsse\Db\PDOError */
class TestDbDriverCreationSQLite3PDO extends Test\AbstractTest {
class TestCreation extends \JKingWeb\Arsse\Test\AbstractTest {
protected $data;
protected $drv;
protected $ch;

21
tests/cases/Db/SQLite3PDO/TestDbDriverSQLite3PDO.php → tests/cases/Db/SQLite3PDO/TestDriver.php

@ -4,28 +4,35 @@
* See LICENSE and AUTHORS files for details */
declare(strict_types=1);
namespace JKingWeb\Arsse;
namespace JKingWeb\Arsse\TestCase\Db\SQLite3PDO;
use JKingWeb\Arsse\Arsse;
use JKingWeb\Arsse\Conf;
use JKingWeb\Arsse\Database;
use JKingWeb\Arsse\Db\SQLite3\PDODriver;
use JKingWeb\Arsse\Db\Result;
use JKingWeb\Arsse\Db\Statement;
/**
* @covers \JKingWeb\Arsse\Db\SQLite3\PDODriver<extended>
* @covers \JKingWeb\Arsse\Db\PDODriver
* @covers \JKingWeb\Arsse\Db\PDOError */
class TestDbDriverSQLite3PDO extends Test\AbstractTest {
class TestDriver extends \JKingWeb\Arsse\Test\AbstractTest {
protected $data;
protected $drv;
protected $ch;
public function setUp() {
if (!Db\SQLite3\PDODriver::requirementsMet()) {
if (!PDODriver::requirementsMet()) {
$this->markTestSkipped("PDO-SQLite extension not loaded");
}
$this->clearData();
$conf = new Conf();
Arsse::$conf = $conf;
$conf->dbDriver = Db\SQLite3\PDODriver::class;
$conf->dbDriver = PDODriver::class;
$conf->dbSQLite3Timeout = 0;
$conf->dbSQLite3File = tempnam(sys_get_temp_dir(), 'ook');
$this->drv = new Db\SQLite3\PDODriver();
$this->drv = new PDODriver();
$this->ch = new \PDO("sqlite:".Arsse::$conf->dbSQLite3File, "", "", [\PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION]);
}
@ -80,7 +87,7 @@ class TestDbDriverSQLite3PDO extends Test\AbstractTest {
}
public function testMakeAValidQuery() {
$this->assertInstanceOf(Db\Result::class, $this->drv->query("SELECT 1"));
$this->assertInstanceOf(Result::class, $this->drv->query("SELECT 1"));
}
public function testMakeAnInvalidQuery() {
@ -108,7 +115,7 @@ class TestDbDriverSQLite3PDO extends Test\AbstractTest {
public function testPrepareAValidQuery() {
$s = $this->drv->prepare("SELECT ?, ?", "int", "int");
$this->assertInstanceOf(Db\Statement::class, $s);
$this->assertInstanceOf(Statement::class, $s);
}
public function testPrepareAnInvalidQuery() {

28
tests/cases/Db/SQLite3PDO/TestDbResultSQLite3PDO.php → tests/cases/Db/SQLite3PDO/TestResult.php

@ -4,17 +4,21 @@
* See LICENSE and AUTHORS files for details */
declare(strict_types=1);
namespace JKingWeb\Arsse;
namespace JKingWeb\Arsse\TestCase\Db\SQLite3PDO;
use JKingWeb\Arsse\Db\Result;
use JKingWeb\Arsse\Db\PDOResult;
use JKingWeb\Arsse\Db\SQLite3\PDODriver;
/** @covers \JKingWeb\Arsse\Db\PDOResult<extended> */
class TestDbResultSQLite3PDO extends Test\AbstractTest {
class TestResult extends \JKingWeb\Arsse\Test\AbstractTest {
protected $c;
public function setUp() {
$this->clearData();
if (!Db\SQLite3\PDODriver::requirementsMet()) {
if (!PDODriver::requirementsMet()) {
$this->markTestSkipped("PDO-SQLite extension not loaded");
}
$this->clearData();
$c = new \PDO("sqlite::memory:", "", "", [\PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION]);
$this->c = $c;
}
@ -26,7 +30,7 @@ class TestDbResultSQLite3PDO extends Test\AbstractTest {
public function testConstructResult() {
$set = $this->c->query("SELECT 1");
$this->assertInstanceOf(Db\Result::class, new Db\PDOResult($set));
$this->assertInstanceOf(Result::class, new PDOResult($set));
}
public function testGetChangeCountAndLastInsertId() {
@ -34,7 +38,7 @@ class TestDbResultSQLite3PDO extends Test\AbstractTest {
$set = $this->c->query("INSERT INTO test(col) values(1)");
$rows = $set->rowCount();
$id = $this->c->lastInsertID();
$r = new Db\PDOResult($set, [$rows,$id]);
$r = new PDOResult($set, [$rows,$id]);
$this->assertSame((int) $rows, $r->changes());
$this->assertSame((int) $id, $r->lastId());
}
@ -42,7 +46,7 @@ class TestDbResultSQLite3PDO extends Test\AbstractTest {
public function testIterateOverResults() {
$set = $this->c->query("SELECT 1 as col union select 2 as col union select 3 as col");
$rows = [];
foreach (new Db\PDOResult($set) as $index => $row) {
foreach (new PDOResult($set) as $index => $row) {
$rows[$index] = $row['col'];
}
$this->assertSame([0 => "1", 1 => "2", 2 => "3"], $rows);
@ -51,7 +55,7 @@ class TestDbResultSQLite3PDO extends Test\AbstractTest {
public function testIterateOverResultsTwice() {
$set = $this->c->query("SELECT 1 as col union select 2 as col union select 3 as col");
$rows = [];
$test = new Db\PDOResult($set);
$test = new PDOResult($set);
foreach ($test as $row) {
$rows[] = $row['col'];
}
@ -64,7 +68,7 @@ class TestDbResultSQLite3PDO extends Test\AbstractTest {
public function testGetSingleValues() {
$set = $this->c->query("SELECT 1867 as year union select 1970 as year union select 2112 as year");
$test = new Db\PDOResult($set);
$test = new PDOResult($set);
$this->assertEquals(1867, $test->getValue());
$this->assertEquals(1970, $test->getValue());
$this->assertEquals(2112, $test->getValue());
@ -73,7 +77,7 @@ class TestDbResultSQLite3PDO extends Test\AbstractTest {
public function testGetFirstValuesOnly() {
$set = $this->c->query("SELECT 1867 as year, 19 as century union select 1970 as year, 20 as century union select 2112 as year, 22 as century");
$test = new Db\PDOResult($set);
$test = new PDOResult($set);
$this->assertEquals(1867, $test->getValue());
$this->assertEquals(1970, $test->getValue());
$this->assertEquals(2112, $test->getValue());
@ -86,7 +90,7 @@ class TestDbResultSQLite3PDO extends Test\AbstractTest {
['album' => '2112', 'track' => '2112'],
['album' => 'Clockwork Angels', 'track' => 'The Wreckers'],
];
$test = new Db\PDOResult($set);
$test = new PDOResult($set);
$this->assertEquals($rows[0], $test->getRow());
$this->assertEquals($rows[1], $test->getRow());
$this->assertSame(null, $test->getRow());
@ -98,7 +102,7 @@ class TestDbResultSQLite3PDO extends Test\AbstractTest {
['album' => '2112', 'track' => '2112'],
['album' => 'Clockwork Angels', 'track' => 'The Wreckers'],
];
$test = new Db\PDOResult($set);
$test = new PDOResult($set);
$this->assertEquals($rows, $test->getAll());
}
}

14
tests/cases/Db/SQLite3PDO/TestDbStatementSQLite3PDO.php → tests/cases/Db/SQLite3PDO/TestStatement.php

@ -4,23 +4,25 @@
* See LICENSE and AUTHORS files for details */
declare(strict_types=1);
namespace JKingWeb\Arsse;
namespace JKingWeb\Arsse\TestCase\Db\SQLite3PDO;
use JKingWeb\Arsse\Db\Statement;
use JKingWeb\Arsse\Db\PDOStatement;
use JKingWeb\Arsse\Db\SQLite3\PDODriver;
/**
* @covers \JKingWeb\Arsse\Db\PDOStatement<extended>
* @covers \JKingWeb\Arsse\Db\PDOError */
class TestDbStatementSQLite3PDO extends Test\AbstractTest {
class TestStatement extends \JKingWeb\Arsse\Test\AbstractTest {
protected $c;
protected static $imp = Db\PDOStatement::class;
protected static $imp = \JKingWeb\Arsse\Db\PDOStatement::class;
public function setUp() {
$this->clearData();
if (!Db\SQLite3\PDODriver::requirementsMet()) {
if (!PDODriver::requirementsMet()) {
$this->markTestSkipped("PDO-SQLite extension not loaded");
}
$this->clearData();
$c = new \PDO("sqlite::memory:", "", "", [\PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION]);
$this->c = $c;
}
@ -46,7 +48,7 @@ class TestDbStatementSQLite3PDO extends Test\AbstractTest {
public function testConstructStatement() {
$nativeStatement = $this->c->prepare("SELECT ? as value");
$this->assertInstanceOf(Statement::class, new Db\PDOStatement($this->c, $nativeStatement));
$this->assertInstanceOf(Statement::class, new PDOStatement($this->c, $nativeStatement));
}
public function testBindMissingValue() {

15
tests/cases/Db/SQLite3PDO/TestDbUpdateSQLite3PDO.php → tests/cases/Db/SQLite3PDO/TestUpdate.php

@ -4,14 +4,19 @@
* See LICENSE and AUTHORS files for details */
declare(strict_types=1);
namespace JKingWeb\Arsse;
namespace JKingWeb\Arsse\TestCase\Db\SQLite3PDO;
use JKingWeb\Arsse\Arsse;
use JKingWeb\Arsse\Conf;
use JKingWeb\Arsse\Database;
use JKingWeb\Arsse\Db\Exception;
use JKingWeb\Arsse\Db\SQLite3\PDODriver;
use org\bovigo\vfs\vfsStream;
/**
* @covers \JKingWeb\Arsse\Db\SQLite3\PDODriver<extended>
* @covers \JKingWeb\Arsse\Db\PDOError */
class TestDbUpdateSQLite3PDO extends Test\AbstractTest {
class TestUpdate extends \JKingWeb\Arsse\Test\AbstractTest {
protected $data;
protected $drv;
protected $vfs;
@ -21,7 +26,7 @@ class TestDbUpdateSQLite3PDO extends Test\AbstractTest {
const MINIMAL2 = "pragma user_version=2";
public function setUp(Conf $conf = null) {
if (!Db\SQLite3\PDODriver::requirementsMet()) {
if (!PDODriver::requirementsMet()) {
$this->markTestSkipped("PDO-SQLite extension not loaded");
}
$this->clearData();
@ -29,12 +34,12 @@ class TestDbUpdateSQLite3PDO extends Test\AbstractTest {
if (!$conf) {
$conf = new Conf();
}
$conf->dbDriver = Db\SQLite3\PDODriver::class;
$conf->dbDriver = PDODriver::class;
$conf->dbSQLite3File = ":memory:";
Arsse::$conf = $conf;
$this->base = $this->vfs->url();
$this->path = $this->base."/SQLite3/";
$this->drv = new Db\SQLite3\PDODriver();
$this->drv = new PDODriver();
}
public function tearDown() {

2
tests/lib/Database/DriverSQLite3.php

@ -11,7 +11,7 @@ use JKingWeb\Arsse\Db\SQLite3\Driver;
trait DriverSQLite3 {
public function setUpDriver() {
if (!extension_loaded("sqlite3")) {
if (!Driver::requirementsMet()) {
$this->markTestSkipped("SQLite extension not loaded");
}
Arsse::$conf->dbSQLite3File = ":memory:";

29
tests/phpunit.xml

@ -52,11 +52,11 @@
<file>cases/Db/SQLite3/TestDriver.php</file>
<file>cases/Db/SQLite3/TestUpdate.php</file>
<file>cases/Db/SQLite3PDO/TestDbResultSQLite3PDO.php</file>
<file>cases/Db/SQLite3PDO/TestDbStatementSQLite3PDO.php</file>
<file>cases/Db/SQLite3PDO/TestDbDriverCreationSQLite3PDO.php</file>
<file>cases/Db/SQLite3PDO/TestDbDriverSQLite3PDO.php</file>
<file>cases/Db/SQLite3PDO/TestDbUpdateSQLite3PDO.php</file>
<file>cases/Db/SQLite3PDO/TestResult.php</file>
<file>cases/Db/SQLite3PDO/TestStatement.php</file>
<file>cases/Db/SQLite3PDO/TestCreation.php</file>
<file>cases/Db/SQLite3PDO/TestDriver.php</file>
<file>cases/Db/SQLite3PDO/TestUpdate.php</file>
</testsuite>
<testsuite name="Database functions">
<file>cases/Db/SQLite3/Database/TestMiscellany.php</file>
@ -70,15 +70,16 @@
<file>cases/Db/SQLite3/Database/TestLabel.php</file>
<file>cases/Db/SQLite3/Database/TestCleanup.php</file>
<file>cases/Db/SQLite3PDO/Database/TestDatabaseMiscellanySQLite3PDO.php</file>
<file>cases/Db/SQLite3PDO/Database/TestDatabaseUserSQLite3PDO.php</file>
<file>cases/Db/SQLite3PDO/Database/TestDatabaseSessionSQLite3PDO.php</file>
<file>cases/Db/SQLite3PDO/Database/TestDatabaseFolderSQLite3PDO.php</file>
<file>cases/Db/SQLite3PDO/Database/TestDatabaseFeedSQLite3PDO.php</file>
<file>cases/Db/SQLite3PDO/Database/TestDatabaseSubscriptionSQLite3PDO.php</file>
<file>cases/Db/SQLite3PDO/Database/TestDatabaseArticleSQLite3PDO.php</file>
<file>cases/Db/SQLite3PDO/Database/TestDatabaseLabelSQLite3PDO.php</file>
<file>cases/Db/SQLite3PDO/Database/TestDatabaseCleanupSQLite3PDO.php</file>
<file>cases/Db/SQLite3PDO/Database/TestMiscellany.php</file>
<file>cases/Db/SQLite3PDO/Database/TestMeta.php</file>
<file>cases/Db/SQLite3PDO/Database/TestUser.php</file>
<file>cases/Db/SQLite3PDO/Database/TestSession.php</file>
<file>cases/Db/SQLite3PDO/Database/TestFolder.php</file>
<file>cases/Db/SQLite3PDO/Database/TestFeed.php</file>
<file>cases/Db/SQLite3PDO/Database/TestSubscription.php</file>
<file>cases/Db/SQLite3PDO/Database/TestArticle.php</file>
<file>cases/Db/SQLite3PDO/Database/TestLabel.php</file>
<file>cases/Db/SQLite3PDO/Database/TestCleanup.php</file>
</testsuite>
<testsuite name="Controllers">
<testsuite name="NCNv1">

Loading…
Cancel
Save