blob: dec7bd55ef8fa6222b2275083efbeafad2141c9e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
<?php
namespace Guzzle\Tests\Batch;
use Guzzle\Batch\BatchRequestTransfer;
use Guzzle\Http\Client;
use Guzzle\Http\Curl\CurlMulti;
/**
* @covers Guzzle\Batch\BatchRequestTransfer
*/
class BatchRequestTransferTest extends \Guzzle\Tests\GuzzleTestCase
{
public function testCreatesBatchesBasedOnCurlMultiHandles()
{
$client1 = new Client('http://www.example.com');
$client1->setCurlMulti(new CurlMulti());
$client2 = new Client('http://www.example.com');
$client2->setCurlMulti(new CurlMulti());
$request1 = $client1->get();
$request2 = $client2->get();
$request3 = $client1->get();
$request4 = $client2->get();
$request5 = $client1->get();
$queue = new \SplQueue();
$queue[] = $request1;
$queue[] = $request2;
$queue[] = $request3;
$queue[] = $request4;
$queue[] = $request5;
$batch = new BatchRequestTransfer(2);
$this->assertEquals(array(
array($request1, $request3),
array($request3),
array($request2, $request4)
), $batch->createBatches($queue));
}
/**
* @expectedException \Guzzle\Common\Exception\InvalidArgumentException
*/
public function testEnsuresAllItemsAreRequests()
{
$queue = new \SplQueue();
$queue[] = 'foo';
$batch = new BatchRequestTransfer(2);
$batch->createBatches($queue);
}
public function testTransfersBatches()
{
$client = new Client('http://127.0.0.1:123');
$request = $client->get();
// For some reason... PHP unit clones the request, which emits a request.clone event. This causes the
// 'sorted' property of the event dispatcher to contain an array in the cloned request that is not present in
// the original.
$request->dispatch('request.clone');
$multi = $this->getMock('Guzzle\Http\Curl\CurlMultiInterface');
$client->setCurlMulti($multi);
$multi->expects($this->once())
->method('add')
->with($request);
$multi->expects($this->once())
->method('send');
$batch = new BatchRequestTransfer(2);
$batch->transfer(array($request));
}
public function testDoesNotTransfersEmptyBatches()
{
$batch = new BatchRequestTransfer(2);
$batch->transfer(array());
}
}
|