TeamMembershipTest::membership()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
nc 1
nop 0
dl 0
loc 4
rs 10
c 0
b 0
f 0
1
<?php
2
declare(strict_types=1);
3
/**
4
 * Created by PhpStorm.
5
 * User: benedikt
6
 * Date: 10/1/17
7
 * Time: 1:11 PM
8
 */
9
10
namespace Tfboe\FmLib\Tests\Unit\Entity\Traits;
11
12
use Doctrine\Common\Collections\ArrayCollection;
13
use Tfboe\FmLib\Entity\CompetitionInterface;
14
use Tfboe\FmLib\Entity\PlayerInterface;
15
use Tfboe\FmLib\Entity\TeamInterface;
16
use Tfboe\FmLib\Entity\TeamMembershipInterface;
17
use Tfboe\FmLib\Tests\Entity\Player;
18
use Tfboe\FmLib\Tests\Entity\TeamMembership;
19
use Tfboe\FmLib\Tests\Helpers\UnitTestCase;
20
21
/**
22
 * Class TeamMembershipTest
23
 * @package Tfboe\FmLib\Tests\Unit\Entity\Traits
24
 */
25
class TeamMembershipTest extends UnitTestCase
26
{
27
//<editor-fold desc="Public Methods">
28
  /**
29
   * @covers   \Tfboe\FmLib\Entity\Traits\TeamMembership::getPlayer
30
   * @covers   \Tfboe\FmLib\Entity\Traits\TeamMembership::setPlayer
31
   */
32
  public function testPlayer()
33
  {
34
    $membership = $this->membership();
35
    /** @var Player $player */
36
    $player = $this->createMock(PlayerInterface::class);
37
    $membership->setPlayer($player);
38
    self::assertEquals($player, $membership->getPlayer());
39
  }
40
41
  /**
42
   * @covers \Tfboe\FmLib\Entity\Traits\TeamMembership::getTeam
43
   * @covers \Tfboe\FmLib\Entity\Traits\TeamMembership::setTeam
44
   * @uses   \Tfboe\FmLib\Entity\Helpers\UUIDEntity::getId
45
   */
46
  public function testTeam()
47
  {
48
    $membership = $this->membership();
49
    /** @var TeamInterface $team */
50
    $team = $this->createStub(TeamInterface::class, ['getMemberships' => new ArrayCollection()]);
51
    self::getProperty(get_class($membership), 'id')->setValue($membership, 'membership-id');
52
    /** @var CompetitionInterface $competition */
53
    $membership->setTeam($team);
54
    self::assertEquals($team, $membership->getTeam());
55
    self::assertEquals(1, $membership->getTeam()->getMemberships()->count());
56
    self::assertEquals($membership, $membership->getTeam()->getMemberships()[$membership->getId()]);
57
58
    /** @var TeamInterface $team2 */
59
    $team2 = $this->createStub(TeamInterface::class, ['getMemberships' => new ArrayCollection()]);
60
61
    /** @var CompetitionInterface $competition2 */
62
    $membership->setTeam($team2);
63
    self::assertEquals($team2, $membership->getTeam());
64
    self::assertEquals(1, $membership->getTeam()->getMemberships()->count());
65
    self::assertEquals(0, $team->getMemberships()->count());
66
    self::assertEquals($membership, $membership->getTeam()->getMemberships()[$membership->getId()]);
67
  }
68
//</editor-fold desc="Public Methods">
69
70
//<editor-fold desc="Private Methods">
71
  /**
72
   * @return TeamMembershipInterface a new team
73
   */
74
  private function membership(): TeamMembershipInterface
75
  {
76
    return new TeamMembership();
77
  }
78
//</editor-fold desc="Private Methods">
79
}