DBPersistenceTest::testDatetimeWithTimezone()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 27

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
nc 1
nop 0
dl 0
loc 27
rs 9.488
c 0
b 0
f 0
1
<?php
2
declare(strict_types=1);
3
/**
4
 * Created by PhpStorm.
5
 * User: benedikt
6
 * Date: 1/2/18
7
 * Time: 10:06 PM
8
 */
9
10
namespace Tfboe\FmLib\Tests\Integration;
11
12
use LaravelDoctrine\ORM\Facades\EntityManager;
13
use Tfboe\FmLib\TestHelpers\DatabaseTestCase;
14
use Tfboe\FmLib\Tests\Entity\Tournament;
15
use Tfboe\FmLib\Tests\Helpers\ApplicationGetter;
16
17
/**
18
 * Class DBPersistenceTest
19
 * @package Tests\Integration
20
 */
21
class DBPersistenceTest extends DatabaseTestCase
22
{
23
  use ApplicationGetter;
24
25
//<editor-fold desc="Constructor">
26
27
  /**
28
   * DBPersistenceTest constructor.
29
   * @param string|null $name test name
30
   * @param array $data test data
31
   * @param string $dataName test data name
32
   */
33
  public function __construct($name = null, array $data = [], $dataName = '')
34
  {
35
    parent::__construct($name, $data, $dataName, true);
36
  }
37
//</editor-fold desc="Constructor">
38
39
//<editor-fold desc="Public Methods">
40
  public function testDatetimeWithTimezone()
41
  {
42
    $tournament = new Tournament();
43
    $tournament->setName("TestTournament");
44
    $startTime = new \DateTime("2017-12-31 15:23:20 +02:00");
45
    $endTime = new \DateTime("2017-12-31 16:23:20 +03:00");
46
    $tournament->setStartTime($startTime);
47
    $tournament->setEndTime($endTime);
48
    /** @noinspection PhpUndefinedMethodInspection */
49
    EntityManager::persist($tournament);
50
    /** @noinspection PhpUndefinedMethodInspection */
51
    EntityManager::flush();
52
    /** @noinspection PhpUndefinedMethodInspection */
53
    EntityManager::clear();
54
    /** @var Tournament $resultTournament */
55
    /** @noinspection PhpUndefinedMethodInspection */
56
    $resultTournament = EntityManager::find(Tournament::class, $tournament->getId());
57
    $resultTournament->setCreatedAt($tournament->getCreatedAt());
58
    $resultTournament->setUpdatedAt($tournament->getUpdatedAt());
59
    self::assertTrue($resultTournament->getCompetitions()->isEmpty()); //initialize collection to be comparable
60
    self::assertTrue($resultTournament->getRankingSystems()->isEmpty()); //initialize collection to be comparable
61
    self::assertNotEquals($resultTournament, $tournament);
62
    self::assertEquals($startTime, $resultTournament->getStartTime());
63
    self::assertNotEquals($resultTournament, $tournament);
64
    self::assertEquals($endTime, $resultTournament->getEndTime());
65
    self::assertEquals($resultTournament, $tournament);
66
  }
67
//</editor-fold desc="Public Methods">
68
}