Skip to content

Can't use existing entities with DataFactory #4

@CJDennis

Description

@CJDennis

What are you trying to achieve?

According to https://codeception.com/docs/modules/DataFactory.html you can create a new entity which is related to an existing entity. I can't get this functionality to work.

What do you get instead?

  [Doctrine\ORM\ORMInvalidArgumentException] A new entity was found through the relationship 'HMRX\CoreBundle\Entity\AccountHolder#accountRole' that was not configured to cascade persist operations for entity: HMRX\CoreBundle\Entity\AccountRole@000000004c9582ff000000009565e70e. To solve this issue: Either explicitly call EntityManager#persist() on this unknown entity or configure cascade persist  this association in the mapping for example @ManyToOne(..,cascade={"persist"}). If you cannot find out which entity causes the problem implement 'HMRX\CoreBundle\Entity\AccountRole#__toString()' to get a clue.

Provide test source code if related

  public function shouldUseAFakeAccountHolder(AcceptanceTester $I) {
    $I->have(AccountHolder::class);
  }
class Factories extends \Codeception\Module {
  public function _beforeSuite($settings = []) {
    /** @var EntityManager $em */
    $em = $this->getModule('Doctrine2')->_getEntityManager();

    $factory = $this->getModule('DataFactory');

    $factory->_define(AccountHolder::class, [
      'accountRole' => $em->getRepository(AccountRole::class)->findOneBy(['name' => 'ROLE_PHARMACIST']),
    ]);
  }
}

Details

# Codeception Test Suite Configuration
#
# Suite for acceptance tests.
# Perform tests in browser using the WebDriver or PhpBrowser.
# If you need both WebDriver and PHPBrowser tests - create a separate suite.

actor: AcceptanceTester
modules:
  enabled:
    - WebDriver:
        url: 'https://localhost/'
        browser: chrome # 'chrome' or 'firefox'
        capabilities:
          chromeOptions:
            w3c: false
    - \Helper\Acceptance
    - Doctrine2:
        depends: Symfony
    - DataFactory:
        depends: Doctrine2
        factories: tests/_support/Factories
    - \Helper\Factories

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions