public function testWriteAssetIfNotUpdated()
{
$this->configuration->setBuildOnRequest(true);
$this->configuration->setWriteIfChanged(true);
$this->object->build();
$manager = $this->object->getAssetManager();
$assets = $manager->get('base_css')->all();
/** @var \Assetic\Asset\AssetInterface $asset */
$asset = $assets[0];
$asset->setTargetPath($manager->get('base_css')->getTargetPath());
$targetFile = $this->configuration->getWebPath($asset->getTargetPath());
if (is_file($targetFile)) {
unlink($targetFile);
}
$this->assertFileNotExists($targetFile);
$this->object->writeAsset($asset);
$this->assertFileExists($targetFile);
$sourceFile = $asset->getSourceRoot() . '/' . $asset->getSourcePath();
$targetMTime = filemtime($targetFile);
sleep(2);
$modifiedAsset = new FileAsset($sourceFile);
$modifiedAsset->setTargetPath($targetFile);
$this->object->writeAsset($modifiedAsset);
clearstatcache(true, $targetFile);
$targetMTimeNotModified = filemtime($targetFile);
$this->assertLessThanOrEqual($targetMTime, $targetMTimeNotModified);
}