/**
  * afterDelete method
  *
  * Remove images from records which have been deleted, if they exist
  *
  * @param Event $event The passed event
  * @param Entity $entity The entity
  * @param ArrayObject $options Array of options
  * @param ProfferPathInterface $path Inject and instance of ProfferPath
  * @return bool
  */
 public function afterDelete(Event $event, Entity $entity, ArrayObject $options, ProfferPathInterface $path = null)
 {
     foreach ($this->config() as $field => $settings) {
         $dir = $entity->get($settings['dir']);
         if (!empty($entity) && !empty($dir)) {
             if (!$path) {
                 $path = new ProfferPath($this->_table, $entity, $field, $settings);
             }
             $path->deleteFiles($path->getFolder(), true);
         }
         $path = null;
     }
     return true;
 }
 public function testDeleteFiles()
 {
     $table = $this->getMockBuilder('Cake\\ORM\\Table')->setMethods(['alias'])->getMock();
     $table->method('alias')->willReturn('ProfferTest');
     $entity = new Entity(['photo' => 'image_640x480.jpg', 'photo_dir' => 'proffer_test']);
     $settings = ['root' => TMP . 'ProfferTests', 'dir' => 'photo_dir', 'thumbnailSizes' => ['square' => ['w' => 100, 'h' => 100], 'squareCrop' => ['w' => 100, 'h' => 100, 'crop' => true]]];
     $path = $this->getMockBuilder('Proffer\\Lib\\ProfferPath')->setConstructorArgs([$table, $entity, 'photo', $settings])->setMethods(['getFolder'])->getMock();
     $path->expects($this->any())->method('getFolder')->willReturn(TMP . 'ProfferTests' . DS . $table->alias() . DS . 'photo' . DS . 'proffer_test' . DS);
     $path = new ProfferPath($table, $entity, 'photo', $settings);
     if (!file_exists($path->getFolder())) {
         mkdir($path->getFolder(), 0777, true);
     }
     copy(Plugin::path('Proffer') . 'tests' . DS . 'Fixture' . DS . 'image_640x480.jpg', $path->getFolder() . 'image_640x480.jpg');
     copy(Plugin::path('Proffer') . 'tests' . DS . 'Fixture' . DS . 'image_640x480.jpg', $path->getFolder() . 'square_image_640x480.jpg');
     copy(Plugin::path('Proffer') . 'tests' . DS . 'Fixture' . DS . 'image_640x480.jpg', $path->getFolder() . 'portrait_image_640x480.jpg');
     $path->deleteFiles($path->getFolder());
     $this->assertFileNotExists($path->getFolder() . 'image_640x480.jpg');
     $this->assertFileNotExists($path->getFolder() . 'square_image_640x480.jpg');
     $this->assertFileNotExists($path->getFolder() . 'portrait_image_640x480.jpg');
     $path->deleteFiles($path->getFolder(), true);
     $this->assertFileNotExists($path->getFolder());
 }