Вход Регистрация
Файл: vkolhoze.com/vendor/guzzle/guzzle/tests/Guzzle/Tests/Batch/BatchRequestTransferTest.php
Строк: 78
<?php

namespace GuzzleTestsBatch;

use 
GuzzleBatchBatchRequestTransfer;
use 
GuzzleHttpClient;
use 
GuzzleHttpCurlCurlMulti;

/**
 * @covers GuzzleBatchBatchRequestTransfer
 */
class BatchRequestTransferTest extends GuzzleTestsGuzzleTestCase
{
    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 GuzzleCommonExceptionInvalidArgumentException
     */
    
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('GuzzleHttpCurlCurlMultiInterface');
        
$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());
    }
}
Онлайн: 1
Реклама