forked from doctrine/orm
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
adedd failing test for PR doctrine#440
- Loading branch information
Stefano Rodriguez
committed
Sep 8, 2012
1 parent
dacb51f
commit 0fa3bff
Showing
6 changed files
with
318 additions
and
0 deletions.
There are no files selected for viewing
22 changes: 22 additions & 0 deletions
22
tests/Doctrine/Tests/Models/SingleTableInheritanceType/Structure.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
<?php | ||
|
||
namespace Doctrine\Tests\Models\SingleTableInheritanceType; | ||
|
||
/** | ||
* @Table(name="structures") | ||
* @Entity | ||
*/ | ||
class Structure | ||
{ | ||
/** | ||
* @Id | ||
* @Column(type="integer") | ||
* @GeneratedValue(strategy="AUTO") | ||
*/ | ||
protected $id; | ||
|
||
/** | ||
* @Column(type="string", length=32, nullable=true) | ||
*/ | ||
protected $name; | ||
} |
123 changes: 123 additions & 0 deletions
123
tests/Doctrine/Tests/Models/SingleTableInheritanceType/User.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,123 @@ | ||
<?php | ||
|
||
namespace Doctrine\Tests\Models\SingleTableInheritanceType; | ||
|
||
use Doctrine\Common\Collections\ArrayCollection; | ||
|
||
/** | ||
* @Table(name="users") | ||
* @Entity | ||
*/ | ||
class User | ||
{ | ||
/** | ||
* @Id | ||
* @Column(type="integer") | ||
* @GeneratedValue(strategy="AUTO") | ||
*/ | ||
protected $id; | ||
|
||
/** | ||
* @Column(type="string", length=32, nullable=true) | ||
*/ | ||
protected $name; | ||
|
||
/** | ||
* @var ArrayCollection $followedUsers | ||
* @OneToMany(targetEntity="UserFollowedUser", mappedBy="user", cascade={"persist"}, orphanRemoval=true) | ||
*/ | ||
protected $followedUsers; | ||
|
||
/** | ||
* @var ArrayCollection $followedStructures | ||
* @OneToMany(targetEntity="UserFollowedStructure", mappedBy="user", cascade={"persist"}, orphanRemoval=true) | ||
*/ | ||
protected $followedStructures; | ||
|
||
public function __construct() { | ||
$this->followedUsers = new ArrayCollection(); | ||
$this->followedStructures = new ArrayCollection(); | ||
} | ||
|
||
/* | ||
* Remove followers | ||
* | ||
* @param UserFollowedUser $followers | ||
*/ | ||
private function removeFollower(UserFollowedUser $followers) | ||
{ | ||
$this->followers->removeElement($followers); | ||
} | ||
|
||
/** | ||
* Add followedUsers | ||
* | ||
* @param UserFollowedUser $followedUsers | ||
* @return User | ||
*/ | ||
public function addFollowedUser(UserFollowedUser $followedUsers) | ||
{ | ||
$this->followedUsers[] = $followedUsers; | ||
|
||
return $this; | ||
} | ||
|
||
/** | ||
* Remove followedUsers | ||
* | ||
* @param UserFollowedUser $followedUsers | ||
* @return User | ||
*/ | ||
public function removeFollowedUser(UserFollowedUser $followedUsers) | ||
{ | ||
$this->followedUsers->removeElement($followedUsers); | ||
|
||
return $this; | ||
} | ||
|
||
/** | ||
* Get followedUsers | ||
* | ||
* @return Doctrine\Common\Collections\Collection | ||
*/ | ||
public function getFollowedUsers() | ||
{ | ||
return $this->followedUsers; | ||
} | ||
|
||
/** | ||
* Add followedStructures | ||
* | ||
* @param UserFollowedStructure $followedStructures | ||
* @return User | ||
*/ | ||
public function addFollowedStructure(UserFollowedStructure $followedStructures) | ||
{ | ||
$this->followedStructures[] = $followedStructures; | ||
|
||
return $this; | ||
} | ||
|
||
/** | ||
* Remove followedStructures | ||
* | ||
* @param UserFollowedStructure $followedStructures | ||
* @return User | ||
*/ | ||
public function removeFollowedStructure(UserFollowedStructure $followedStructures) | ||
{ | ||
$this->followedStructures->removeElement($followedStructures); | ||
|
||
return $this; | ||
} | ||
|
||
/** | ||
* Get followedStructures | ||
* | ||
* @return Doctrine\Common\Collections\Collection | ||
*/ | ||
public function getFollowedStructures() | ||
{ | ||
return $this->followedStructures; | ||
} | ||
} |
32 changes: 32 additions & 0 deletions
32
tests/Doctrine/Tests/Models/SingleTableInheritanceType/UserFollowedObject.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
<?php | ||
|
||
namespace Doctrine\Tests\Models\SingleTableInheritanceType; | ||
|
||
/** | ||
* @Entity | ||
* @Table(name="users_followed_objects") | ||
* @InheritanceType("SINGLE_TABLE") | ||
* @DiscriminatorColumn(name="object_type", type="smallint") | ||
* @DiscriminatorMap({4 = "UserFollowedUser", 3 = "UserFollowedStructure"}) | ||
*/ | ||
abstract class UserFollowedObject | ||
{ | ||
/** | ||
* @var integer $id | ||
* | ||
* @Column(name="id", type="integer") | ||
* @Id | ||
* @GeneratedValue(strategy="AUTO") | ||
*/ | ||
protected $id; | ||
|
||
/** | ||
* Get id | ||
* | ||
* @return integer | ||
*/ | ||
public function getId() | ||
{ | ||
return $this->id; | ||
} | ||
} |
54 changes: 54 additions & 0 deletions
54
tests/Doctrine/Tests/Models/SingleTableInheritanceType/UserFollowedStructure.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
<?php | ||
|
||
namespace Doctrine\Tests\Models\SingleTableInheritanceType; | ||
|
||
/** | ||
* @Entity | ||
*/ | ||
class UserFollowedStructure extends UserFollowedObject | ||
{ | ||
/** | ||
* @ManyToOne(targetEntity="User", inversedBy="followedStructures") | ||
* @JoinColumn(name="user_id", referencedColumnName="id", nullable=false) | ||
* @var User $user | ||
*/ | ||
protected $user; | ||
|
||
/** | ||
* @ManyToOne(targetEntity="Structure") | ||
* @JoinColumn(name="object_id", referencedColumnName="id", nullable=false) | ||
* @var Structure $followedStructure | ||
*/ | ||
private $followedStructure; | ||
|
||
/** | ||
* Construct a UserFollowedStructure entity | ||
* | ||
* @param User $user | ||
* @param Structure $followedStructure | ||
*/ | ||
public function __construct(User $user, Structure $followedStructure) | ||
{ | ||
$this->user = $user; | ||
$this->followedStructure = $followedStructure; | ||
} | ||
|
||
/** | ||
* | ||
* @return User | ||
*/ | ||
public function getUser() | ||
{ | ||
return $this->user; | ||
} | ||
|
||
/** | ||
* Gets followed structure | ||
* | ||
* @return Structure | ||
*/ | ||
public function getFollowedStructure() | ||
{ | ||
return $this->followedStructure; | ||
} | ||
} |
55 changes: 55 additions & 0 deletions
55
tests/Doctrine/Tests/Models/SingleTableInheritanceType/UserFollowedUser.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
<?php | ||
|
||
namespace Doctrine\Tests\Models\SingleTableInheritanceType; | ||
|
||
/** | ||
* @Entity | ||
*/ | ||
class UserFollowedUser extends UserFollowedObject | ||
{ | ||
/** | ||
* @ManyToOne(targetEntity="User", inversedBy="followedUsers") | ||
* @JoinColumn(name="user_id", referencedColumnName="id", nullable=false) | ||
* @var User $user | ||
*/ | ||
protected $user; | ||
|
||
/** | ||
* @ManyToOne(targetEntity="User") | ||
* @JoinColumn(name="object_id", referencedColumnName="id", nullable=false) | ||
* @var User $user | ||
*/ | ||
private $followedUser; | ||
|
||
/** | ||
* Construct a UserFollowedUser entity | ||
* | ||
* @param User $user | ||
* @param User $followedUser | ||
* @param bool $giveAgency | ||
*/ | ||
public function __construct(User $user, User $followedUser) | ||
{ | ||
$this->user = $user; | ||
$this->followedUser = $followedUser; | ||
} | ||
|
||
/** | ||
* {@inheritdoc} | ||
*/ | ||
public function getUser() | ||
{ | ||
return $this->user; | ||
} | ||
|
||
/** | ||
* Gets followed user | ||
* | ||
* @return User | ||
*/ | ||
public function getFollowedUser() | ||
{ | ||
return $this->followedUser; | ||
} | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters