ShellSeedProcessorTest   A
last analyzed

Complexity

Total Complexity 18

Size/Duplication

Total Lines 458
Duplicated Lines 13.54 %

Coupling/Cohesion

Components 1
Dependencies 1

Importance

Changes 0
Metric Value
wmc 18
lcom 1
cbo 1
dl 62
loc 458
c 0
b 0
f 0
rs 10

18 Methods

Rating   Name   Duplication   Size   Complexity  
A setUp() 0 10 1
A _createProcessorMock() 0 7 1
A testConstruct() 0 4 1
A testProcessFixtures() 0 9 1
A testProcessFixturesNoFixturesSet() 0 10 1
A testSowSeedsNoFieldFormatters() 0 14 1
A testSowSeedsCreatedSeedEmpty() 0 15 1
A testSowSeeds() 0 19 1
A testSowSeedsFithyPlus() 0 18 1
A testGetFieldFormattersManualMode() 12 12 1
A testGetFieldFormattersAutolMode() 12 12 1
A testGetFieldFormattersMixedMode() 0 17 1
A testGetFieldFormattersInvalidMode() 0 10 1
A testGuessFieldFormatters() 0 59 1
A testCreateSeed() 0 23 1
A testSaveSeedsValidateFalse() 19 19 1
A testSaveSeedsValidateTrue() 19 19 1
A testSaveSeedsNotSaved() 0 23 1

How to fix   Duplicated Code   

Duplicated Code

Duplicate code is one of the most pungent code smells. A rule that is often used is to re-structure code once it is duplicated in three or more places.

Common duplication problems, and corresponding solutions are:

1
<?php
2
3
App::uses('ShellDispatcher', 'Console');
4
App::uses('ConsoleOutput', 'Console');
5
App::uses('ConsoleInput', 'Console');
6
App::uses('SeederTaskBase', 'FakeSeeder.Console');
7
App::uses('ShellSeedProcessor', 'FakeSeeder.Lib');
8
App::uses('ColumnTypeGuesser', 'FakeSeeder.Lib');
9
10
/**
11
 * ShellSeedProcessor Test
12
 *
13
 * @coversDefaultClass ShellSeedProcessor
14
 */
15
class ShellSeedProcessorTest extends CakeTestCase {
16
17
	/**
18
	 * The fixtures
19
	 *
20
	 * @var array
21
	 */
22
	public $fixtures = array(
23
		'plugin.fake_seeder.apple',
24
	);
25
26
	/**
27
	 * Disable auto loading the fixtures as we rarely need them
28
	 *
29
	 * @var bool
30
	 */
31
	public $autoFixtures = false;
32
33
	/**
34
	 * The shell object
35
	 *
36
	 * @var null|Shell
37
	 */
38
	protected $_seeder = null;
39
40
	/**
41
	 * The object under test
42
	 *
43
	 * @var null|ShellSeedProcessor
44
	 */
45
	protected $_processor = null;
46
47
	/**
48
	 * Setup the object under test
49
	 *
50
	 * @return void
51
	 */
52
	public function setUp() {
53
		parent::setUp();
54
55
		$out = $this->getMock('ConsoleOutput', array(), array(), '', false);
56
		$in = $this->getMock('ConsoleInput', array(), array(), '', false);
57
		$this->_seeder = $this->getMock('SeederTaskBase',
58
			array(),
59
			array($out, $out, $in)
60
		);
61
	}
62
63
	/**
64
	 * Create a ShellSeedProcessor mock
65
	 *
66
	 * @param array $methods The methods to mock.
67
	 * @return void
68
	 */
69
	protected function _createProcessorMock($methods) {
70
		$this->_processor = $this->getMock(
71
			'ShellSeedProcessor',
72
			$methods,
73
			array($this->_seeder)
74
		);
75
	}
76
77
	/**
78
	 * Test the constructor
79
	 *
80
	 * @return void
81
	 * @covers ::__construct
82
	 */
83
	public function testConstruct() {
84
		$processor = new ShellSeedProcessor($this->_seeder);
0 ignored issues
show
Bug introduced by
It seems like $this->_seeder can be null; however, __construct() does not accept null, maybe add an additional type check?

Unless you are absolutely sure that the expression can never be null because of other conditions, we strongly recommend to add an additional type check to your code:

/** @return stdClass|null */
function mayReturnNull() { }

function doesNotAcceptNull(stdClass $x) { }

// With potential error.
function withoutCheck() {
    $x = mayReturnNull();
    doesNotAcceptNull($x); // Potential error here.
}

// Safe - Alternative 1
function withCheck1() {
    $x = mayReturnNull();
    if ( ! $x instanceof stdClass) {
        throw new \LogicException('$x must be defined.');
    }
    doesNotAcceptNull($x);
}

// Safe - Alternative 2
function withCheck2() {
    $x = mayReturnNull();
    if ($x instanceof stdClass) {
        doesNotAcceptNull($x);
    }
}
Loading history...
85
		$this->assertAttributeInstanceOf('SeederTaskBase', '_seeder', $processor);
86
	}
87
88
	/**
89
	 * Tests the processFixtures method
90
	 *
91
	 * @return void
92
	 * @covers ::processFixtures
93
	 */
94
	public function testProcessFixtures() {
95
		$this->_createProcessorMock(array('saveSeeds'));
96
		$fixtures = array(array('Model' => array('foo' => 'bar')));
97
98
		$this->_seeder->expects($this->at(0))->method('fixtureRecords')->will($this->returnValue($fixtures));
99
		$this->_processor->expects($this->at(0))->method('saveSeeds');
0 ignored issues
show
Bug introduced by
The method expects() does not seem to exist on object<ShellSeedProcessor>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
100
101
		$this->_processor->processFixtures();
102
	}
103
104
	/**
105
	 * Tests the processFixtures method with no fixtures set
106
	 *
107
	 * @return void
108
	 * @covers ::processFixtures
109
	 */
110
	public function testProcessFixturesNoFixturesSet() {
111
		$this->_createProcessorMock(array('saveSeeds'));
112
113
		$fixtures = array();
114
115
		$this->_seeder->expects($this->at(0))->method('fixtureRecords')->will($this->returnValue($fixtures));
116
		$this->_processor->expects($this->never())->method('saveSeeds');
0 ignored issues
show
Bug introduced by
The method expects() does not seem to exist on object<ShellSeedProcessor>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
117
118
		$this->_processor->processFixtures();
119
	}
120
121
	/**
122
	 * Tests the sowSeeds method when there are no field formatters
123
	 *
124
	 * @return void
125
	 * @covers ::sowSeeds
126
	 */
127
	public function testSowSeedsNoFieldFormatters() {
128
		$this->_createProcessorMock(array('getFieldFormatters', 'createSeed', 'saveSeeds'));
129
130
		$this->_seeder->expects($this->at(0))->method('getModelName')->will($this->returnValue('Apple'));
131
		$this->_seeder->expects($this->at(1))->method('getRecordsCount')->will($this->returnValue(5));
132
		$this->_seeder->expects($this->at(2))->method('out')->with($this->equalTo('Sowing 5 seeds for model Apple'));
133
		$this->_seeder->expects($this->at(3))->method('out')->with($this->equalTo('No field formatters configured, aborting.'));
134
135
		$this->_processor->expects($this->at(0))->method('getFieldFormatters')->will($this->returnValue(array()));
0 ignored issues
show
Bug introduced by
The method expects() does not seem to exist on object<ShellSeedProcessor>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
136
		$this->_processor->expects($this->never())->method('createSeed');
0 ignored issues
show
Bug introduced by
The method expects() does not seem to exist on object<ShellSeedProcessor>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
137
		$this->_processor->expects($this->never())->method('saveSeeds');
0 ignored issues
show
Bug introduced by
The method expects() does not seem to exist on object<ShellSeedProcessor>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
138
139
		$this->_processor->sowSeeds();
140
	}
141
142
	/**
143
	 * Tests the sowSeeds method when empty seeds get created
144
	 *
145
	 * @return void
146
	 * @covers ::sowSeeds
147
	 */
148
	public function testSowSeedsCreatedSeedEmpty() {
149
		$this->_createProcessorMock(array('getFieldFormatters', 'createSeed', 'saveSeeds'));
150
151
		$this->_seeder->expects($this->at(0))->method('getModelName')->will($this->returnValue('Apple'));
152
		$this->_seeder->expects($this->at(1))->method('getRecordsCount')->will($this->returnValue(5));
153
		$this->_seeder->expects($this->at(2))->method('out')->with($this->equalTo('Sowing 5 seeds for model Apple'));
154
		$this->_seeder->expects($this->at(3))->method('out')->with($this->equalTo('Created seed is empty! Check the field formatters.'));
155
		$this->_seeder->expects($this->at(4))->method('out')->with($this->equalTo('Finished sowing 5 seeds for model Apple'));
156
157
		$this->_processor->expects($this->at(0))->method('getFieldFormatters')->will($this->returnValue(array('NotEmpty')));
0 ignored issues
show
Bug introduced by
The method expects() does not seem to exist on object<ShellSeedProcessor>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
158
		$this->_processor->expects($this->at(1))->method('createSeed')->will($this->returnValue(array()));
0 ignored issues
show
Bug introduced by
The method expects() does not seem to exist on object<ShellSeedProcessor>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
159
		$this->_processor->expects($this->at(2))->method('saveSeeds');
0 ignored issues
show
Bug introduced by
The method expects() does not seem to exist on object<ShellSeedProcessor>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
160
161
		$this->_processor->sowSeeds();
162
	}
163
164
	/**
165
	 * Tests the sowSeeds method
166
	 *
167
	 * @return void
168
	 * @covers ::sowSeeds
169
	 */
170
	public function testSowSeeds() {
171
		$this->_createProcessorMock(array('getFieldFormatters', 'createSeed', 'saveSeeds'));
172
173
		$this->_seeder->expects($this->at(0))->method('getModelName')->will($this->returnValue('Apple'));
174
		$this->_seeder->expects($this->at(1))->method('getRecordsCount')->will($this->returnValue(5));
175
		$this->_seeder->expects($this->at(2))->method('out')->with($this->equalTo('Sowing 5 seeds for model Apple'));
176
		$this->_seeder->expects($this->at(4))->method('out')->with($this->equalTo('.'), $this->equalTo(0));
177
		$this->_seeder->expects($this->at(5))->method('out')->with($this->equalTo('.'), $this->equalTo(0));
178
		$this->_seeder->expects($this->at(6))->method('out')->with($this->equalTo('.'), $this->equalTo(0));
179
		$this->_seeder->expects($this->at(7))->method('out')->with($this->equalTo('.'), $this->equalTo(0));
180
		$this->_seeder->expects($this->at(8))->method('out')->with($this->equalTo(' 5 / 5'), $this->equalTo(1));
181
		$this->_seeder->expects($this->at(9))->method('out')->with($this->equalTo('Finished sowing 5 seeds for model Apple'));
182
183
		$this->_processor->expects($this->at(0))->method('getFieldFormatters')->will($this->returnValue(array('NotEmpty')));
0 ignored issues
show
Bug introduced by
The method expects() does not seem to exist on object<ShellSeedProcessor>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
184
		$this->_processor->expects($this->exactly(5))->method('createSeed')->will($this->returnValue(array('NotEmpty')));
0 ignored issues
show
Bug introduced by
The method expects() does not seem to exist on object<ShellSeedProcessor>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
185
		$this->_processor->expects($this->at(2))->method('saveSeeds');
0 ignored issues
show
Bug introduced by
The method expects() does not seem to exist on object<ShellSeedProcessor>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
186
187
		$this->_processor->sowSeeds();
188
	}
189
190
	/**
191
	 * Tests the sowSeeds method when sowing more than 50 seeds
192
	 *
193
	 * @return void
194
	 * @covers ::sowSeeds
195
	 */
196
	public function testSowSeedsFithyPlus() {
197
		$this->_createProcessorMock(array('getFieldFormatters', 'createSeed', 'saveSeeds'));
198
199
		$this->_seeder->expects($this->at(0))->method('getModelName')->will($this->returnValue('Apple'));
200
		$this->_seeder->expects($this->at(1))->method('getRecordsCount')->will($this->returnValue(55));
201
		$this->_seeder->expects($this->at(3))->method('out')->with($this->equalTo('.'), $this->equalTo(0));
202
		$this->_seeder->expects($this->at(53))->method('out')->with($this->equalTo(' 50 / 55'), $this->equalTo(1));
203
		$this->_seeder->expects($this->at(58))->method('out')->with($this->equalTo('.'), $this->equalTo(0));
204
		$this->_seeder->expects($this->at(59))->method('out')->with(
205
			$this->equalTo(str_repeat(' ', 46) . '55 / 55', 1)
206
		);
207
208
		$this->_processor->expects($this->at(0))->method('getFieldFormatters')->will($this->returnValue(array('NotEmpty')));
0 ignored issues
show
Bug introduced by
The method expects() does not seem to exist on object<ShellSeedProcessor>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
209
		$this->_processor->expects($this->any())->method('createSeed')->will($this->returnValue(array('NotEmpty')));
0 ignored issues
show
Bug introduced by
The method expects() does not seem to exist on object<ShellSeedProcessor>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
210
		$this->_processor->expects($this->at(2))->method('saveSeeds');
0 ignored issues
show
Bug introduced by
The method expects() does not seem to exist on object<ShellSeedProcessor>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
211
212
		$this->_processor->sowSeeds();
213
	}
214
215
	/**
216
	 * Tests the getFieldFormatters method for 'manual' mode
217
	 *
218
	 * @return void
219
	 * @covers ::getFieldFormatters
220
	 */
221 View Code Duplication
	public function testGetFieldFormattersManualMode() {
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
222
		$this->_createProcessorMock(array('_guessFieldFormatters'));
223
224
		$expected = array('field formatters from manual mode');
225
226
		$this->_seeder->expects($this->at(0))->method('getSeedingMode')->will($this->returnValue('manual'));
227
		$this->_seeder->expects($this->at(1))->method('fieldFormatters')->will($this->returnValue($expected));
228
		$this->_processor->expects($this->never())->method('_guessFieldFormatters');
0 ignored issues
show
Bug introduced by
The method expects() does not seem to exist on object<ShellSeedProcessor>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
229
230
		$result = $this->_processor->getFieldFormatters();
231
		$this->assertEquals($expected, $result);
232
	}
233
234
	/**
235
	 * Tests the getFieldFormatters method for 'auto' mode
236
	 *
237
	 * @return void
238
	 * @covers ::getFieldFormatters
239
	 */
240 View Code Duplication
	public function testGetFieldFormattersAutolMode() {
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
241
		$this->_createProcessorMock(array('_guessFieldFormatters'));
242
243
		$expected = array('field formatters from auto mode');
244
245
		$this->_seeder->expects($this->at(0))->method('getSeedingMode')->will($this->returnValue('auto'));
246
		$this->_seeder->expects($this->never())->method('fieldFormatters');
247
		$this->_processor->expects($this->at(0))->method('_guessFieldFormatters')->will($this->returnValue($expected));
0 ignored issues
show
Bug introduced by
The method expects() does not seem to exist on object<ShellSeedProcessor>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
248
249
		$result = $this->_processor->getFieldFormatters();
250
		$this->assertEquals($expected, $result);
251
	}
252
253
	/**
254
	 * Tests the getFieldFormatters method for 'mixed' mode
255
	 *
256
	 * @return void
257
	 * @covers ::getFieldFormatters
258
	 */
259
	public function testGetFieldFormattersMixedMode() {
260
		$this->_createProcessorMock(array('_guessFieldFormatters'));
261
262
		$manualMode = array('field formatters from manual mode');
263
		$autoMode = array('field formatters from auto mode');
264
		$expected = array_merge(
265
			$autoMode,
266
			$manualMode
267
		);
268
269
		$this->_seeder->expects($this->at(0))->method('getSeedingMode')->will($this->returnValue('mixed'));
270
		$this->_seeder->expects($this->once())->method('fieldFormatters')->will($this->returnValue($manualMode));
271
		$this->_processor->expects($this->once())->method('_guessFieldFormatters')->will($this->returnValue($autoMode));
0 ignored issues
show
Bug introduced by
The method expects() does not seem to exist on object<ShellSeedProcessor>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
272
273
		$result = $this->_processor->getFieldFormatters();
274
		$this->assertEquals($expected, $result);
275
	}
276
277
	/**
278
	 * Tests the getFieldFormatters method for an invalid mode
279
	 *
280
	 * @return void
281
	 * @covers ::getFieldFormatters
282
	 */
283
	public function testGetFieldFormattersInvalidMode() {
284
		$this->_createProcessorMock(array('_guessFieldFormatters'));
285
286
		$this->_seeder->expects($this->at(0))->method('getSeedingMode')->will($this->returnValue('foo'));
287
		$this->_seeder->expects($this->never())->method('fieldFormatters');
288
		$this->_processor->expects($this->never())->method('_guessFieldFormatters');
0 ignored issues
show
Bug introduced by
The method expects() does not seem to exist on object<ShellSeedProcessor>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
289
290
		$result = $this->_processor->getFieldFormatters();
291
		$this->assertEmpty($result);
292
	}
293
294
	/**
295
	 * Tests the _guessFieldFormatters method
296
	 *
297
	 * @return void
298
	 * @covers ::_guessFieldFormatters
299
	 * @covers ::_getColumns
300
	 */
301
	public function testGuessFieldFormatters() {
302
		$this->_createProcessorMock(array('_getModel', '_getColumnTypeGuesser'));
303
304
		$model = $this->getMock('Apple', array('schema'));
305
		$model->primaryKey = 'id';
306
307
		$schema = array(
308
			'id' => array(
309
				'type' => 'integer',
310
				'null' => false,
311
				'default' => NULL,
312
				'length' => 11,
313
				'unsigned' => false,
314
				'key' => 'primary',
315
			),
316
			'field1' => array(
317
				'type' => 'string',
318
				'null' => false,
319
				'default' => NULL,
320
				'length' => 255,
321
				'collate' => 'latin1_swedish_ci',
322
				'charset' => 'latin1',
323
			),
324
			'field2' =>	array(
325
				'type' => 'datetime',
326
				'null' => true,
327
				'default' => NULL,
328
				'length' => NULL,
329
			),
330
		);
331
332
		$guesser = $this->getMock(
333
			'ColumnTypeGuesser',
334
			array(),
335
			array(),
336
			'',
337
			false
338
		);
339
340
		$guessedFormats = 'guessed formatter';
341
342
		$this->_seeder->expects($this->at(0))->method('getSeedingMode')->will($this->returnValue('auto'));
343
		$this->_processor->expects($this->at(0))->method('_getModel')->will($this->returnValue($model));
0 ignored issues
show
Bug introduced by
The method expects() does not seem to exist on object<ShellSeedProcessor>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
344
		$model->expects($this->at(0))->method('schema')->will($this->returnValue($schema));
345
		$this->_processor->expects($this->at(1))->method('_getColumnTypeGuesser')->will($this->returnValue($guesser));
0 ignored issues
show
Bug introduced by
The method expects() does not seem to exist on object<ShellSeedProcessor>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
346
		$guesser->expects($this->at(0))->method('guessFormat')
347
			->with($this->equalTo($schema['field1']))
348
			->will($this->returnValue($guessedFormats));
349
		$guesser->expects($this->at(1))->method('guessFormat')
350
			->with($this->equalTo($schema['field2']))
351
			->will($this->returnValue($guessedFormats));
352
353
		$result = $this->_processor->getFieldFormatters();
354
		$expected = array(
355
			'field1' => $guessedFormats,
356
			'field2' =>	$guessedFormats,
357
		);
358
		$this->assertEquals($expected, $result);
359
	}
360
361
	/**
362
	 * Tests the createSeed method
363
	 *
364
	 * @return void
365
	 * @covers ::createSeed
366
	 */
367
	public function testCreateSeed() {
368
		$this->_createProcessorMock(array('_getModel'));
369
370
		$this->_seeder->expects($this->at(0))->method('getModelName')->will($this->returnValue('ModelName'));
371
		$this->_seeder->expects($this->at(1))->method('recordState')->will($this->returnValue('state1'));
372
373
		$callable = function ($state) {
374
			return $state;
375
		};
376
377
		$fieldFormatters = array(
378
			'field1' => $callable,
379
			'field2' => $callable,
380
		);
381
		$result = $this->_processor->createSeed($fieldFormatters);
382
		$expected = array(
383
			'ModelName' => array(
384
				'field1' => 'state1',
385
				'field2' => 'state1',
386
			),
387
		);
388
		$this->assertEquals($expected, $result);
389
	}
390
391
	/**
392
	 * Tests the saveSeeds method when validate is 'false'
393
	 *
394
	 * @return void
395
	 * @covers ::saveSeeds
396
	 */
397 View Code Duplication
	public function testSaveSeedsValidateFalse() {
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
398
		$this->_createProcessorMock(array('_getModel'));
399
		$seeds = array('seeds');
400
		$model = $this->getMock('Apple', array('saveAll'));
401
		$options = array(
402
			'validate' => false
403
		);
404
405
		$this->_seeder->expects($this->at(0))->method('getValidateSeeding')->will($this->returnValue('false'));
406
		$this->_processor->expects($this->at(0))->method('_getModel')->will($this->returnValue($model));
0 ignored issues
show
Bug introduced by
The method expects() does not seem to exist on object<ShellSeedProcessor>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
407
		$model->expects($this->at(0))->method('saveAll')->with(
408
			$this->equalTo($seeds),
409
			$this->equalTo($options)
410
		)->will($this->returnValue(true));
411
412
		$this->_seeder->expects($this->never())->method('out');
413
414
		$this->_processor->saveSeeds($seeds);
415
	}
416
417
	/**
418
	 * Tests the saveSeeds method when validate casts to true
419
	 *
420
	 * @return void
421
	 * @covers ::saveSeeds
422
	 */
423 View Code Duplication
	public function testSaveSeedsValidateTrue() {
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
424
		$this->_createProcessorMock(array('_getModel'));
425
		$seeds = array('seeds');
426
		$model = $this->getMock('Apple', array('saveAll'));
427
		$options = array(
428
			'validate' => true
429
		);
430
431
		$this->_seeder->expects($this->at(0))->method('getValidateSeeding')->will($this->returnValue('true'));
432
		$this->_processor->expects($this->at(0))->method('_getModel')->will($this->returnValue($model));
0 ignored issues
show
Bug introduced by
The method expects() does not seem to exist on object<ShellSeedProcessor>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
433
		$model->expects($this->at(0))->method('saveAll')->with(
434
			$this->equalTo($seeds),
435
			$this->equalTo($options)
436
		)->will($this->returnValue(true));
437
438
		$this->_seeder->expects($this->never())->method('out');
439
440
		$this->_processor->saveSeeds($seeds);
441
	}
442
443
	/**
444
	 * Tests the saveSeeds method when saving fails
445
	 *
446
	 * @return void
447
	 * @covers ::saveSeeds
448
	 */
449
	public function testSaveSeedsNotSaved() {
450
		$this->_createProcessorMock(array('_getModel'));
451
		$seeds = array('seeds');
452
		$model = $this->getMock('Apple', array('saveAll'));
453
		$options = array(
454
			'validate' => 'first'
455
		);
456
457
		$model->validationErrors = 'test123';
458
459
		$this->_seeder->expects($this->at(0))->method('getValidateSeeding')->will($this->returnValue('first'));
460
		$this->_processor->expects($this->at(0))->method('_getModel')->will($this->returnValue($model));
0 ignored issues
show
Bug introduced by
The method expects() does not seem to exist on object<ShellSeedProcessor>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
461
462
		$model->expects($this->at(0))->method('saveAll')->with(
463
			$this->equalTo($seeds),
464
			$this->equalTo($options)
465
		)->will($this->returnValue(false));
466
467
		$this->_seeder->expects($this->at(1))->method('out')->with($this->equalTo('Seeds could not be saved successfully!'));
468
		$this->_seeder->expects($this->at(2))->method('out')->with($this->equalTo("Data validation errors: 'test123'"));
469
470
		$this->_processor->saveSeeds($seeds);
471
	}
472
}
473