Skip to content

Commit 8cdae8d

Browse files
committed
:octocat: phpunit 8
1 parent be0e85c commit 8cdae8d

File tree

4 files changed

+99
-76
lines changed

4 files changed

+99
-76
lines changed

.gitignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,6 @@ composer.lock
22
vendor
33
.idea
44
.vagrant
5-
config/.env
5+
config/.env
6+
storage
7+
*.phpunit.result.cache

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
"chillerlan/php-dotenv": "^1.0",
3232
"chillerlan/php-cache": "^3.0",
3333
"chillerlan/php-log": "^3.0",
34-
"phpunit/phpunit": "^7.5"
34+
"phpunit/phpunit": "^8.2"
3535
},
3636
"autoload": {
3737
"psr-4": {

tests/DatabaseTest.php

Lines changed: 94 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,12 @@
1212

1313
namespace chillerlan\DatabaseTest;
1414

15-
use chillerlan\Database\{
16-
Database, DatabaseOptions
17-
};
15+
use chillerlan\Database\{Database, DatabaseOptions, Query\QueryException};
1816
use chillerlan\Database\Dialects\{
1917
Dialect, Firebird, MSSQL, MySQL, Postgres, SQLite
2018
};
2119
use chillerlan\Database\Drivers\{
22-
DriverInterface, FirebirdPDO, MSSqlSrv, MSSqlSrvPDO, MySQLiDrv, MySQLPDO, PostgreSQL, PostgreSQLPDO, SQLitePDO
20+
DriverException, DriverInterface, FirebirdPDO, MSSqlSrv, MSSqlSrvPDO, MySQLiDrv, MySQLPDO, PostgreSQL, PostgreSQLPDO, SQLitePDO
2321
};
2422
use chillerlan\Database\Query\QueryBuilder;
2523
use chillerlan\DotEnv\DotEnv;
@@ -98,7 +96,7 @@ class DatabaseTest extends TestCase{
9896
/**
9997
*
10098
*/
101-
protected function setUp(){
99+
protected function setUp():void{
102100
$this->env = (new DotEnv(__DIR__.'/../config', file_exists(__DIR__.'/../config/.env') ? '.env' : '.env_travis'))->load();
103101

104102
$this->isCI = $this->env->get('IS_CI') === 'TRUE';
@@ -128,7 +126,7 @@ protected function __log(string $level, string $message, array $context = null):
128126
/**
129127
*
130128
*/
131-
protected function tearDown(){
129+
protected function tearDown():void{
132130

133131
if(isset($this->db) && $this->db instanceof Database){
134132
$this->assertTrue($this->db->disconnect());
@@ -592,240 +590,263 @@ public function testShowCreateTable(string $driver, string $env_prefix, bool $sk
592590
// exceptions galore!
593591

594592
/**
595-
* @dataProvider driverProvider
596-
* @expectedException \chillerlan\Database\Drivers\DriverException
597-
* @expectedExceptionMessage db error:
593+
* @dataProvider driverProvider
598594
*/
599595
public function testConnectError(string $driver, string $env_prefix, bool $skip_on_ci){
596+
$this->expectException(DriverException::class);
597+
$this->expectExceptionMessage('db error:');
598+
600599
$this->dbInstance($driver, $env_prefix, $skip_on_ci, ['host' => '...', 'database' => '...']);
601600
}
602601

603602
/**
604-
* @dataProvider driverProvider
605-
* @expectedException \chillerlan\Database\Query\QueryException
606-
* @expectedExceptionMessage invalid statement
603+
* @dataProvider driverProvider
607604
*/
608605
public function testInvalidStatement(string $driver, string $env_prefix, bool $skip_on_ci){
606+
$this->expectException(QueryException::class);
607+
$this->expectExceptionMessage('invalid statement');
608+
609609
$this->dbInstance($driver, $env_prefix, $skip_on_ci);
610610
$this->db->foo;
611611
}
612612

613613
/**
614-
* @dataProvider driverProvider
615-
* @expectedException \chillerlan\Database\Query\QueryException
616-
* @expectedExceptionMessage no name specified
614+
* @dataProvider driverProvider
617615
*/
618616
public function testCreateDatabaseNoName(string $driver, string $env_prefix, bool $skip_on_ci){
617+
$this->expectException(QueryException::class);
618+
$this->expectExceptionMessage('no name specified');
619+
619620
$this->dbInstance($driver, $env_prefix, $skip_on_ci);
620621
$this->db->create->database('')->sql();
621622
}
622623

623624
/**
624-
* @dataProvider driverProvider
625-
* @expectedException \chillerlan\Database\Query\QueryException
626-
* @expectedExceptionMessage no name specified
625+
* @dataProvider driverProvider
627626
*/
628627
public function testCreateTableNoName(string $driver, string $env_prefix, bool $skip_on_ci){
628+
$this->expectException(QueryException::class);
629+
$this->expectExceptionMessage('no name specified');
630+
629631
$this->dbInstance($driver, $env_prefix, $skip_on_ci);
630632
$this->db->create->table('')->sql();
631633
}
632634

633635
/**
634636
* @dataProvider driverProvider
635-
* @expectedException \chillerlan\Database\Query\QueryException
636-
* @expectedExceptionMessage no name specified
637637
*/
638638
public function testDropDatabaseNoName(string $driver, string $env_prefix, bool $skip_on_ci){
639+
$this->expectException(QueryException::class);
640+
$this->expectExceptionMessage('no name specified');
641+
639642
$this->dbInstance($driver, $env_prefix, $skip_on_ci);
640643
$this->db->drop->database('')->sql();
641644
}
642645

643646
/**
644647
* @dataProvider driverProvider
645-
* @expectedException \chillerlan\Database\Query\QueryException
646-
* @expectedExceptionMessage no name specified
647648
*/
648649
public function testDropTableNoName(string $driver, string $env_prefix, bool $skip_on_ci){
650+
$this->expectException(QueryException::class);
651+
$this->expectExceptionMessage('no name specified');
652+
649653
$this->dbInstance($driver, $env_prefix, $skip_on_ci);
650654
$this->db->drop->table('')->sql();
651655
}
652656

653657
/**
654-
* @dataProvider driverProvider
655-
* @expectedException \chillerlan\Database\Query\QueryException
656-
* @expectedExceptionMessage no name specified
658+
* @dataProvider driverProvider
657659
*/
658660
public function testInsertNoTable(string $driver, string $env_prefix, bool $skip_on_ci){
661+
$this->expectException(QueryException::class);
662+
$this->expectExceptionMessage('no name specified');
663+
659664
$this->dbInstance($driver, $env_prefix, $skip_on_ci);
660665
$this->db->insert->into('')->sql();
661666
}
662667

663668
/**
664-
* @dataProvider driverProvider
665-
* @expectedException \chillerlan\Database\Query\QueryException
666-
* @expectedExceptionMessage no values given
669+
* @dataProvider driverProvider
667670
*/
668671
public function testInsertInvalidData(string $driver, string $env_prefix, bool $skip_on_ci){
672+
$this->expectException(QueryException::class);
673+
$this->expectExceptionMessage('no values given');
674+
669675
$this->dbInstance($driver, $env_prefix, $skip_on_ci);
670676
$this->db->insert->into('foo')->values([])->sql();
671677
}
672678

673679
/**
674-
* @dataProvider driverProvider
675-
* @expectedException \chillerlan\Database\Query\QueryException
676-
* @expectedExceptionMessage no FROM expression specified
680+
* @dataProvider driverProvider
677681
*/
678682
public function testSelectEmptyFrom(string $driver, string $env_prefix, bool $skip_on_ci){
683+
$this->expectException(QueryException::class);
684+
$this->expectExceptionMessage('no FROM expression specified');
685+
679686
$this->dbInstance($driver, $env_prefix, $skip_on_ci);
680687
$this->db->select->from([])->sql();
681688
}
682689

683690
/**
684-
* @dataProvider driverProvider
685-
* @expectedException \chillerlan\Database\Query\QueryException
686-
* @expectedExceptionMessage no name specified
691+
* @dataProvider driverProvider
687692
*/
688693
public function testUpdateNoTable(string $driver, string $env_prefix, bool $skip_on_ci){
694+
$this->expectException(QueryException::class);
695+
$this->expectExceptionMessage('no name specified');
696+
689697
$this->dbInstance($driver, $env_prefix, $skip_on_ci);
690698
$this->db->update->table('')->sql();
691699
}
692700

693701
/**
694-
* @dataProvider driverProvider
695-
* @expectedException \chillerlan\Database\Query\QueryException
696-
* @expectedExceptionMessage no fields to update specified
702+
* @dataProvider driverProvider
697703
*/
698704
public function testUpdateNoSet(string $driver, string $env_prefix, bool $skip_on_ci){
705+
$this->expectException(QueryException::class);
706+
$this->expectExceptionMessage('no fields to update specified');
707+
699708
$this->dbInstance($driver, $env_prefix, $skip_on_ci);
700709
$this->db->update->table('foo')->set([])->sql();
701710
}
702711

703712
/**
704-
* @dataProvider driverProvider
705-
* @expectedException \chillerlan\Database\Query\QueryException
706-
* @expectedExceptionMessage no name specified
713+
* @dataProvider driverProvider
707714
*/
708715
public function testDeleteNoTable(string $driver, string $env_prefix, bool $skip_on_ci){
716+
$this->expectException(QueryException::class);
717+
$this->expectExceptionMessage('no name specified');
718+
709719
$this->dbInstance($driver, $env_prefix, $skip_on_ci);
710720
$this->db->delete->from('')->sql();
711721
}
712722

713723
/**
714-
* @dataProvider driverProvider
715-
* @expectedException \chillerlan\Database\Drivers\DriverException
716-
* @expectedExceptionMessage sql error: empty sql
724+
* @dataProvider driverProvider
717725
*/
718726
public function testRawEmptySQL(string $driver, string $env_prefix, bool $skip_on_ci){
727+
$this->expectException(DriverException::class);
728+
$this->expectExceptionMessage('sql error: empty sql');
729+
719730
$this->dbInstance($driver, $env_prefix, $skip_on_ci);
720731

721732
$this->db->raw('');
722733
}
723734

724735
/**
725-
* @dataProvider driverProvider
726-
* @expectedException \chillerlan\Database\Drivers\DriverException
727-
* @expectedExceptionMessage sql error:
736+
* @dataProvider driverProvider
728737
*/
729738
public function testRawSQLError(string $driver, string $env_prefix, bool $skip_on_ci){
739+
$this->expectException(DriverException::class);
740+
$this->expectExceptionMessage('sql error:');
741+
730742
$this->dbInstance($driver, $env_prefix, $skip_on_ci);
731743

732744
$this->db->raw('SELECT foo bar');
733745
}
734746

735747
/**
736-
* @dataProvider driverProvider
737-
* @expectedException \chillerlan\Database\Drivers\DriverException
738-
* @expectedExceptionMessage sql error: empty sql
748+
* @dataProvider driverProvider
739749
*/
740750
public function testPreparedEmptySQL(string $driver, string $env_prefix, bool $skip_on_ci){
751+
$this->expectException(DriverException::class);
752+
$this->expectExceptionMessage('sql error: empty sql');
753+
741754
$this->dbInstance($driver, $env_prefix, $skip_on_ci);
742755

743756
$this->db->prepared('');
744757
}
745758

746759
/**
747-
* @dataProvider driverProvider
748-
* @expectedException \chillerlan\Database\Drivers\DriverException
749-
* @expectedExceptionMessage sql error:
760+
* @dataProvider driverProvider
750761
*/
751762
public function testPreparedSQLError(string $driver, string $env_prefix, bool $skip_on_ci){
763+
$this->expectException(DriverException::class);
764+
$this->expectExceptionMessage('sql error:');
765+
752766
$this->dbInstance($driver, $env_prefix, $skip_on_ci);
753767

754768
$this->db->prepared('SELECT foo bar ???');
755769
}
756770

757771
/**
758-
* @dataProvider driverProvider
759-
* @expectedException \chillerlan\Database\Drivers\DriverException
760-
* @expectedExceptionMessage sql error: empty sql
772+
* @dataProvider driverProvider
761773
*/
762774
public function testMultiEmptySQL(string $driver, string $env_prefix, bool $skip_on_ci){
775+
$this->expectException(DriverException::class);
776+
$this->expectExceptionMessage('sql error: empty sql');
777+
763778
$this->dbInstance($driver, $env_prefix, $skip_on_ci);
764779

765780
$this->db->multi('', []);
766781
}
767782

768783
/**
769-
* @dataProvider driverProvider
770-
* @expectedException \chillerlan\Database\Drivers\DriverException
771-
* @expectedExceptionMessage sql error:
784+
* @dataProvider driverProvider
772785
*/
773786
public function testMultiSQLError(string $driver, string $env_prefix, bool $skip_on_ci){
787+
$this->expectException(DriverException::class);
788+
$this->expectExceptionMessage('sql error:');
789+
774790
$this->dbInstance($driver, $env_prefix, $skip_on_ci);
775791

776792
$this->db->multi('UPDATE foo bar ???', [[0]]);
777793
}
778794

779795
/**
780-
* @dataProvider driverProvider
781-
* @expectedException \chillerlan\Database\Drivers\DriverException
782-
* @expectedExceptionMessage invalid data
796+
* @dataProvider driverProvider
783797
*/
784798
public function testMultiInvalidData(string $driver, string $env_prefix, bool $skip_on_ci){
799+
$this->expectException(DriverException::class);
800+
$this->expectExceptionMessage('invalid data');
801+
785802
$this->dbInstance($driver, $env_prefix, $skip_on_ci);
786803

787804
$this->db->multi('UPDATE foo bar ???', []);
788805
}
789806

790807
/**
791-
* @dataProvider driverProvider
792-
* @expectedException \chillerlan\Database\Drivers\DriverException
793-
* @expectedExceptionMessage sql error: empty sql
808+
* @dataProvider driverProvider
794809
*/
795810
public function testMultiCallbackEmptySQL(string $driver, string $env_prefix, bool $skip_on_ci){
811+
$this->expectException(DriverException::class);
812+
$this->expectExceptionMessage('sql error: empty sql');
813+
796814
$this->dbInstance($driver, $env_prefix, $skip_on_ci);
797815

798816
$this->db->multiCallback('', [], function(){});
799817
}
800818

801819
/**
802-
* @dataProvider driverProvider
803-
* @expectedException \chillerlan\Database\Drivers\DriverException
804-
* @expectedExceptionMessage invalid callback
820+
* @dataProvider driverProvider
805821
*/
806822
public function testMultiCallbackInvalidCallback(string $driver, string $env_prefix, bool $skip_on_ci){
823+
$this->expectException(DriverException::class);
824+
$this->expectExceptionMessage('invalid callback');
825+
807826
$this->dbInstance($driver, $env_prefix, $skip_on_ci);
808827

809828
$this->db->multiCallback('UPDATE foo bar ???', [[0]], [$this, 'foo']);
810829
}
811830

812831
/**
813-
* @dataProvider driverProvider
814-
* @expectedException \chillerlan\Database\Drivers\DriverException
815-
* @expectedExceptionMessage sql error:
832+
* @dataProvider driverProvider
816833
*/
817834
public function testMultiCallbackSQLError(string $driver, string $env_prefix, bool $skip_on_ci){
835+
$this->expectException(DriverException::class);
836+
$this->expectExceptionMessage('sql error:');
837+
818838
$this->dbInstance($driver, $env_prefix, $skip_on_ci);
819839

820840
$this->db->multiCallback('UPDATE foo bar ???', [[0]], function($r){ return $r; });
821841
}
822842

823843
/**
824-
* @dataProvider driverProvider
825-
* @expectedException \chillerlan\Database\Drivers\DriverException
826-
* @expectedExceptionMessage invalid data
844+
* @dataProvider driverProvider
827845
*/
828846
public function testMultiCallbackInvalidData(string $driver, string $env_prefix, bool $skip_on_ci){
847+
$this->expectException(DriverException::class);
848+
$this->expectExceptionMessage('invalid data');
849+
829850
$this->dbInstance($driver, $env_prefix, $skip_on_ci);
830851

831852
$this->db->multiCallback('UPDATE foo bar ???', [], function($r){ return $r; });

tests/ResultTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ class ResultTest extends TestCase{
2525
*/
2626
protected $result;
2727

28-
protected function setUp(){
28+
protected function setUp():void{
2929
$this->result = new Result;
3030

3131
foreach(range(0, 9) as $k){

0 commit comments

Comments
 (0)