/** * @return Attachment */ public static function create() { $fileFactory = new FileFactory(); $file = $fileFactory->create(); $attachment = new TestAttachment(); $attachment->setFile($file)->setDescription('This is a test description.'); return $attachment; }
/** * Test if entity persistence and removal is handled correctly. * Tests also that associated physical file exists/is removed. */ public function testPersistenceAndRemoval() { $container = static::$kernel->getContainer(); $filesystem = new Filesystem(); $repoFile = $this->em->getRepository('ReskumeFileBundle:File'); $fileFactory = new FileFactory(); $file = $fileFactory->create(); // test only one entry in database table $this->em->persist($file); $this->em->flush(); $result = $repoFile->findAll(); $this->assertCount(1, $result); // @important clear em and refetch entity to suppress foreign key mapping errors $this->em->clear(); $result = $repoFile->findAll(); $result = $result[0]; // check that associated file exists $fileStorageConfig = $container->get('reskume_file.configuration.file_storage_configuration'); $filePath = sprintf('%s%s', $fileStorageConfig->getFileDir(), $result->getKey()); $this->assertTrue($filesystem->exists($filePath)); // test correct removal $this->em->remove($result); $this->em->flush(); $result = $repoFile->findAll(); $this->assertEmpty($result); // test that associated file is deleted from filesystem $this->assertFalse($filesystem->exists($filePath)); }