Completed
Push — master ( 645752...490edd )
by Kamil
33:50 queued 15:43
created

UpdatePage   A

Complexity

Total Complexity 16

Size/Duplication

Total Lines 138
Duplicated Lines 0 %

Coupling/Cohesion

Components 2
Dependencies 5

Importance

Changes 0
Metric Value
wmc 16
c 0
b 0
f 0
lcom 2
cbo 5
dl 0
loc 138
rs 10

15 Methods

Rating   Name   Duplication   Size   Complexity  
A setTheme() 0 4 1
A unsetTheme() 0 4 1
A chooseLocale() 0 4 1
A isLocaleChosen() 0 4 1
A chooseCurrency() 0 4 1
A isCurrencyChosen() 0 4 1
A chooseDefaultTaxZone() 0 4 2
A chooseTaxCalculationStrategy() 0 4 1
A isDefaultTaxZoneChosen() 0 4 1
A isAnyDefaultTaxZoneChosen() 0 4 1
A isTaxCalculationStrategyChosen() 0 8 1
A isBaseCurrencyDisabled() 0 4 1
A getCodeElement() 0 4 1
A getToggleableElement() 0 4 1
A getDefinedElements() 0 13 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\Admin\Channel;
13
14
use Sylius\Behat\Behaviour\ChecksCodeImmutability;
15
use Sylius\Behat\Behaviour\Toggles;
16
use Sylius\Behat\Page\Admin\Crud\UpdatePage as BaseUpdatePage;
17
18
/**
19
 * @author Kamil Kokot <[email protected]>
20
 * @author Łukasz Chruściel <[email protected]>
21
 */
22
class UpdatePage extends BaseUpdatePage implements UpdatePageInterface
23
{
24
    use ChecksCodeImmutability;
25
    use Toggles;
26
27
    /**
28
     * {@inheritdoc}
29
     */
30
    public function setTheme($themeName)
31
    {
32
        $this->getDocument()->selectFieldOption('Theme', $themeName);
33
    }
34
35
    /**
36
     * {@inheritdoc}
37
     */
38
    public function unsetTheme()
39
    {
40
        $this->getDocument()->selectFieldOption('Theme', '');
41
    }
42
43
    /**
44
     * {@inheritdoc}
45
     */
46
    public function chooseLocale($language)
47
    {
48
        $this->getDocument()->selectFieldOption('Locales', $language);
49
    }
50
51
    /**
52
     * {@inheritdoc}
53
     */
54
    public function isLocaleChosen($language)
55
    {
56
        return $this->getElement('locales')->find('named', array('option', $language))->hasAttribute('selected');
57
    }
58
59
    /**
60
     * {@inheritdoc}
61
     */
62
    public function chooseCurrency($currencyCode)
63
    {
64
        $this->getDocument()->selectFieldOption('Currencies', $currencyCode);
65
    }
66
67
    /**
68
     * {@inheritdoc}
69
     */
70
    public function isCurrencyChosen($currencyCode)
71
    {
72
        return $this->getElement('currencies')->find('named', array('option', $currencyCode))->hasAttribute('selected');
73
    }
74
75
    /**
76
     * {@inheritdoc}
77
     */
78
    public function chooseDefaultTaxZone($taxZone)
79
    {
80
        $this->getDocument()->selectFieldOption('Default tax zone', (null === $taxZone) ? '' : $taxZone);
81
    }
82
83
    /**
84
     * {@inheritdoc}
85
     */
86
    public function chooseTaxCalculationStrategy($taxZone)
87
    {
88
        $this->getDocument()->selectFieldOption('Tax calculation strategy', $taxZone);
89
    }
90
91
    /**
92
     * {@inheritdoc}
93
     */
94
    public function isDefaultTaxZoneChosen($taxZone)
95
    {
96
        return $this->getElement('default_tax_zone')->find('named', array('option', $taxZone))->hasAttribute('selected');
97
    }
98
99
    /**
100
     * {@inheritdoc}
101
     */
102
    public function isAnyDefaultTaxZoneChosen()
103
    {
104
        return null !== $this->getElement('default_tax_zone')->find('css', '[selected]');
105
    }
106
107
    /**
108
     * {@inheritdoc}
109
     */
110
    public function isTaxCalculationStrategyChosen($taxCalculationStrategy)
0 ignored issues
show
Comprehensibility Naming introduced by
The variable name $taxCalculationStrategy exceeds the maximum configured length of 20.

Very long variable names usually make code harder to read. It is therefore recommended not to make variable names too verbose.

Loading history...
111
    {
112
        return $this
113
            ->getElement('tax_calculation_strategy')
114
            ->find('named', array('option', $taxCalculationStrategy))
115
            ->hasAttribute('selected')
116
        ;
117
    }
118
119
    /**
120
     * {@inheritdoc}
121
     */
122
    public function isBaseCurrencyDisabled()
123
    {
124
        return $this->getElement('base_currency')->hasAttribute('disabled');
125
    }
126
127
    /**
128
     * {@inheritdoc}
129
     */
130
    protected function getCodeElement()
131
    {
132
        return $this->getElement('code');
133
    }
134
135
    /**
136
     * {@inheritdoc}
137
     */
138
    protected function getToggleableElement()
139
    {
140
        return $this->getElement('enabled');
141
    }
142
143
    /**
144
     * {@inheritdoc}
145
     */
146
    protected function getDefinedElements()
147
    {
148
        return array_merge(parent::getDefinedElements(), [
149
            'base_currency' => '#sylius_channel_baseCurrency',
150
            'code' => '#sylius_channel_code',
151
            'currencies' => '#sylius_channel_currencies',
152
            'default_tax_zone' => '#sylius_channel_defaultTaxZone',
153
            'enabled' => '#sylius_channel_enabled',
154
            'locales' => '#sylius_channel_locales',
155
            'name' => '#sylius_channel_name',
156
            'tax_calculation_strategy' => '#sylius_channel_taxCalculationStrategy',
157
        ]);
158
    }
159
}
160