Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
D
doctrine-dbal
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Tomáš Trávníček
doctrine-dbal
Commits
30329f49
Commit
30329f49
authored
Dec 11, 2009
by
beberlei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[2.0] DDC-69 - Issue was resolved previously as shown by test-case not failing anymore.
parent
7542482e
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
427 additions
and
0 deletions
+427
-0
Ticket69.php
tests/Doctrine/Tests/ORM/Functional/Ticket/Ticket69.php
+427
-0
No files found.
tests/Doctrine/Tests/ORM/Functional/Ticket/Ticket69.php
0 → 100644
View file @
30329f49
<?php
namespace
Doctrine\Tests\ORM\Functional\Ticket
;
use
Doctrine\ORM\Query
;
require_once
__DIR__
.
'/../../../TestInit.php'
;
/**
* Functional tests for the Single Table Inheritance mapping strategy.
*
* @author robo
*/
class
AdvancedAssociationTest
extends
\Doctrine\Tests\OrmFunctionalTestCase
{
protected
function
setUp
()
{
parent
::
setUp
();
try
{
$this
->
_schemaTool
->
createSchema
(
array
(
$this
->
_em
->
getClassMetadata
(
'Doctrine\Tests\ORM\Functional\Ticket\Lemma'
),
$this
->
_em
->
getClassMetadata
(
'Doctrine\Tests\ORM\Functional\Ticket\Relation'
),
$this
->
_em
->
getClassMetadata
(
'Doctrine\Tests\ORM\Functional\Ticket\RelationType'
)
));
}
catch
(
\Exception
$e
)
{
// Swallow all exceptions. We do not test the schema tool here.
}
}
public
function
testIssue
()
{
//setup
$lemma1
=
new
Lemma
;
$lemma1
->
setLemma
(
'foo'
);
$lemma2
=
new
Lemma
;
$lemma2
->
setLemma
(
'bar'
);
$lemma3
=
new
Lemma
;
$lemma3
->
setLemma
(
'batz'
);
$lemma4
=
new
Lemma
;
$lemma4
->
setLemma
(
'bla'
);
$type1
=
new
RelationType
;
$type1
->
setType
(
'nonsense'
);
$type1
->
setAbbreviation
(
'non'
);
$type2
=
new
RelationType
;
$type2
->
setType
(
'quatsch'
);
$type2
->
setAbbreviation
(
'qu'
);
$relation1
=
new
Relation
;
$relation1
->
setParent
(
$lemma1
);
$relation1
->
setChild
(
$lemma2
);
$relation1
->
setType
(
$type1
);
$relation2
=
new
Relation
;
$relation2
->
setParent
(
$lemma1
);
$relation2
->
setChild
(
$lemma3
);
$relation2
->
setType
(
$type1
);
$relation3
=
new
Relation
;
$relation3
->
setParent
(
$lemma1
);
$relation3
->
setChild
(
$lemma4
);
$relation3
->
setType
(
$type2
);
$lemma1
->
addRelation
(
$relation1
);
$lemma1
->
addRelation
(
$relation2
);
$lemma1
->
addRelation
(
$relation3
);
$this
->
_em
->
persist
(
$type1
);
$this
->
_em
->
persist
(
$type2
);
$this
->
_em
->
persist
(
$lemma1
);
$this
->
_em
->
persist
(
$lemma2
);
$this
->
_em
->
persist
(
$lemma3
);
$this
->
_em
->
persist
(
$lemma4
);
$this
->
_em
->
flush
();
$this
->
_em
->
clear
();
//end setup
// test One To Many
$query
=
$this
->
_em
->
createQuery
(
"SELECT l FROM Doctrine\Tests\ORM\Functional\Ticket\Lemma l Where l.lemma = 'foo'"
);
$res
=
$query
->
getResult
();
$lemma
=
$res
[
0
];
$this
->
assertEquals
(
'foo'
,
$lemma
->
getLemma
());
$this
->
assertTrue
(
$lemma
instanceof
Lemma
);
$relations
=
$lemma
->
getRelations
();
foreach
(
$relations
as
$relation
)
{
$this
->
assertTrue
(
$relation
instanceof
Relation
);
$this
->
assertTrue
(
$relation
->
getType
()
->
getType
()
!=
''
);
}
$this
->
_em
->
clear
();
}
}
/**
* @Entity
* @Table(name="lemma")
*/
class
Lemma
{
const
CLASS_NAME
=
__CLASS__
;
/**
* @var int
* @Id
* @Column(type="integer", name="lemma_id")
* @GeneratedValue(strategy="AUTO")
*/
private
$id
;
/**
*
* @var string
* @Column(type="string", name="lemma_name", unique=true, length=255)
*/
private
$lemma
;
/**
* @var kateglo\application\utilities\collections\ArrayCollection
* @OneToMany(targetEntity="Relation", mappedBy="parent", cascade={"persist"})
*/
private
$relations
;
public
function
__construct
()
{
$this
->
types
=
new
\Doctrine\Common\Collections\ArrayCollection
();
$this
->
relations
=
new
\Doctrine\Common\Collections\ArrayCollection
();
}
/**
*
* @return int
*/
public
function
getId
()
{
return
$this
->
id
;
}
/**
*
* @param string $lemma
* @return void
*/
public
function
setLemma
(
$lemma
)
{
$this
->
lemma
=
$lemma
;
}
/**
*
* @return string
*/
public
function
getLemma
()
{
return
$this
->
lemma
;
}
/**
*
* @param Relation $relation
* @return void
*/
public
function
addRelation
(
Relation
$relation
)
{
$this
->
relations
[]
=
$relation
;
$relation
->
setParent
(
$this
);
}
/**
*
* @param Relation $relation
* @return void
*/
public
function
removeRelation
(
Relation
$relation
)
{
/*@var $removed Relation */
$removed
=
$this
->
relations
->
removeElement
(
$relation
);
if
(
$removed
!==
null
)
{
$removed
->
removeParent
();
}
}
/**
*
* @return kateglo\application\utilities\collections\ArrayCollection
*/
public
function
getRelations
()
{
return
$this
->
relations
;
}
}
/**
*
* @Entity
* @Table(name="relation")
*/
class
Relation
{
const
CLASS_NAME
=
__CLASS__
;
/**
* @var int
* @Id
* @Column(type="integer", name="relation_id")
* @GeneratedValue(strategy="AUTO")
*/
private
$id
;
/**
* @var Lemma
* @ManyToOne(targetEntity="Lemma")
* @JoinColumn(name="relation_parent_id", referencedColumnName="lemma_id")
*/
private
$parent
;
/**
* @var Lemma
* @OneToOne(targetEntity="Lemma")
* @JoinColumn(name="relation_child_id", referencedColumnName="lemma_id")
*/
private
$child
;
/**
* @var RelationType
* @ManyToOne(targetEntity="RelationType")
* @JoinColumn(name="relation_type_id", referencedColumnName="relation_type_id")
*/
private
$type
;
/**
*
* @param Lemma $parent
* @return void
*/
public
function
setParent
(
Lemma
$parent
)
{
$this
->
parent
=
$parent
;
}
/**
*
* @return Phrase
*/
public
function
getParent
()
{
return
$this
->
parent
;
}
/**
*
* @return void
*/
public
function
removeParent
()
{
if
(
$this
->
lemma
!==
null
)
{
/*@var $phrase Lemma */
$lemma
=
$this
->
parent
;
$this
->
parent
=
null
;
$lemma
->
removeRelation
(
$this
);
}
}
/**
*
* @param Lemma $child
* @return void
*/
public
function
setChild
(
Lemma
$child
)
{
$this
->
child
=
$child
;
}
/**
*
* @return Lemma
*/
public
function
getChild
()
{
return
$this
->
child
;
}
/**
*
* @param RelationType $type
* @return void
*/
public
function
setType
(
RelationType
$type
)
{
$this
->
type
=
$type
;
}
/**
*
* @return RelationType
*/
public
function
getType
()
{
return
$this
->
type
;
}
/**
*
* @return void
*/
public
function
removeType
()
{
if
(
$this
->
type
!==
null
)
{
/*@var $phrase RelationType */
$type
=
$this
->
type
;
$this
->
type
=
null
;
$type
->
removeRelation
(
$this
);
}
}
}
/**
*
* @Entity
* @Table(name="relation_type")
*/
class
RelationType
{
const
CLASS_NAME
=
__CLASS__
;
/**
*
* @var int
* @Id
* @Column(type="integer", name="relation_type_id")
* @GeneratedValue(strategy="AUTO")
*/
private
$id
;
/**
*
* @var string
* @Column(type="string", name="relation_type_name", unique=true, length=255)
*/
private
$type
;
/**
*
* @var string
* @Column(type="string", name="relation_type_abbreviation", unique=true, length=255)
*/
private
$abbreviation
;
/**
* @var kateglo\application\utilities\collections\ArrayCollection
* @OneToMany(targetEntity="Relation", mappedBy="type", cascade={"persist"})
*/
private
$relations
;
public
function
__construct
()
{
$relations
=
new
\Doctrine\Common\Collections\ArrayCollection
();
}
/**
*
* @return int
*/
public
function
getId
()
{
return
$this
->
id
;
}
/**
*
* @param string $type
* @return void
*/
public
function
setType
(
$type
)
{
$this
->
type
=
$type
;
}
/**
*
* @return string
*/
public
function
getType
()
{
return
$this
->
type
;
}
/**
*
* @param string $abbreviation
* @return void
*/
public
function
setAbbreviation
(
$abbreviation
)
{
$this
->
abbreviation
=
$abbreviation
;
}
/**
*
* @return string
*/
public
function
getAbbreviation
()
{
return
$this
->
abbreviation
;
}
/**
*
* @param Relation $relation
* @return void
*/
public
function
addRelation
(
Relation
$relation
)
{
$this
->
relations
[]
=
$relation
;
$relation
->
setType
(
$this
);
}
/**
*
* @param Relation $relation
* @return void
*/
public
function
removeRelation
(
Relation
$relation
)
{
/*@var $removed Relation */
$removed
=
$this
->
relations
->
removeElement
(
$relation
);
if
(
$removed
!==
null
)
{
$removed
->
removeLemma
();
}
}
/**
*
* @return kateglo\application\utilities\collections\ArrayCollection
*/
public
function
getRelations
()
{
return
$this
->
relations
;
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment