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

namespace GuzzleTestsPluginCache;

use 
DoctrineCommonCacheArrayCache;
use 
GuzzleCacheDoctrineCacheAdapter;
use 
GuzzleCommonEvent;
use 
GuzzleHttpMessageRequest;
use 
GuzzleHttpMessageResponse;
use 
GuzzlePluginCacheCachePlugin;
use 
GuzzlePluginCacheCallbackCanCacheStrategy;

/**
 * @covers GuzzlePluginCacheCallbackCanCacheStrategy
 */
class CallbackCanCacheStrategyTest extends GuzzleTestsGuzzleTestCase
{
    
/**
     * @expectedException GuzzleCommonExceptionInvalidArgumentException
     */
    
public function testConstructorEnsuresCallbackIsCallable()
    {
        
$p = new CallbackCanCacheStrategy(new stdClass());
    }

    public function 
testUsesCallback()
    {
        
$c = new CallbackCanCacheStrategy(function ($request) { return true; });
        
$this->assertTrue($c->canCacheRequest(new Request('DELETE''http://www.foo.com')));
    }

    
/**
     * The following is a bit of an integration test to ensure that the CachePlugin honors a
     * custom can cache strategy.
     */
    
public function testIntegrationWithCachePlugin()
    {
        
$c = new CallbackCanCacheStrategy(
            function (
$request) { return true; },
            function (
$response) { return true; }
        );

        
// Make a request and response that have no business being cached
        
$request = new Request('DELETE''http://www.foo.com');
        
$response Response::fromMessage(
            
"HTTP/1.1 200 OKrn"
            
"Expires: Mon, 26 Jul 1997 05:00:00 GMTrn"
            
"Last-Modified: Wed, 09 Jan 2013 08:48:53 GMTrn"
            
"Content-Length: 2rn"
            
"Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0rnrn"
            
"hi"
        
);

        
$this->assertTrue($c->canCacheRequest($request));
        
$this->assertTrue($c->canCacheResponse($response));

        
$s $this->getMockBuilder('GuzzlePluginCacheDefaultCacheStorage')
            ->
setConstructorArgs(array(new DoctrineCacheAdapter(new ArrayCache())))
            ->
setMethods(array('fetch'))
            ->
getMockForAbstractClass();

        
$s->expects($this->once())
            ->
method('fetch')
            ->
will($this->returnValue($response));

        
$plugin = new CachePlugin(array('can_cache' => $c'storage' => $s));
        
$plugin->onRequestBeforeSend(new Event(array('request' => $request)));

        
$this->assertEquals(200$request->getResponse()->getStatusCode());
        
$this->assertEquals('hi'$request->getResponse()->getBody(true));
    }
}
Онлайн: 0
Реклама