public function testWillSetETagForSomeRoutes($route, $hasETag, $isOk = false, $content = null)
{
$request = $this->getMock('Imbo\\Http\\Request\\Request');
$request->expects($this->once())->method('getRoute')->will($this->returnValue($route));
$response = $this->getMock('Imbo\\Http\\Response\\Response');
if ($hasETag) {
$response->expects($this->once())->method('isOk')->will($this->returnValue($isOk));
if ($isOk) {
$response->expects($this->once())->method('getContent')->will($this->returnValue($content));
$response->expects($this->once())->method('setETag')->with('"' . md5($content) . '"');
}
} else {
$response->expects($this->never())->method('isOk');
}
$event = $this->getMock('Imbo\\EventManager\\Event');
$event->expects($this->once())->method('getRequest')->will($this->returnValue($request));
$event->expects($this->once())->method('getResponse')->will($this->returnValue($response));
$this->listener->setETag($event);
}