Passed
Pull Request — master (#69)
by Chris
17:32 queued 08:49
created

TicketRecordTest   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 34
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
dl 0
loc 34
rs 10
c 0
b 0
f 0
wmc 2

2 Methods

Rating   Name   Duplication   Size   Complexity  
A testCreate() 0 12 1
A testUpdateDelegate() 0 18 1
1
<?php
2
3
namespace ConferenceTools\Tickets\Domain\ReadModel\TicketRecord;
4
5
use ConferenceTools\Tickets\Domain\ValueObject\Delegate;
6
use ConferenceTools\Tickets\Domain\ValueObject\Money;
7
use ConferenceTools\Tickets\Domain\ValueObject\Price;
8
use ConferenceTools\Tickets\Domain\ValueObject\TaxRate;
9
use ConferenceTools\Tickets\Domain\ValueObject\TicketType;
10
use PHPUnit\Framework\TestCase;
11
12
class TicketRecordTest extends TestCase
13
{
14
    public function testCreate()
15
    {
16
        $price = Price::fromNetCost(new Money(100, 'GBP'), new TaxRate(20));
17
        $ticketType = new TicketType('test', $price, 'Test ticket');
18
        $purchaseRecord = new PurchaseRecord('randomid');
19
20
        $sut = new TicketRecord($ticketType, $purchaseRecord, 'ticketid');
21
22
        self::assertEquals($ticketType, $sut->getTicketType());
23
        self::assertEquals('ticketid', $sut->getTicketId());
24
        self::assertEquals($purchaseRecord, $sut->getPurchase());
25
        self::assertEquals(Delegate::emptyObject(), $sut->getDelegate());
26
    }
27
28
    public function testUpdateDelegate()
29
    {
30
        $data['firstname']= 'Ed';
0 ignored issues
show
Comprehensibility Best Practice introduced by
$data was never initialized. Although not strictly required by PHP, it is generally a good practice to add $data = array(); before regardless.
Loading history...
31
        $data['lastname'] = 'Nigma';
32
        $data['email'] = '[email protected]';
33
        $data['company'] = 'Mystery Inc.';
34
        $data['twitter'] = '@ed_nigma';
35
        $data['requirements'] = 'none';
36
37
        $delegate = Delegate::fromArray($data);
38
39
        $price = Price::fromNetCost(new Money(100, 'GBP'), new TaxRate(20));
40
        $ticketType = new TicketType('test', $price, 'Test ticket');
41
        $purchaseRecord = new PurchaseRecord('randomid');
42
43
        $sut = new TicketRecord($ticketType, $purchaseRecord, 'ticketid');
44
        $sut->updateDelegate($delegate);
45
        self::assertEquals($delegate, $sut->getDelegate());
46
    }
47
}
48