Skip to content

Commit b941867

Browse files
Correção dos testes
1 parent ca37f19 commit b941867

File tree

6 files changed

+67
-27
lines changed

6 files changed

+67
-27
lines changed
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?php
2+
3+
namespace validation\Custom;
4+
5+
6+
abstract class AbstractFixtureStrategy implements FixtureStrategyInterface
7+
{
8+
protected $value;
9+
10+
public function setValue($value)
11+
{
12+
$this->value = $value;
13+
}
14+
15+
public abstract function fix();
16+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?php
2+
3+
namespace validation\Custom;
4+
5+
6+
abstract class AbstractValidationStrategy implements ValidationStrategyInterface
7+
{
8+
protected $value;
9+
10+
public function setValue($value)
11+
{
12+
$this->value = $value;
13+
}
14+
15+
public abstract function validate();
16+
17+
}

src/Custom/FixtureStrategyInterface.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,5 @@
66
interface FixtureStrategyInterface
77
{
88
public function setValue($value);
9-
public function getValue();
109
public function fix();
1110
}

src/Custom/ValidationStrategyInterface.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,5 @@
66
interface ValidationStrategyInterface
77
{
88
public function setValue($value);
9-
public function getValue();
109
public function validate();
1110
}

src/Validation.php

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,20 @@
33
namespace validation;
44

55

6-
use validation\Custom\FixtureStrategyInterface;
6+
use validation\Custom\AbstractFixtureStrategy;
7+
use validation\Custom\AbstractValidationStrategy;
78
use validation\Custom\ValidationStrategyInterface;
89
use validation\Exceptions\InvalidValidationStrategyException;
910

1011
class Validation
1112
{
1213
/**
13-
* @var ValidationStrategyInterface[]
14+
* @var AbstractValidationStrategy[]
1415
*/
1516
private $strategyList = [];
1617

1718
/**
18-
* @var FixtureStrategyInterface[]
19+
* @var AbstractFixtureStrategy[]
1920
*/
2021
private $fixtureList = [];
2122

@@ -35,11 +36,11 @@ public function __construct($subject)
3536
}
3637

3738
/**
38-
* @param ValidationStrategyInterface $validationStrategy
39+
* @param AbstractValidationStrategy $validationStrategy
3940
* @return Validation
4041
* @throws InvalidValidationStrategyException
4142
*/
42-
public function validateWith(ValidationStrategyInterface $validationStrategy)
43+
public function validateWith(AbstractValidationStrategy $validationStrategy)
4344
{
4445
if (!in_array(ValidationStrategyInterface::class, class_implements($validationStrategy))){
4546
throw new InvalidValidationStrategyException('Validation strategy is null or invalid');
@@ -51,10 +52,10 @@ public function validateWith(ValidationStrategyInterface $validationStrategy)
5152
}
5253

5354
/**
54-
* @param FixtureStrategyInterface $fixtureStrategy
55+
* @param AbstractFixtureStrategy $fixtureStrategy
5556
* @return $this
5657
*/
57-
public function fixWith(FixtureStrategyInterface $fixtureStrategy)
58+
public function fixWith(AbstractFixtureStrategy $fixtureStrategy)
5859
{
5960
$length = count($this->fixtureList);
6061
$this->fixtureList[$length-1] = $fixtureStrategy;

tests/ValidationTest.php

Lines changed: 26 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,16 @@
55
use PHPUnit\Framework\MockObject\MockObject;
66
use PHPUnit\Framework\TestCase;
77
use Tests\Utils\TestEntity;
8-
use validation\Custom\FixtureStrategyInterface;
9-
use validation\Custom\ValidationStrategyInterface;
8+
use validation\Custom\AbstractFixtureStrategy;
9+
use validation\Custom\AbstractValidationStrategy;
1010
use validation\ValidationFactory;
1111

1212
class ValidationTest extends TestCase
1313
{
1414
private function prepareValidationStrategy(): MockObject
1515
{
1616
$validationStrategy = $this
17-
->getMockBuilder(ValidationStrategyInterface::class)
17+
->getMockBuilder(AbstractValidationStrategy::class)
1818
->disableOriginalConstructor()
1919
->getMock();
2020

@@ -32,7 +32,7 @@ private function prepareValidationStrategy(): MockObject
3232
private function prepareValidationStrategyWithException(\Exception $exception): MockObject
3333
{
3434
$validationStrategy = $this
35-
->getMockBuilder(ValidationStrategyInterface::class)
35+
->getMockBuilder(AbstractValidationStrategy::class)
3636
->disableOriginalConstructor()
3737
->getMock();
3838

@@ -45,7 +45,7 @@ private function prepareValidationStrategyWithException(\Exception $exception):
4545
private function prepareValidationStrategyWithExceptionOnFirstCall(\Exception $exception): MockObject
4646
{
4747
$validationStrategy = $this
48-
->getMockBuilder(ValidationStrategyInterface::class)
48+
->getMockBuilder(AbstractValidationStrategy::class)
4949
->disableOriginalConstructor()
5050
->getMock();
5151

@@ -64,7 +64,7 @@ private function prepareValidationStrategyWithExceptionOnFirstCall(\Exception $e
6464
private function prepareFixtureStrategyWithException(\Exception $exception): MockObject
6565
{
6666
$fixtureStrategy = $this
67-
->getMockBuilder(FixtureStrategyInterface::class)
67+
->getMockBuilder(AbstractFixtureStrategy::class)
6868
->disableOriginalConstructor()
6969
->getMock();
7070

@@ -78,7 +78,7 @@ private function prepareFixtureStrategyWithException(\Exception $exception): Moc
7878
private function prepareFixtureStrategy(): MockObject
7979
{
8080
$fixtureStrategy = $this
81-
->getMockBuilder(FixtureStrategyInterface::class)
81+
->getMockBuilder(AbstractFixtureStrategy::class)
8282
->disableOriginalConstructor()
8383
->getMock();
8484

@@ -92,7 +92,7 @@ private function prepareFixtureStrategy(): MockObject
9292
private function prepareFixtureStrategyWithoutException(): MockObject
9393
{
9494
$fixtureStrategy = $this
95-
->getMockBuilder(FixtureStrategyInterface::class)
95+
->getMockBuilder(AbstractFixtureStrategy::class)
9696
->disableOriginalConstructor()
9797
->getMock();
9898

@@ -110,7 +110,7 @@ private function prepareFixtureStrategyWithoutException(): MockObject
110110
private function prepareValidationStrategyWithTwoExecutionsAndOneExceptionForEach(\Exception $firstException, \Exception $secondException): MockObject
111111
{
112112
$validationStrategy = $this
113-
->getMockBuilder(ValidationStrategyInterface::class)
113+
->getMockBuilder(AbstractValidationStrategy::class)
114114
->disableOriginalConstructor()
115115
->getMock();
116116

@@ -177,7 +177,8 @@ public function testWhenValidationFailThenCallFixMethodFromFixtureStrategy()
177177
public function testWhenValidationWithoutFixtureStrategyIsMadeThenFailsMustThrowsExceptionFromValidation()
178178
{
179179
// arrange
180-
$exceptionFromValidation = new \Exception();
180+
$message = 'This message';
181+
$exceptionFromValidation = new \Exception($message);
181182

182183
$validationStrategy = $this->prepareValidationStrategyWithException($exceptionFromValidation);
183184

@@ -197,16 +198,18 @@ public function testWhenValidationWithoutFixtureStrategyIsMadeThenFailsMustThrow
197198
}
198199

199200
// assert
200-
$this->assertSame($exceptionFromValidation, $exceptionResult);
201+
$this->assertContains($message, $exceptionResult->getMessage());
201202
}
202203

203204
public function testWhenValidationWithFixtureStrategyIsMadeThenFixtureFailsMustThrowsExceptionFromFixture()
204205
{
205206
// arrange
206-
$exceptionFromValidation = new \Exception();
207+
$messageFromValidation = 'From validation';
208+
$exceptionFromValidation = new \Exception($messageFromValidation);
207209
$validationStrategy = $this->prepareValidationStrategyWithException($exceptionFromValidation);
208210

209-
$exceptionFromFixture = new \Exception();
211+
$messageFromFixture = 'From fixture';
212+
$exceptionFromFixture = new \Exception($messageFromFixture);
210213
$fixtureStrategy = $this->prepareFixtureStrategyWithException($exceptionFromFixture);
211214

212215
$subject = new TestEntity();
@@ -226,14 +229,17 @@ public function testWhenValidationWithFixtureStrategyIsMadeThenFixtureFailsMustT
226229
}
227230

228231
// assert
229-
$this->assertSame($exceptionFromFixture, $exceptionResult);
232+
$this->assertContains($messageFromFixture, $exceptionResult->getMessage());
233+
$this->assertNotContains($messageFromValidation, $exceptionResult->getMessage());
230234
}
231235

232-
public function testWhenValidationWithFixtureStrategyIsMadeThenValidationFailsAndFixtureDontWorkMustThrowsExceptionFromSecondValidation()
236+
public function testWhenValidationWithFixtureStrategyIsMadeThenValidationFailsAndFixtureDontWorkMustThrowsExceptionFromSecondValidationCall()
233237
{
234238
// arrange
235-
$firstExceptionFromValidation = new \Exception('First exception');
236-
$secondExceptionFromValidation = new \Exception('Second exception');
239+
$firstExceptionMessage = 'First exception';
240+
$firstExceptionFromValidation = new \Exception($firstExceptionMessage);
241+
$secondExceptionMessage = 'Second exception';
242+
$secondExceptionFromValidation = new \Exception($secondExceptionMessage);
237243
$validationStrategy = $this->prepareValidationStrategyWithTwoExecutionsAndOneExceptionForEach($firstExceptionFromValidation, $secondExceptionFromValidation);
238244

239245
$fixtureStrategy = $this->prepareFixtureStrategyWithoutException();
@@ -255,7 +261,9 @@ public function testWhenValidationWithFixtureStrategyIsMadeThenValidationFailsAn
255261
}
256262

257263
// assert
258-
$this->assertSame($secondExceptionFromValidation, $exceptionResult);
264+
$this->assertContains($secondExceptionMessage, $exceptionResult->getMessage());
265+
$this->assertNotContains($firstExceptionMessage, $exceptionResult->getMessage());
266+
//$this->assertSame($secondExceptionFromValidation, $exceptionResult);
259267
}
260268

261269
/**

0 commit comments

Comments
 (0)