RankingSystemListTest::testCurrent()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
nc 1
nop 0
dl 0
loc 6
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: 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\RankingSystemListInterface;
14
use Tfboe\FmLib\Tests\Entity\Player;
15
use Tfboe\FmLib\Tests\Entity\RankingSystem;
16
use Tfboe\FmLib\Tests\Entity\RankingSystemList;
17
use Tfboe\FmLib\Tests\Entity\RankingSystemListEntry;
18
use Tfboe\FmLib\Tests\Helpers\UnitTestCase;
19
20
21
/**
22
 * Class BaseEntityTest
23
 * @package Tfboe\FmLib\Tests\Unit\Entity\Helpers
24
 */
25
class RankingSystemListTest extends UnitTestCase
26
{
27
//<editor-fold desc="Public Methods">
28
  /**
29
   * @covers \Tfboe\FmLib\Entity\Traits\RankingSystemList::init
30
   * @uses   \Tfboe\FmLib\Entity\Traits\RankingSystemList::getLastEntryTime
31
   * @uses   \Tfboe\FmLib\Entity\Traits\RankingSystemList::isCurrent
32
   */
33
  public function testConstructor()
34
  {
35
    $entity = $this->instance();
36
    self::assertEquals(new \DateTime("2000-01-01"), $entity->getLastEntryTime());
37
    self::assertFalse($entity->isCurrent());
38
  }
39
40
  /**
41
   * @covers \Tfboe\FmLib\Entity\Traits\RankingSystemList::setCurrent
42
   * @covers \Tfboe\FmLib\Entity\Traits\RankingSystemList::isCurrent
43
   * @uses   \Tfboe\FmLib\Entity\Traits\RankingSystemList::init
44
   */
45
  public function testCurrent()
46
  {
47
    $entity = $this->instance();
48
    $entity->setCurrent(true);
49
    self::assertTrue($entity->isCurrent());
50
  }
51
52
  /**
53
   * @covers \Tfboe\FmLib\Entity\Traits\RankingSystemList::setLastEntryTime
54
   * @covers \Tfboe\FmLib\Entity\Traits\RankingSystemList::getLastEntryTime
55
   * @uses   \Tfboe\FmLib\Entity\Traits\RankingSystemList::init
56
   */
57
  public function testLastEntry()
58
  {
59
    $instance = $this->instance();
60
    $instance->setLastEntryTime(new \DateTime("2017-01-01"));
61
    self::assertEquals(new \DateTime("2017-01-01"), $instance->getLastEntryTime());
62
  }
63
64
  /**
65
   * @covers \Tfboe\FmLib\Entity\Traits\RankingSystemList::getEntries
66
   * @uses   \Tfboe\FmLib\Entity\Traits\RankingSystemList::init
67
   */
68
  public function testLists()
69
  {
70
    $entity = $this->instance();
71
    $entity2 = $this->createMock(RankingSystemListEntry::class);
72
    $player = $this->createStubWithId(Player::class, 5, 'getId');
73
    /** @var \Tfboe\FmLib\Tests\Entity\Player $player */
74
    $entity2->method('getPlayer')->willReturn($player);
0 ignored issues
show
Bug introduced by
The method method() does not seem to exist on object<PHPUnit\Framework\MockObject\MockObject>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
75
    $entity->getEntries()->set($player->getId(), $entity2);
76
    self::assertEquals(1, $entity->getEntries()->count());
77
    self::assertEquals($entity2, $entity->getEntries()[$player->getId()]);
78
  }
79
80
  /**
81
   * @covers \Tfboe\FmLib\Entity\Traits\RankingSystemList::setRankingSystem
82
   * @covers \Tfboe\FmLib\Entity\Traits\RankingSystemList::getRankingSystem
83
   * @uses   \Tfboe\FmLib\Entity\Traits\RankingSystemList::init
84
   * @uses   \Tfboe\FmLib\Entity\Helpers\SubClassData::initSubClassData
85
   * @uses   \Tfboe\FmLib\Entity\Traits\RankingSystem
86
   * @uses   \Tfboe\FmLib\Entity\Helpers\UUIDEntity::getId
87
   */
88
  public function testRankingSystem()
89
  {
90
    $instance = $this->instance();
91
    /** @noinspection PhpUnhandledExceptionInspection */
92
    self::getProperty(get_class($instance), 'id')->setValue($instance, 'list-id');
93
    $rankingSystem = new RankingSystem([]);
94
95
    $instance->setRankingSystem($rankingSystem);
96
    self::assertEquals($rankingSystem, $instance->getRankingSystem());
97
    self::assertEquals(1, $instance->getRankingSystem()->getLists()->count());
98
    self::assertEquals($instance, $instance->getRankingSystem()->getLists()[$instance->getId()]);
99
100
    $rankingSystem2 = new RankingSystem([]);
101
    $instance->setRankingSystem($rankingSystem2);
102
103
    self::assertEquals($rankingSystem2, $instance->getRankingSystem());
104
    self::assertEquals(1, $instance->getRankingSystem()->getLists()->count());
105
    self::assertEquals(0, $rankingSystem->getLists()->count());
106
    self::assertEquals($instance, $instance->getRankingSystem()->getLists()[$instance->getId()]);
107
  }
108
//</editor-fold desc="Public Methods">
109
110
//<editor-fold desc="Private Methods">
111
  /**
112
   * @return RankingSystemListInterface
113
   */
114
  private function instance(): RankingSystemListInterface
115
  {
116
    return new RankingSystemList();
117
  }
118
//</editor-fold desc="Private Methods">
119
}