public function testVisit()
{
$visitor = $this->getVisitor();
$generator = $this->getGenerator();
$generator->startDocument(null);
$generatedResponse = new Response();
$responseHeaders = array('foo' => 'bar', 'some' => 'thing');
$cookie = new Cookie('cookie_name', 'cookie_value');
$generatedResponse->headers->add($responseHeaders);
$generatedResponse->headers->setCookie($cookie);
$deletedSessionValue = new Values\DeletedUserSession($generatedResponse);
$outputVisitor = $this->getVisitorMock();
$outputVisitor->expects($this->once())->method('setStatus')->with($this->equalTo(204));
$visitor->visit($outputVisitor, $generator, $deletedSessionValue);
$this->assertTrue($generator->isEmpty());
$this->assertSame('bar', $this->getResponseMock()->headers->get('foo'));
$this->assertSame('thing', $this->getResponseMock()->headers->get('some'));
$this->assertSame(array($cookie), $this->getResponseMock()->headers->getCookies());
}