Completed
Push — master ( 715718...c4fc6e )
by Benedikt
02:30
created

RankingSystemListEntryTest::testPoints()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 7
c 0
b 0
f 0
cc 1
eloc 5
nc 1
nop 0
rs 9.4285
1
<?php
2
declare(strict_types=1);
3
/**
4
 * Created by PhpStorm.
5
 * User: benedikt
6
 * Date: 1/3/18
7
 * Time: 10:39 AM
8
 */
9
10
namespace Tfboe\FmLib\Tests\Unit\Entity\Traits;
11
12
13
use Tfboe\FmLib\Entity\RankingSystemListEntryInterface;
14
use Tfboe\FmLib\Tests\Entity\Player;
15
use Tfboe\FmLib\Tests\Entity\RankingSystemList;
16
use Tfboe\FmLib\Tests\Entity\RankingSystemListEntry;
17
use Tfboe\FmLib\Tests\Helpers\UnitTestCase;
18
19
20
/**
21
 * Class BaseEntityChangeTest
22
 * @package Tfboe\FmLib\Tests\Unit\Entity\Helpers
23
 * @SuppressWarnings(PHPMD.TooManyPublicMethods)
24
 */
25
class RankingSystemListEntryTest extends UnitTestCase
26
{
27
//<editor-fold desc="Public Methods">
28
29
  /**
30
   * @covers \Tfboe\FmLib\Entity\Traits\RankingSystemListEntry::init
31
   * @uses   \Tfboe\FmLib\Entity\Helpers\SubClassData::initSubClassData
32
   */
33
  public function testConstructor()
34
  {
35
    $entity = $this->instance();
36
    self::assertInstanceOf(RankingSystemListEntry::class, $entity);
37
  }
38
39
  /**
40
   * @covers \Tfboe\FmLib\Entity\Traits\RankingSystemListEntry::init
41
   * @uses   \Tfboe\FmLib\Entity\Helpers\SubClassData::initSubClassData
42
   * @uses   \Tfboe\FmLib\Entity\Helpers\SubClassData::hasProperty
43
   */
44
  public function testConstructorWithAdditionalKeys()
45
  {
46
    $entity = new RankingSystemListEntry(["key"]);
47
    self::assertTrue($entity->hasProperty("key"));
48
    self::assertFalse($entity->hasProperty("other"));
49
  }
50
51
  /**
52
   * @covers \Tfboe\FmLib\Entity\Traits\RankingSystemListEntry::setNumberRankedEntities
53
   * @covers \Tfboe\FmLib\Entity\Traits\RankingSystemListEntry::getNumberRankedEntities
54
   * @uses   \Tfboe\FmLib\Entity\Helpers\SubClassData::initSubClassData
55
   * @uses   \Tfboe\FmLib\Entity\Traits\RankingSystemListEntry::init
56
   */
57
  public function testNumberOfRankedEntities()
58
  {
59
    $entity = $this->instance();
60
    $points = 5;
61
    $entity->setNumberRankedEntities($points);
62
    self::assertEquals($points, $entity->getNumberRankedEntities());
63
  }
64
65
  /**
66
   * @covers \Tfboe\FmLib\Entity\Traits\RankingSystemListEntry::getPlayer
67
   * @covers \Tfboe\FmLib\Entity\Traits\RankingSystemListEntry::setPlayer
68
   * @uses   \Tfboe\FmLib\Entity\Traits\RankingSystemListEntry::init
69
   * @uses   \Tfboe\FmLib\Entity\Helpers\SubClassData::initSubClassData
70
   */
71 View Code Duplication
  public function testPlayer()
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
72
  {
73
    $entity = $this->instance();
74
    /** @var \Tfboe\FmLib\Tests\Entity\Player $player */
75
    $player = $this->createMock(Player::class);
76
    $entity->setPlayer($player);
77
    self::assertEquals($player, $entity->getPlayer());
78
  }
79
80
  /**
81
   * @covers \Tfboe\FmLib\Entity\Traits\RankingSystemListEntry::setPoints
82
   * @covers \Tfboe\FmLib\Entity\Traits\RankingSystemListEntry::getPoints
83
   * @uses   \Tfboe\FmLib\Entity\Helpers\SubClassData::initSubClassData
84
   * @uses   \Tfboe\FmLib\Entity\Traits\RankingSystemListEntry::init
85
   */
86
  public function testPoints()
87
  {
88
    $entity = $this->instance();
89
    $points = 24.333;
90
    $entity->setPoints($points);
91
    self::assertEquals($points, $entity->getPoints());
92
  }
93
94
  /**
95
   * @covers \Tfboe\FmLib\Entity\Traits\RankingSystemListEntry::setRankingSystemList
96
   * @covers \Tfboe\FmLib\Entity\Traits\RankingSystemListEntry::getRankingSystemList
97
   * @uses   \Tfboe\FmLib\Entity\Helpers\SubClassData::initSubClassData
98
   * @uses   \Tfboe\FmLib\Entity\Traits\RankingSystemListEntry::init
99
   * @uses   \Tfboe\FmLib\Entity\Traits\RankingSystemListEntry::getPlayer
100
   * @uses   \Tfboe\FmLib\Entity\Traits\RankingSystemListEntry::setPlayer
101
   * @uses   \Tfboe\FmLib\Entity\Traits\RankingSystemList
102
   */
103
  public function testRankingSystemList()
104
  {
105
    $entity = $this->instance();
106
    $rankingSystemList = new RankingSystemList();
107
    $player = $this->createMock(Player::class);
108
    $player->method('getId')->willReturn(5);
109
    /** @var \Tfboe\FmLib\Tests\Entity\Player $player */
110
    $entity->setPlayer($player);
111
112
    $entity->setRankingSystemList($rankingSystemList);
113
    self::assertEquals($rankingSystemList, $entity->getRankingSystemList());
114
    self::assertEquals(1, $rankingSystemList->getEntries()->count());
115
    self::assertEquals($entity, $rankingSystemList->getEntries()[5]);
116
  }
117
118
  /**
119
   * @covers \Tfboe\FmLib\Entity\Traits\RankingSystemListEntry::setRankingSystemList
120
   * @covers \Tfboe\FmLib\Entity\Traits\RankingSystemListEntry::getRankingSystemList
121
   * @uses   \Tfboe\FmLib\Entity\Helpers\SubClassData::initSubClassData
122
   * @uses   \Tfboe\FmLib\Entity\Traits\RankingSystemListEntry::init
123
   * @uses   \Tfboe\FmLib\Entity\Traits\RankingSystemListEntry::getPlayer
124
   * @uses   \Tfboe\FmLib\Entity\Traits\RankingSystemListEntry::setPlayer
125
   * @uses   \Tfboe\FmLib\Entity\Traits\RankingSystemList
126
   */
127
  public function testRankingSystemListRemoveFromOld()
128
  {
129
    $entity = $this->instance();
130
    $rankingSystemList = new RankingSystemList();
131
    $player = $this->createMock(Player::class);
132
    $player->method('getId')->willReturn(5);
133
    /** @var Player $player */
134
    $entity->setPlayer($player);
135
136
    $entity->setRankingSystemList($rankingSystemList);
137
    self::assertEquals($rankingSystemList, $entity->getRankingSystemList());
138
    self::assertEquals(1, $rankingSystemList->getEntries()->count());
139
140
    $rankingSystemList2 = new RankingSystemList();
141
    $entity->setRankingSystemList($rankingSystemList2);
142
    self::assertEquals(0, $rankingSystemList->getEntries()->count());
143
    self::assertEquals(1, $rankingSystemList2->getEntries()->count());
144
    self::assertEquals($entity, $rankingSystemList2->getEntries()[5]);
145
  }
146
//</editor-fold desc="Public Methods">
147
148
//<editor-fold desc="Private Methods">
149
  /**
150
   * @return RankingSystemListEntryInterface
151
   */
152
  private function instance(): RankingSystemListEntryInterface
153
  {
154
    return new RankingSystemListEntry([]);
155
  }
156
//</editor-fold desc="Private Methods">
157
}