Code
Explorer
You are a developer and looking for Shopware projects?
Apply Now!
SchemaTool example
private
EntityManager
$em
;
private
MockObject&ManagerRegistry
$emRegistry
;
protected
function
setUp
(
)
: void
{
$this
->em = DoctrineTestHelper::
createTestEntityManager
(
)
;
$this
->emRegistry =
$this
->
createRegistryMock
(
'default',
$this
->em
)
;
parent::
setUp
(
)
;
$schemaTool
=
new
SchemaTool
(
$this
->em
)
;
$classes
=
[
$this
->em->
getClassMetadata
(
self::ITEM_GROUP_CLASS
)
,
$this
->em->
getClassMetadata
(
self::SINGLE_IDENT_CLASS
)
,
$this
->em->
getClassMetadata
(
self::SINGLE_IDENT_NO_TO_STRING_CLASS
)
,
$this
->em->
getClassMetadata
(
self::SINGLE_STRING_IDENT_CLASS
)
,
$this
->em->
getClassMetadata
(
self::SINGLE_ASSOC_IDENT_CLASS
)
,
$this
->em->
getClassMetadata
(
self::SINGLE_STRING_CASTABLE_IDENT_CLASS
)
,
$this
->em->
getClassMetadata
(
self::COMPOSITE_IDENT_CLASS
)
,
$this
->em->
getClassMetadata
(
self::COMPOSITE_STRING_IDENT_CLASS
)
,
]
;
->
onlyMethods
(
[
'getClassMetadata', 'getRepository'
]
)
->
getMockForAbstractClass
(
)
;
$em
->
expects
(
$this
->
any
(
)
)
->
method
(
'getRepository'
)
->
willReturn
(
$repository
)
;
return
$em
;
}
private
function
createSchema
(
$em
)
{
$schemaTool
=
new
SchemaTool
(
$em
)
;
$schemaTool
->
createSchema
(
[
$em
->
getClassMetadata
(
'Symfony\Bridge\Doctrine\Tests\Fixtures\User'
)
,
]
)
;
}
}
abstract
class
UserLoaderRepository
implements
ObjectRepository, UserLoaderInterface
{
abstract
public
function
loadUserByIdentifier
(
string
$identifier
)
: ?UserInterface;
}
new
CoreExtension
(
)
,
new
DoctrineOrmExtension
(
$manager
)
,
]
;
}
protected
function
setUp
(
)
: void
{
$this
->em = DoctrineTestHelper::
createTestEntityManager
(
)
;
parent::
setUp
(
)
;
$schemaTool
=
new
SchemaTool
(
$this
->em
)
;
$classes
=
[
$this
->em->
getClassMetadata
(
self::ENTITY_CLASS
)
,
]
;
try
{
$schemaTool
->
dropSchema
(
$classes
)
;
}
catch
(
\Exception
$e
)
{
}
try
{
$schemaTool
->
createSchema
(
$classes
)
;
}
return
$em
;
}
protected
function
createValidator
(
)
: UniqueEntityValidator
{
return
new
UniqueEntityValidator
(
$this
->registry
)
;
}
private
function
createSchema
(
$em
)
{
$schemaTool
=
new
SchemaTool
(
$em
)
;
$schemaTool
->
createSchema
(
[
$em
->
getClassMetadata
(
SingleIntIdEntity::
class
)
,
$em
->
getClassMetadata
(
SingleIntIdNoToStringEntity::
class
)
,
$em
->
getClassMetadata
(
DoubleNameEntity::
class
)
,
$em
->
getClassMetadata
(
DoubleNullableNameEntity::
class
)
,
$em
->
getClassMetadata
(
CompositeIntIdEntity::
class
)
,
$em
->
getClassMetadata
(
AssociationEntity::
class
)
,
$em
->
getClassMetadata
(
AssociationEntity2::
class
)
,
$em
->
getClassMetadata
(
Person::
class
)
,
$em
->
getClassMetadata
(
Employee::
class
)
,
$em
->
getClassMetadata
(
CompositeObjectNoToStringIdEntity::
class
)
,