4267e3650308c63fa0e5623aa97ee5e6630f7a56
[m6w6/ext-http] / tests / factory.phpt
1 --TEST--
2 factory
3 --SKIPIF--
4 <?php
5 include "skipif.inc";
6 in_array("curl", http\Client\Factory::getAvailableDrivers()) or die ("skip CURL support missing");
7 ?>
8 --FILE--
9 <?php
10 echo "Test\n";
11
12 class MyClient extends http\Curl\Client {}
13 class MyPool extends http\Curl\Client\Pool {}
14 class MyShare extends http\Curl\Client\DataShare {}
15
16 class MyFactory extends http\Client\Factory {
17 protected $driver = "curl";
18 protected $persistentHandleId = "My";
19 protected $clientClass = "MyClient";
20 protected $clientPoolClass = "MyPool";
21 protected $clientDataShareClass = "MyShare";
22
23 protected $dummy = "foo";
24 }
25
26 $f = new MyFactory(array("driver" => "curl"));
27 $r = $f->createClient();
28 $p = $f->createPool();
29 $s = $f->createDataShare();
30
31 var_dump(
32 array_map("get_class", array($f,$r,$p,$s)),
33 $f->getDriver()
34 );
35
36 foreach (array("Client", "Pool", "DataShare") as $type) {
37 try {
38 var_dump((new http\Client\Factory(array("driver" => "nonexistant")))->{"create$type"}());
39 } catch (Exception $e) {
40 echo $e->getMessage(), "\n";
41 }
42 }
43
44 echo "Done\n";
45 ?>
46 --EXPECTF--
47 Test
48 array(4) {
49 [0]=>
50 string(9) "MyFactory"
51 [1]=>
52 string(8) "MyClient"
53 [2]=>
54 string(6) "MyPool"
55 [3]=>
56 string(7) "MyShare"
57 }
58 string(4) "curl"
59 clients are not supported by this driver
60 pools are not supported by this driver
61 datashares are not supported by this driver
62 Done