ConfigurationTest   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 212
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 3

Importance

Changes 0
Metric Value
wmc 4
lcom 0
cbo 3
dl 0
loc 212
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A testDefaultConfig() 0 7 1
B getBundleDefaultConfig() 0 191 3
1
<?php
2
3
namespace Admingenerator\GeneratorBundle\Tests\DependencyInjection;
4
5
use Admingenerator\GeneratorBundle\DependencyInjection\Configuration;
6
use Symfony\Component\Config\Definition\Processor;
7
8
class ConfigurationTest extends \PHPUnit_Framework_TestCase
9
{
10
    /**
11
     * Test that default configuration is correctly initialized
12
     */
13
    public function testDefaultConfig()
14
    {
15
        $processor = new Processor();
16
        $config = $processor->processConfiguration(new Configuration('admingen_generator'), array());
17
18
        $this->assertEquals($this->getBundleDefaultConfig(), $config);
19
    }
20
21
    /**
22
     * Get waiting default values from configuration. If $key is not null
23
     * and is in first level keys, returns value of this specific key only.
24
     *
25
     * @param  string $key
26
     * @return mixed
27
     */
28
    private function getBundleDefaultConfig($key = null)
29
    {
30
        static $defaultConfiguration = array(
31
            'use_doctrine_orm'      => false,
32
            'use_doctrine_odm'      => false,
33
            'use_propel'            => false,
34
            'use_jms_security'      => false,
35
            'guess_required'        => true,
36
            'default_required'      => true,
37
            'overwrite_if_exists'   => false,
38
            'base_admin_template'   => 'AdmingeneratorGeneratorBundle::base.html.twig',
39
            'dashboard_route'       => null,
40
            'login_route'           => null,
41
            'logout_route'          => null,
42
            'exit_route'            => null,
43
            'generator_cache'       => null,
44
            'knp_menu_alias'        => null,
45
            'use_doctrine_orm_batch_remove' => false,
46
            'use_doctrine_odm_batch_remove' => false,
47
            'use_propel_batch_remove'       => false,
48
            'twig'                  => array(
49
                'use_form_resources'        => true,
50
                'use_localized_date'        => false,
51
                'date_format'               => 'Y-m-d',
52
                'datetime_format'           => 'Y-m-d H:i:s',
53
                'localized_date_format'     => 'medium',
54
                'localized_datetime_format' => 'medium',
55
                'number_format'             => array(
56
                    'decimal'               => 0,
57
                    'decimal_point'         => '.',
58
                    'thousand_separator'    => ','
59
                )
60
            ),
61
            'templates_dirs'        => array(),
62
            'form_types'            => array(
63
                'doctrine_orm'  => array(
64
                    'datetime'      => 'Symfony\Component\Form\Extension\Core\Type\DateTimeType',
65
                    'vardatetime'   => 'Symfony\Component\Form\Extension\Core\Type\DateTimeType',
66
                    'datetimetz'    => 'Symfony\Component\Form\Extension\Core\Type\DateTimeType',
67
                    'date'          => 'Symfony\Component\Form\Extension\Core\Type\DateType',
68
                    'time'          => 'Symfony\Component\Form\Extension\Core\Type\TimeType',
69
                    'decimal'       => 'Symfony\Component\Form\Extension\Core\Type\NumberType',
70
                    'float'         => 'Symfony\Component\Form\Extension\Core\Type\NumberType',
71
                    'integer'       => 'Symfony\Component\Form\Extension\Core\Type\IntegerType',
72
                    'bigint'        => 'Symfony\Component\Form\Extension\Core\Type\IntegerType',
73
                    'smallint'      => 'Symfony\Component\Form\Extension\Core\Type\IntegerType',
74
                    'string'        => 'Symfony\Component\Form\Extension\Core\Type\TextType',
75
                    'text'          => 'Symfony\Component\Form\Extension\Core\Type\TextareaType',
76
                    'entity'        => 'Symfony\Bridge\Doctrine\Form\Type\EntityType',
77
                    'collection'    => 'Symfony\Component\Form\Extension\Core\Type\CollectionType',
78
                    'array'         => 'Symfony\Component\Form\Extension\Core\Type\CollectionType',
79
                    'boolean'       => 'Symfony\Component\Form\Extension\Core\Type\CheckboxType',
80
                ),
81
                'doctrine_odm'  => array(
82
                    'datetime'    => 'Symfony\Component\Form\Extension\Core\Type\DateTimeType',
83
                    'timestamp'   => 'Symfony\Component\Form\Extension\Core\Type\DateTimeType',
84
                    'vardatetime' => 'Symfony\Component\Form\Extension\Core\Type\DateTimeType',
85
                    'datetimetz'  => 'Symfony\Component\Form\Extension\Core\Type\DateTimeType',
86
                    'date'        => 'Symfony\Component\Form\Extension\Core\Type\DateType',
87
                    'time'        => 'Symfony\Component\Form\Extension\Core\Type\TimeType',
88
                    'decimal'     => 'Symfony\Component\Form\Extension\Core\Type\NumberType',
89
                    'float'       => 'Symfony\Component\Form\Extension\Core\Type\NumberType',
90
                    'int'         => 'Symfony\Component\Form\Extension\Core\Type\IntegerType',
91
                    'integer'     => 'Symfony\Component\Form\Extension\Core\Type\IntegerType',
92
                    'int_id'      => 'Symfony\Component\Form\Extension\Core\Type\IntegerType',
93
                    'bigint'      => 'Symfony\Component\Form\Extension\Core\Type\IntegerType',
94
                    'smallint'    => 'Symfony\Component\Form\Extension\Core\Type\IntegerType',
95
                    'id'          => 'Symfony\Component\Form\Extension\Core\Type\TextType',
96
                    'custom_id'   => 'Symfony\Component\Form\Extension\Core\Type\TextType',
97
                    'string'      => 'Symfony\Component\Form\Extension\Core\Type\TextType',
98
                    'text'        => 'Symfony\Component\Form\Extension\Core\Type\TextareaType',
99
                    'document'    => 'Doctrine\Bundle\MongoDBBundle\Form\Type\DocumentType',
100
                    'collection'  => 'Symfony\Component\Form\Extension\Core\Type\CollectionType',
101
                    'hash'        => 'Symfony\Component\Form\Extension\Core\Type\CollectionType',
102
                    'boolean'     => 'Symfony\Component\Form\Extension\Core\Type\CheckboxType',
103
                ),
104
                'propel'        => array(
105
                    'TIMESTAMP'    => 'Symfony\Component\Form\Extension\Core\Type\DateTimeType',
106
                    'BU_TIMESTAMP' => 'Symfony\Component\Form\Extension\Core\Type\DateTimeType',
107
                    'DATE'         => 'Symfony\Component\Form\Extension\Core\Type\DateType',
108
                    'BU_DATE'      => 'Symfony\Component\Form\Extension\Core\Type\DateType',
109
                    'TIME'         => 'Symfony\Component\Form\Extension\Core\Type\TimeType',
110
                    'FLOAT'        => 'Symfony\Component\Form\Extension\Core\Type\NumberType',
111
                    'REAL'         => 'Symfony\Component\Form\Extension\Core\Type\NumberType',
112
                    'DOUBLE'       => 'Symfony\Component\Form\Extension\Core\Type\NumberType',
113
                    'DECIMAL'      => 'Symfony\Component\Form\Extension\Core\Type\NumberType',
114
                    'TINYINT'      => 'Symfony\Component\Form\Extension\Core\Type\IntegerType',
115
                    'SMALLINT'     => 'Symfony\Component\Form\Extension\Core\Type\IntegerType',
116
                    'INTEGER'      => 'Symfony\Component\Form\Extension\Core\Type\IntegerType',
117
                    'BIGINT'       => 'Symfony\Component\Form\Extension\Core\Type\IntegerType',
118
                    'NUMERIC'      => 'Symfony\Component\Form\Extension\Core\Type\IntegerType',
119
                    'CHAR'         => 'Symfony\Component\Form\Extension\Core\Type\TextType',
120
                    'VARCHAR'      => 'Symfony\Component\Form\Extension\Core\Type\TextType',
121
                    'LONGVARCHAR'  => 'Symfony\Component\Form\Extension\Core\Type\TextareaType',
122
                    'BLOB'         => 'Symfony\Component\Form\Extension\Core\Type\TextareaType',
123
                    'CLOB'         => 'Symfony\Component\Form\Extension\Core\Type\TextareaType',
124
                    'CLOB_EMU'     => 'Symfony\Component\Form\Extension\Core\Type\TextareaType',
125
                    'model'        => 'Symfony\Bridge\Propel1\Form\Type\ModelType',
126
                    'collection'   => 'Symfony\Component\Form\Extension\Core\Type\CollectionType',
127
                    'PHP_ARRAY'    => 'Symfony\Component\Form\Extension\Core\Type\CollectionType',
128
                    'ENUM'         => 'Symfony\Component\Form\Extension\Core\Type\ChoiceType',
129
                    'BOOLEAN'      => 'Symfony\Component\Form\Extension\Core\Type\CheckboxType',
130
                    'BOOLEAN_EMU'  => 'Symfony\Component\Form\Extension\Core\Type\CheckboxType',
131
                ),
132
            ),
133
            'filter_types'          => array(
134
                'doctrine_orm'  => array(
135
                    'datetime'    => 'Symfony\Component\Form\Extension\Core\Type\DateTimeType',
136
                    'vardatetime' => 'Symfony\Component\Form\Extension\Core\Type\DateTimeType',
137
                    'datetimetz'  => 'Symfony\Component\Form\Extension\Core\Type\DateTimeType',
138
                    'date'        => 'Symfony\Component\Form\Extension\Core\Type\DateType',
139
                    'time'        => 'Symfony\Component\Form\Extension\Core\Type\TimeType',
140
                    'decimal'     => 'Symfony\Component\Form\Extension\Core\Type\NumberType',
141
                    'float'       => 'Symfony\Component\Form\Extension\Core\Type\NumberType',
142
                    'integer'     => 'Symfony\Component\Form\Extension\Core\Type\NumberType',
143
                    'bigint'      => 'Symfony\Component\Form\Extension\Core\Type\NumberType',
144
                    'smallint'    => 'Symfony\Component\Form\Extension\Core\Type\NumberType',
145
                    'string'      => 'Symfony\Component\Form\Extension\Core\Type\TextType',
146
                    'text'        => 'Symfony\Component\Form\Extension\Core\Type\TextType',
147
                    'entity'      => 'Symfony\Bridge\Doctrine\Form\Type\EntityType',
148
                    'collection'  => 'Symfony\Component\Form\Extension\Core\Type\CollectionType',
149
                    'array'       => 'Symfony\Component\Form\Extension\Core\Type\TextType',
150
                    'boolean'     => 'Symfony\Component\Form\Extension\Core\Type\ChoiceType',
151
                ),
152
                'doctrine_odm'  => array(
153
                    'datetime'    => 'Symfony\Component\Form\Extension\Core\Type\DateTimeType',
154
                    'timestamp'   => 'Symfony\Component\Form\Extension\Core\Type\DateTimeType',
155
                    'vardatetime' => 'Symfony\Component\Form\Extension\Core\Type\DateTimeType',
156
                    'datetimetz'  => 'Symfony\Component\Form\Extension\Core\Type\DateTimeType',
157
                    'date'        => 'Symfony\Component\Form\Extension\Core\Type\DateType',
158
                    'time'        => 'Symfony\Component\Form\Extension\Core\Type\TimeType',
159
                    'decimal'     => 'Symfony\Component\Form\Extension\Core\Type\NumberType',
160
                    'float'       => 'Symfony\Component\Form\Extension\Core\Type\NumberType',
161
                    'int'         => 'Symfony\Component\Form\Extension\Core\Type\NumberType',
162
                    'integer'     => 'Symfony\Component\Form\Extension\Core\Type\NumberType',
163
                    'int_id'      => 'Symfony\Component\Form\Extension\Core\Type\NumberType',
164
                    'bigint'      => 'Symfony\Component\Form\Extension\Core\Type\NumberType',
165
                    'smallint'    => 'Symfony\Component\Form\Extension\Core\Type\NumberType',
166
                    'id'          => 'Symfony\Component\Form\Extension\Core\Type\TextType',
167
                    'custom_id'   => 'Symfony\Component\Form\Extension\Core\Type\TextType',
168
                    'string'      => 'Symfony\Component\Form\Extension\Core\Type\TextType',
169
                    'text'        => 'Symfony\Component\Form\Extension\Core\Type\TextType',
170
                    'document'    => 'Doctrine\Bundle\MongoDBBundle\Form\Type\DocumentType',
171
                    'collection'  => 'Symfony\Component\Form\Extension\Core\Type\CollectionType',
172
                    'hash'        => 'Symfony\Component\Form\Extension\Core\Type\TextType',
173
                    'boolean'     => 'Symfony\Component\Form\Extension\Core\Type\ChoiceType',
174
                ),
175
                'propel'        => array(
176
                    'TIMESTAMP'    => 'Symfony\Component\Form\Extension\Core\Type\DateTimeType',
177
                    'BU_TIMESTAMP' => 'Symfony\Component\Form\Extension\Core\Type\DateTimeType',
178
                    'DATE'         => 'Symfony\Component\Form\Extension\Core\Type\DateType',
179
                    'BU_DATE'      => 'Symfony\Component\Form\Extension\Core\Type\DateType',
180
                    'TIME'         => 'Symfony\Component\Form\Extension\Core\Type\TimeType',
181
                    'FLOAT'        => 'Symfony\Component\Form\Extension\Core\Type\NumberType',
182
                    'REAL'         => 'Symfony\Component\Form\Extension\Core\Type\NumberType',
183
                    'DOUBLE'       => 'Symfony\Component\Form\Extension\Core\Type\NumberType',
184
                    'DECIMAL'      => 'Symfony\Component\Form\Extension\Core\Type\NumberType',
185
                    'TINYINT'      => 'Symfony\Component\Form\Extension\Core\Type\IntegerType',
186
                    'SMALLINT'     => 'Symfony\Component\Form\Extension\Core\Type\IntegerType',
187
                    'INTEGER'      => 'Symfony\Component\Form\Extension\Core\Type\IntegerType',
188
                    'BIGINT'       => 'Symfony\Component\Form\Extension\Core\Type\IntegerType',
189
                    'NUMERIC'      => 'Symfony\Component\Form\Extension\Core\Type\NumberType',
190
                    'CHAR'         => 'Symfony\Component\Form\Extension\Core\Type\TextType',
191
                    'VARCHAR'      => 'Symfony\Component\Form\Extension\Core\Type\TextType',
192
                    'LONGVARCHAR'  => 'Symfony\Component\Form\Extension\Core\Type\TextType',
193
                    'BLOB'         => 'Symfony\Component\Form\Extension\Core\Type\TextType',
194
                    'CLOB'         => 'Symfony\Component\Form\Extension\Core\Type\TextType',
195
                    'CLOB_EMU'     => 'Symfony\Component\Form\Extension\Core\Type\TextType',
196
                    'model'        => 'Symfony\Bridge\Propel1\Form\Type\ModelType',
197
                    'collection'   => 'Symfony\Component\Form\Extension\Core\Type\CollectionType',
198
                    'PHP_ARRAY'    => 'Symfony\Component\Form\Extension\Core\Type\TextType',
199
                    'ENUM'         => 'Symfony\Component\Form\Extension\Core\Type\TextType',
200
                    'BOOLEAN'      => 'Symfony\Component\Form\Extension\Core\Type\ChoiceType',
201
                    'BOOLEAN_EMU'  => 'Symfony\Component\Form\Extension\Core\Type\ChoiceType',
202
                ),
203
            ),
204
            'stylesheets'               => array(),
205
            'javascripts'               => array(),
206
            'default_action_after_save' => 'edit',
207
            'throw_exceptions'          => false,
208
            'use_doctrine_orm_batch_remove' => false,
209
            'use_doctrine_odm_batch_remove' => false,
210
            'use_propel_batch_remove'       => false,
211
        );
212
213
        if (!is_null($key) && array_key_exists($key, $defaultConfiguration)) {
214
            return $defaultConfiguration[$key];
215
        }
216
217
        return $defaultConfiguration;
218
    }
219
}
220