CRUDlexTests\MySQLDataTest::testCreateEvents PHP Method

testCreateEvents() public method

public testCreateEvents ( )
    public function testCreateEvents()
    {
        $beforeCalled = false;
        $beforeEvent = function (Entity $entity) use(&$beforeCalled) {
            $beforeCalled = true;
            return true;
        };
        $this->dataLibrary->pushEvent('before', 'create', $beforeEvent);
        $afterCalled = false;
        $afterEvent = function (Entity $entity) use(&$afterCalled) {
            $afterCalled = true;
            return true;
        };
        $this->dataLibrary->pushEvent('after', 'create', $afterEvent);
        $entity = $this->dataLibrary->createEmpty();
        $entity->set('name', 'name');
        $this->dataLibrary->create($entity);
        $this->assertNotNull($entity->get('id'));
        $this->assertTrue($beforeCalled);
        $this->assertTrue($afterCalled);
        $beforeEvent = function (Entity $entity) {
            return false;
        };
        $this->dataLibrary->pushEvent('before', 'create', $beforeEvent);
        $entity = $this->dataLibrary->createEmpty();
        $entity->set('name', 'name');
        $this->dataLibrary->create($entity);
        $id = $entity->get('id');
        $this->assertNull($id);
        $this->dataLibrary->popEvent('before', 'create');
        $this->dataLibrary->popEvent('before', 'create');
        $this->dataLibrary->popEvent('after', 'create');
    }