ControllerProviderTest::testDeleteFile PHP Метод

testDeleteFile() публичный Метод

public testDeleteFile ( )
    public function testDeleteFile()
    {
        $client = $this->createClient();
        $crawler = $client->request('POST', '/crud/foo/1/cover/delete');
        $this->assertTrue($client->getResponse()->isNotFound());
        $this->assertCount(1, $crawler->filter('html:contains("Entity not found")'));
        $crawler = $client->request('POST', '/crud/book/666/cover/delete');
        $this->assertTrue($client->getResponse()->isNotFound());
        $this->assertCount(1, $crawler->filter('html:contains("Instance not found")'));
        $library = $this->dataLibrary->createEmpty();
        $library->set('name', 'lib a');
        $this->dataLibrary->create($library);
        $file = __DIR__ . '/../test1.xml';
        $client->request('POST', '/crud/book/create', ['title' => 'title', 'author' => 'author', 'pages' => 111, 'price' => 3.99, 'library' => $library->get('id')], ['cover' => new UploadedFile($file, 'test1.xml', 'application/xml', filesize($file), null, true)]);
        $client->request('POST', '/crud/book/1/cover/delete');
        $this->assertTrue($client->getResponse()->isRedirect('/crud/book/1'));
        $crawler = $client->followRedirect();
        $this->assertTrue($client->getResponse()->isOk());
        $this->assertCount(1, $crawler->filter('html:contains("File could not be deleted.")'));
        $this->dataBook->getDefinition()->setField('cover', 'required', false);
        // Canceling events
        $before = function (Entity $entity) {
            return false;
        };
        $this->dataBook->pushEvent('before', 'deleteFile', $before);
        $client->request('POST', '/crud/book/1/cover/delete');
        $this->assertTrue($client->getResponse()->isRedirect('/crud/book/1'));
        $crawler = $client->followRedirect();
        $this->assertTrue($client->getResponse()->isOk());
        $this->assertCount(1, $crawler->filter('html:contains("File could not be deleted.")'));
        $this->dataBook->popEvent('before', 'deleteFile');
        // Sucessful deletion
        $client->request('POST', '/crud/book/1/cover/delete');
        $this->assertTrue($client->getResponse()->isRedirect('/crud/book/1'));
        $crawler = $client->followRedirect();
        $this->assertTrue($client->getResponse()->isOk());
        $this->assertCount(1, $crawler->filter('html:contains("File deleted.")'));
        $this->fileProcessorHandle->createFile->once()->called();
        $this->fileProcessorHandle->updateFile->never()->called();
        $this->fileProcessorHandle->deleteFile->once()->called();
        $this->fileProcessorHandle->renderFile->never()->called();
    }