File tree 7 files changed +102
-1
lines changed
7 files changed +102
-1
lines changed Original file line number Diff line number Diff line change 6
6
"psr-4" : {
7
7
"App\\ " : " ./src" ,
8
8
"Properties\\ " : " ./src/Properties" ,
9
- "LateStatic\\ " : " ./src/LateStatic"
9
+ "LateStatic\\ " : " ./src/LateStatic" ,
10
+ "Db\\ " : " ./src/Database"
10
11
}
11
12
}
12
13
}
Original file line number Diff line number Diff line change
1
+ <?php
2
+
3
+ namespace Db ;
4
+ use Db \Drivers \DatabaseDriver ;
5
+
6
+
7
+ class Connection
8
+ {
9
+ private $ driver ;
10
+
11
+ /**
12
+ * Connection constructor.
13
+ */
14
+ public function __construct (DatabaseDriver $ driver )
15
+ {
16
+ $ this ->driver = $ driver ;
17
+ }
18
+
19
+ public function getDriver ()
20
+ {
21
+ return $ this ->driver ->getName ();
22
+ }
23
+
24
+ }
Original file line number Diff line number Diff line change
1
+ <?php
2
+
3
+ namespace Db \Drivers ;
4
+
5
+
6
+ abstract class DatabaseDriver
7
+ {
8
+ final public function getName ()
9
+ {
10
+ //TODO
11
+ }
12
+ }
Original file line number Diff line number Diff line change
1
+ <?php
2
+
3
+ namespace Db \Drivers ;
4
+
5
+ class MySql
6
+ {
7
+
8
+ }
Original file line number Diff line number Diff line change
1
+ <?php
2
+
3
+ namespace Db \Drivers ;
4
+
5
+ class Oracle
6
+ {
7
+
8
+ }
Original file line number Diff line number Diff line change
1
+ <?php
2
+
3
+ namespace Db ;
4
+
5
+ use Db \Drivers \DatabaseDriver ;
6
+
7
+ class PersistentConnection extends Connection
8
+ {
9
+
10
+ public function __construct (DatabaseDriver $ driver )
11
+ {
12
+ $ this ->type = 'Persistent ' ;
13
+ }
14
+
15
+ }
Original file line number Diff line number Diff line change
1
+ <?php
2
+
3
+ use PHPUnit \Framework \TestCase ;
4
+ use Db \Connection ;
5
+ use Db \PersistentConnection ;
6
+ use Db \Drivers \MySql ;
7
+ use Db \Drivers \Oracle ;
8
+
9
+ class ConnectionTest extends TestCase
10
+ {
11
+ public function test_if_mysql_connection_is_established ()
12
+ {
13
+ $ connection = new Connection (new MySql );
14
+ $ driver = $ connection ->getDriver ();
15
+ $ this ->assertEquals ('Connected to: Db\Drivers\MySql ' , $ driver );
16
+ }
17
+
18
+ public function test_if_oracle_connection_is_established ()
19
+ {
20
+ $ connection = new Connection (new Oracle );
21
+ $ driver = $ connection ->getDriver ();
22
+ $ this ->assertEquals ('Connected to: Db\Drivers\Oracle ' , $ driver );
23
+ }
24
+
25
+ public function test_if_child_connection_works ()
26
+ {
27
+ $ connection = new PersistentConnection (new MySql );
28
+ $ driver = $ connection ->getDriver ();
29
+ $ this ->assertEquals ('Connected to: Db\Drivers\MySql ' , $ driver );
30
+ $ this ->assertEquals ('Persistent ' , $ connection ->getType ());
31
+ }
32
+
33
+ }
You can’t perform that action at this time.
0 commit comments