CRUDlexTests\MySQLDataTest::testDelete PHP Method

testDelete() public method

public testDelete ( )
    public function testDelete()
    {
        $entity = $this->dataLibrary->createEmpty();
        $entity->set('name', 'nameDelete');
        $this->dataLibrary->create($entity);
        $deleted = $this->dataLibrary->delete($entity);
        $read = $this->dataLibrary->get($entity->get('id'));
        $expected = AbstractData::DELETION_SUCCESS;
        $this->assertSame($deleted, $expected);
        $this->assertNull($read);
        $entityLibrary = $this->dataLibrary->createEmpty();
        $entityLibrary->set('name', 'nameParentTestDelete');
        $this->dataLibrary->create($entityLibrary);
        $entityBook = $this->dataBook->createEmpty();
        $entityBook->set('title', 'title');
        $entityBook->set('author', 'author');
        $entityBook->set('pages', 111);
        $entityBook->set('library', $entityLibrary->get('id'));
        $this->dataBook->create($entityBook);
        $this->dataLibrary->getDefinition()->setDeleteCascade(false);
        $deleted = $this->dataLibrary->delete($entityLibrary);
        $expected = AbstractData::DELETION_FAILED_STILL_REFERENCED;
        $this->assertSame($deleted, $expected);
        $deleted = $this->dataBook->delete($entityBook);
        $expected = AbstractData::DELETION_SUCCESS;
        $this->assertSame($deleted, $expected);
        $deleted = $this->dataLibrary->delete($entityLibrary);
        $expected = AbstractData::DELETION_SUCCESS;
        $this->assertSame($deleted, $expected);
        $this->dataLibrary->getDefinition()->setDeleteCascade(true);
        $entityLibrary = $this->dataLibrary->createEmpty();
        $entityLibrary->set('name', 'nameParentTestDelete');
        $this->dataLibrary->create($entityLibrary);
        $entityBook = $this->dataBook->createEmpty();
        $entityBook->set('title', 'title');
        $entityBook->set('author', 'author');
        $entityBook->set('pages', 111);
        $entityBook->set('library', $entityLibrary->get('id'));
        $this->dataBook->create($entityBook);
        $deleted = $this->dataLibrary->delete($entityLibrary);
        $expected = AbstractData::DELETION_SUCCESS;
        $this->assertSame($deleted, $expected);
        $entityBook2 = $this->dataBook->get($entityBook->get('id'));
        $this->assertNull($entityBook2);
    }