Completed
Push — master ( 6d05bc...b47a4a )
by Paweł
23:31 queued 13:20
created

CreatePage   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 47
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 3

Importance

Changes 0
Metric Value
wmc 5
lcom 0
cbo 3
dl 0
loc 47
rs 10
c 0
b 0
f 0

4 Methods

Rating   Name   Duplication   Size   Complexity  
A getRouteName() 0 4 1
A fillAddressData() 0 9 2
A saveAddress() 0 4 1
A getDefinedElements() 0 12 1
1
<?php
2
3
/*
4
 * This file is part of the Sylius package.
5
 *
6
 * (c) Paweł Jędrzejewski
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11
12
namespace Sylius\Behat\Page\Shop\Account\AddressBook;
13
14
use Sylius\Behat\Page\SymfonyPage;
15
use Sylius\Component\Core\Model\AddressInterface;
16
17
/**
18
 * @author Anna Walasek <[email protected]>
19
 */
20
class CreatePage extends SymfonyPage implements CreatePageInterface
21
{
22
    /**
23
     * {@inheritdoc}
24
     */
25
    public function getRouteName()
26
    {
27
        return 'sylius_shop_account_address_book_create';
28
    }
29
30
    /**
31
     * {@inheritdoc}
32
     */
33
    public function fillAddressData(AddressInterface $address)
34
    {
35
        $this->getElement('first_name')->setValue($address->getFirstName());
36
        $this->getElement('last_name')->setValue($address->getLastName());
37
        $this->getElement('street')->setValue($address->getStreet());
38
        $this->getElement('country')->selectOption($address->getCountryCode() ?: 'Select');
39
        $this->getElement('city')->setValue($address->getCity());
40
        $this->getElement('postcode')->setValue($address->getPostcode());
41
    }
42
43
    /**
44
     * {@inheritdoc}
45
     */
46
    public function saveAddress()
47
    {
48
        $this->getElement('save_button')->press();
49
    }
50
51
    /**
52
     * {@inheritdoc}
53
     */
54
    protected function getDefinedElements()
55
    {
56
        return array_merge(parent::getDefinedElements(), [
57
            'city' => '#sylius_address_city',
58
            'country' => '#sylius_address_countryCode',
59
            'first_name' => '#sylius_address_firstName',
60
            'last_name' => '#sylius_address_lastName',
61
            'postcode' => '#sylius_address_postcode',
62
            'save_button' => 'button:contains("Save")',
63
            'street' => '#sylius_address_street',
64
        ]);
65
    }
66
}
67