Example #1
0
    public function testOnKernelResponsePost()
    {
        $tag = new Tag(array('value' => array('item-1', 'item-2')));

        $request = new Request();
        $request->setMethod('POST');
        $request->attributes->set('id', 2);
        $request->attributes->set('_tag', array($tag));

        $event = $this->getEvent($request);

        $this->cacheManager
            ->shouldReceive('invalidateTags')
            ->once()
            ->with(array('item-1', 'item-2'));
        $this->listener->onKernelResponse($event);

        $this->cacheManager
            ->shouldReceive('invalidateTags')
            ->once()
            ->with(array('item-1', 'item-2', 'configured-tag', 'item-2'));
        $mockMatcher = \Mockery::mock('FOS\HttpCacheBundle\Http\RuleMatcherInterface')
            ->shouldReceive('matches')->once()->with($request, $event->getResponse())->andReturn(true)
            ->getMock()
        ;
        $this->listener->addRule($mockMatcher, array(
            'tags' => array('configured-tag'),
            'expressions' => array('"item-" ~ id'),
        ));
        $this->listener->onKernelResponse($event);
    }