diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index 8a6a566..49ff71d 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -9,12 +9,11 @@ jobs: fail-fast: true matrix: os: [ubuntu-latest, windows-latest] - php: [8.1, 8.2] - laravel: [9.*, 10.*] + php: [8.4, 8.5] + laravel: [13.*] stability: [prefer-lowest, prefer-stable] include: - - laravel: 9.* - - laravel: 10.* + - laravel: 13.* name: P${{ matrix.php }} - L${{ matrix.laravel }} - ${{ matrix.stability }} - ${{ matrix.os }} diff --git a/composer.json b/composer.json index 3903d2b..c2ecfb7 100644 --- a/composer.json +++ b/composer.json @@ -14,16 +14,17 @@ } ], "require": { - "php": "^8.1", - "illuminate/contracts": "~9.0|~10.0|~11.0|~12.0|~13.0", - "illuminate/database": "~9.0|~10.0|~11.0|~12.0|~13.0", - "illuminate/events": "~9.0|~10.0|~11.0|~12.0|~13.0", - "illuminate/support": "~9.0|~10.0|~11.0|~12.0|~13.0", - "illuminate/validation": "~9.0|~10.0|~11.0|~12.0|~13.0" + "php": "^8.4", + "illuminate/contracts": "~13.0", + "illuminate/database": "~13.0", + "illuminate/events": "~13.0", + "illuminate/support": "~13.0", + "illuminate/validation": "~13.0" }, "require-dev": { "mockery/mockery": "^1.4.4", - "phpunit/phpunit": "~9.0" + "phpunit/phpunit": "~12.0", + "laravel/pint": "^1.29" }, "autoload": { "psr-4": { diff --git a/phpunit.xml b/phpunit.xml index d90579b..cc55a79 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -1,13 +1,13 @@ - - - - src/ - - + - ./tests/ + ./tests/ + + + src/ + + diff --git a/src/Injectors/UniqueInjector.php b/src/Injectors/UniqueInjector.php index a0afca8..d9b12d4 100644 --- a/src/Injectors/UniqueInjector.php +++ b/src/Injectors/UniqueInjector.php @@ -9,7 +9,7 @@ trait UniqueInjector * if required. * * @param array $parameters - * @param string $field + * @param string $field * @return string */ protected function prepareUniqueRule($parameters, $field) @@ -51,6 +51,6 @@ protected function prepareUniqueRule($parameters, $field) } } - return 'unique:' . implode(',', $parameters); + return 'unique:'.implode(',', $parameters); } } diff --git a/src/Injectors/UniqueWithInjector.php b/src/Injectors/UniqueWithInjector.php index 2412c2f..9a3af4a 100644 --- a/src/Injectors/UniqueWithInjector.php +++ b/src/Injectors/UniqueWithInjector.php @@ -8,7 +8,7 @@ trait UniqueWithInjector * Prepare a unique_with rule, adding the model identifier if required. * * @param array $parameters - * @param string $field + * @param string $field * @return string */ protected function prepareUniqueWithRule($parameters, $field) @@ -22,6 +22,6 @@ protected function prepareUniqueWithRule($parameters, $field) } } - return 'unique_with:' . implode(',', $parameters); + return 'unique_with:'.implode(',', $parameters); } } diff --git a/src/ValidatingInterface.php b/src/ValidatingInterface.php index 54523df..357d07a 100644 --- a/src/ValidatingInterface.php +++ b/src/ValidatingInterface.php @@ -2,9 +2,9 @@ namespace Watson\Validating; -use Illuminate\Support\MessageBag; -use Illuminate\Support\Facades\Input; +use Illuminate\Database\Eloquent\Model; use Illuminate\Support\Facades\Validator; +use Illuminate\Support\MessageBag; use Illuminate\Validation\Factory; interface ValidatingInterface @@ -17,10 +17,10 @@ interface ValidatingInterface */ public function getValidating(); - /** + /** * Set whether the model should attempt validation on saving. * - * @param bool $value + * @param bool $value * @return void */ public function setValidating($value); @@ -37,8 +37,9 @@ public function getThrowValidationExceptions(); * Set whether the model should raise an exception or * return a boolean on a failed validation. * - * @param bool $value + * @param bool $value * @return void + * * @throws InvalidArgumentException */ public function setThrowValidationExceptions($value); @@ -55,8 +56,9 @@ public function getInjectUniqueIdentifier(); * Set the model to add unique identifier to rules when performing * validation. * - * @param bool $value + * @param bool $value * @return void + * * @throws InvalidArgumentException */ public function setInjectUniqueIdentifier($value); @@ -64,7 +66,7 @@ public function setInjectUniqueIdentifier($value); /** * Get the model. * - * @return \Illuminate\Database\Eloquent\Model + * @return Model */ public function getModel(); @@ -85,7 +87,6 @@ public function getRules(); /** * Set the global validation rules. * - * @param array $rules * @return void */ public function setRules(?array $rules = null); @@ -93,14 +94,13 @@ public function setRules(?array $rules = null); /** * Get the validation error messages from the model. * - * @return \Illuminate\Support\MessageBag + * @return MessageBag */ public function getErrors(); /** * Set the error messages. * - * @param \Illuminate\Support\MessageBag $validationErrors * @return void */ public function setErrors(MessageBag $validationErrors); @@ -116,7 +116,8 @@ public function isValid(); * Returns if the model is valid, otherwise throws an exception. * * @return bool - * @throws \Watson\Validating\ValidationException + * + * @throws ValidationException */ public function isValidOrFail(); @@ -139,7 +140,8 @@ public function forceSave(); * instead of returning a boolean (which is the default behaviour). * * @return void - * @throws \Watson\Validating\ValidatingException + * + * @throws ValidationException */ public function saveOrFail(); @@ -154,22 +156,20 @@ public function saveOrReturn(); /** * Get the Validator instance * - * @return \Illuminate\Validation\Factory + * @return Factory */ public function getValidator(); /** * Set the Validator instance - * - * @param \Illuminate\Validation\Factory $validator */ public function setValidator(Factory $validator); /** * Throw a validation exception. * - * @throws \Watson\Validating\ValidationException - */ + * @throws ValidationException + */ public function throwValidationException(); /** diff --git a/src/ValidatingModel.php b/src/ValidatingModel.php index a474b4f..6624157 100644 --- a/src/ValidatingModel.php +++ b/src/ValidatingModel.php @@ -2,15 +2,16 @@ namespace Watson\Validating; -use Illuminate\Database\Eloquent\Model as Eloquent; use Illuminate\Contracts\Support\MessageProvider; +use Illuminate\Database\Eloquent\Model as Eloquent; +use Illuminate\Support\MessageBag; abstract class ValidatingModel extends Eloquent implements MessageProvider, ValidatingInterface { /** * Make model validate attributes. * - * @see \Watson\Validating\ValidatingTrait + * @see ValidatingTrait */ use ValidatingTrait; @@ -24,7 +25,7 @@ abstract class ValidatingModel extends Eloquent implements MessageProvider, Vali /** * Get the messages for the instance. * - * @return \Illuminate\Support\MessageBag + * @return MessageBag */ public function getMessageBag() { diff --git a/src/ValidatingObserver.php b/src/ValidatingObserver.php index f5a9068..702c96b 100644 --- a/src/ValidatingObserver.php +++ b/src/ValidatingObserver.php @@ -4,7 +4,6 @@ use Illuminate\Database\Eloquent\Model; use Illuminate\Support\Facades\Event; -use Watson\Validating\ValidationException; class ValidatingObserver { @@ -12,8 +11,7 @@ class ValidatingObserver * Register the validation event for saving the model. Saving validation * should only occur if creating and updating validation does not. * - * @param \Illuminate\Database\Eloquent\Model $model - * @return boolean + * @return bool */ public function saving(Model $model) { @@ -23,8 +21,7 @@ public function saving(Model $model) /** * Register the validation event for restoring the model. * - * @param \Illuminate\Database\Eloquent\Model $model - * @return boolean + * @return bool */ public function restoring(Model $model) { @@ -34,9 +31,8 @@ public function restoring(Model $model) /** * Perform validation with the specified ruleset. * - * @param \Illuminate\Database\Eloquent\Model $model - * @param string $event - * @return boolean + * @param string $event + * @return bool */ protected function performValidation(Model $model, $event) { @@ -68,24 +64,22 @@ protected function performValidation(Model $model, $event) /** * Fire the namespaced validating event. * - * @param \Illuminate\Database\Eloquent\Model $model - * @param string $event + * @param string $event * @return mixed */ protected function fireValidatingEvent(Model $model, $event) { - return Event::until("eloquent.validating: ".get_class($model), [$model, $event]); + return Event::until('eloquent.validating: '.get_class($model), [$model, $event]); } /** * Fire the namespaced post-validation event. * - * @param \Illuminate\Database\Eloquent\Model $model - * @param string $status + * @param string $status * @return void */ protected function fireValidatedEvent(Model $model, $status) { - Event::dispatch("eloquent.validated: ".get_class($model), [$model, $status]); + Event::dispatch('eloquent.validated: '.get_class($model), [$model, $status]); } } diff --git a/src/ValidatingTrait.php b/src/ValidatingTrait.php index 5ffc4a6..c9e6cae 100644 --- a/src/ValidatingTrait.php +++ b/src/ValidatingTrait.php @@ -2,10 +2,11 @@ namespace Watson\Validating; -use Illuminate\Support\Str; +use Illuminate\Database\Eloquent\Model; +use Illuminate\Support\Facades\Validator; use Illuminate\Support\MessageBag; +use Illuminate\Support\Str; use Illuminate\Validation\Factory; -use Illuminate\Support\Facades\Validator; use Watson\Validating\Injectors\UniqueInjector; trait ValidatingTrait @@ -15,7 +16,7 @@ trait ValidatingTrait /** * Error messages as provided by the validator. * - * @var \Illuminate\Support\MessageBag + * @var MessageBag */ protected $validationErrors; @@ -29,7 +30,7 @@ trait ValidatingTrait /** * The Validator factory class used for validation. * - * @var \Illuminate\Validation\Factory + * @var Factory */ protected $validator; @@ -59,7 +60,7 @@ public function getValidating() /** * Set whether the model should attempt validation on saving. * - * @param bool $value + * @param bool $value * @return void */ public function setValidating($value) @@ -82,8 +83,9 @@ public function getThrowValidationExceptions() * Set whether the model should raise an exception or * return a boolean on a failed validation. * - * @param bool $value + * @param bool $value * @return void + * * @throws InvalidArgumentException */ public function setThrowValidationExceptions($value) @@ -106,8 +108,9 @@ public function getInjectUniqueIdentifier() * Set the model to add unique identifier to rules when performing * validation. * - * @param bool $value + * @param bool $value * @return void + * * @throws InvalidArgumentException */ public function setInjectUniqueIdentifier($value) @@ -118,7 +121,7 @@ public function setInjectUniqueIdentifier($value) /** * Get the model. * - * @return \Illuminate\Database\Eloquent\Model + * @return Model */ public function getModel() { @@ -139,6 +142,7 @@ public function getModelAttributes() // them we'll return their raw value instead. if (in_array($key, $this->getDates()) || $this->isDateCastable($key) || $this->isDateCastableWithCustomFormat($key)) { $attributes[$key] = $value; + continue; } @@ -193,7 +197,6 @@ protected function modelValidationAttributeNames() /** * Set the validating attribute names. * - * @param array $attributeNames * @return void */ public function setValidationAttributeNames(?array $attributeNames = null) @@ -235,7 +238,6 @@ protected function rules() /** * Set the global validation rules. * - * @param array $rules * @return void */ public function setRules(?array $rules = null) @@ -246,7 +248,7 @@ public function setRules(?array $rules = null) /** * Get the validation error messages from the model. * - * @return \Illuminate\Support\MessageBag + * @return MessageBag */ public function getErrors() { @@ -256,7 +258,6 @@ public function getErrors() /** * Set the error messages. * - * @param \Illuminate\Support\MessageBag $validationErrors * @return void */ public function setErrors(MessageBag $validationErrors) @@ -280,11 +281,12 @@ public function isValid() * Returns if the model is valid, otherwise throws an exception. * * @return bool - * @throws \Watson\Validating\ValidationException + * + * @throws ValidationException */ public function isValidOrFail() { - if (!$this->isValid()) { + if (! $this->isValid()) { $this->throwValidationException(); } @@ -298,13 +300,12 @@ public function isValidOrFail() */ public function isInvalid() { - return !$this->isValid(); + return ! $this->isValid(); } /** * Force the model to be saved without undergoing validation. * - * @param array $options * @return bool */ public function forceSave(array $options = []) @@ -324,8 +325,8 @@ public function forceSave(array $options = []) * Perform a one-off save that will raise an exception on validation error * instead of returning a boolean (which is the default behaviour). * - * @param array $options * @return bool + * * @throws \Throwable */ public function saveOrFail(array $options = []) @@ -342,6 +343,7 @@ public function saveOrFail(array $options = []) * * @param array $options * @return bool + * * @throws \Throwable */ public function parentSaveOrFail($options) @@ -353,7 +355,6 @@ public function parentSaveOrFail($options) * Perform a one-off save that will return a boolean on * validation error instead of raising an exception. * - * @param array $options * @return bool */ public function saveOrReturn(array $options = []) @@ -364,7 +365,7 @@ public function saveOrReturn(array $options = []) /** * Get the Validator instance. * - * @return \Illuminate\Validation\Factory + * @return Factory */ public function getValidator() { @@ -373,8 +374,6 @@ public function getValidator() /** * Set the Validator instance. - * - * @param \Illuminate\Validation\Factory $validator */ public function setValidator(Factory $validator) { @@ -384,7 +383,7 @@ public function setValidator(Factory $validator) /** * Make a Validator instance for a given ruleset. * - * @param array $rules + * @param array $rules * @return \Illuminate\Contracts\Validation\Validator */ protected function makeValidator($rules = []) @@ -412,7 +411,7 @@ protected function makeValidator($rules = []) /** * Provide a hook to interact with the validator before it is used. * - * @param \Illuminate\Contracts\Validation\Validator $validator + * @param \Illuminate\Contracts\Validation\Validator $validator * @return void */ protected function withValidator($validator) @@ -425,9 +424,10 @@ protected function withValidator($validator) * or not it passes and setting the error messages on the * model if required. * - * @param array $rules + * @param array $rules * @return bool - * @throws \Watson\Validating\ValidationException + * + * @throws ValidationException */ protected function performValidation($rules = []) { @@ -443,7 +443,7 @@ protected function performValidation($rules = []) /** * Throw a validation exception. * - * @throws \Watson\Validating\ValidationException + * @throws ValidationException */ public function throwValidationException() { @@ -474,7 +474,6 @@ public function updateRulesUniques() * primary key to the unique rules so that the validation * will work as expected. * - * @param array $rules * @return array */ protected function injectUniqueIdentifierToRules(array $rules) @@ -506,12 +505,12 @@ protected function injectUniqueIdentifierToRules(array $rules) * Get the dynamic method name for a unique identifier injector rule if it * exists, otherwise return false. * - * @param string $validationRule + * @param string $validationRule * @return mixed */ protected function getUniqueIdentifierInjectorMethod($validationRule) { - $method = 'prepare' . Str::studly($validationRule) . 'Rule'; + $method = 'prepare'.Str::studly($validationRule).'Rule'; return method_exists($this, $method) ? $method : false; } diff --git a/src/ValidationException.php b/src/ValidationException.php index c91d6c7..82fca7e 100644 --- a/src/ValidationException.php +++ b/src/ValidationException.php @@ -2,9 +2,10 @@ namespace Watson\Validating; -use Illuminate\Database\Eloquent\Model; -use Illuminate\Contracts\Validation\Validator; +use Illuminate\Contracts\Support\MessageBag; use Illuminate\Contracts\Support\MessageProvider; +use Illuminate\Contracts\Validation\Validator; +use Illuminate\Database\Eloquent\Model; use Illuminate\Validation\ValidationException as BaseValidationException; class ValidationException extends BaseValidationException implements MessageProvider @@ -12,15 +13,13 @@ class ValidationException extends BaseValidationException implements MessageProv /** * The model with validation errors. * - * @var \Illuminate\Database\Eloquent\Model + * @var Model */ protected $model; /** * Create a new validation exception instance. * - * @param \Illuminate\Contracts\Validation\Validator $validator - * @param \Illuminate\Database\Eloquent\Model $model * @return void */ public function __construct(Validator $validator, Model $model) @@ -33,7 +32,7 @@ public function __construct(Validator $validator, Model $model) /** * Get the model with validation errors. * - * @return \Illuminate\Database\Eloquent\Model + * @return Model */ public function model() { @@ -41,9 +40,9 @@ public function model() } /** - * Get the mdoel with validation errors. + * Get the model with validation errors. * - * @return \Illuminate\Database\Eloquent\Model + * @return Model */ public function getModel() { @@ -53,7 +52,7 @@ public function getModel() /** * Get the validation errors. * - * @return \Illuminate\Contracts\Support\Messagebag + * @return Messagebag */ public function errors() { @@ -63,7 +62,7 @@ public function errors() /** * Get the validation errors. * - * @return \Illuminate\Contracts\Support\MessageBag + * @return Messagebag */ public function getErrors() { @@ -73,7 +72,7 @@ public function getErrors() /** * Get the messages for the instance. * - * @return \Illuminate\Contracts\Support\MessageBag + * @return Messagebag */ public function getMessageBag() { diff --git a/tests/Injectors/UniqueInjectorTest.php b/tests/Injectors/UniqueInjectorTest.php index 10f645a..8a276d2 100644 --- a/tests/Injectors/UniqueInjectorTest.php +++ b/tests/Injectors/UniqueInjectorTest.php @@ -2,19 +2,21 @@ namespace Watson\Validating\Tests\Injectors; +use Illuminate\Database\Eloquent\Model; use Mockery; use Watson\Validating\Tests\TestCase; +use Watson\Validating\ValidatingTrait; class UniqueInjectorTest extends TestCase { public $trait; - public function setUp(): void + protected function setUp(): void { $this->trait = Mockery::mock(UniqueValidatingStub::class)->makePartial(); } - public function testUpdateRulesUniquesWithoutUniques() + public function test_update_rules_uniques_without_uniques() { $this->trait->setRules(['user_id' => ['required']]); @@ -25,7 +27,7 @@ public function testUpdateRulesUniquesWithoutUniques() $this->assertEquals(['user_id' => ['required']], $result); } - public function testUpdateRulesUniquesWithUniquesInfersAttributes() + public function test_update_rules_uniques_with_uniques_infers_attributes() { $this->trait->exists = true; @@ -40,7 +42,7 @@ public function testUpdateRulesUniquesWithUniquesInfersAttributes() $this->assertEquals(['user_id' => ['unique:sqlite.users,user_id,1,id']], $result); } - public function testGetPreparedRulesUniques() + public function test_get_prepared_rules_uniques() { $this->trait->exists = true; @@ -53,7 +55,7 @@ public function testGetPreparedRulesUniques() $this->assertEquals(['user_id' => ['unique:sqlite.users,user_id,1,id']], $result); } - public function testUpdateRulesUniquesWithUniquesAndAdditionalWhereClauseInfersAttributes() + public function test_update_rules_uniques_with_uniques_and_additional_where_clause_infers_attributes() { $this->trait->exists = true; @@ -68,7 +70,7 @@ public function testUpdateRulesUniquesWithUniquesAndAdditionalWhereClauseInfersA $this->assertEquals(['user_id' => ['unique:sqlite.users,user_id,1,id,username,test']], $result); } - public function testUpdateRulesUniquesWithUniquesAndAdditionalWhereClauseInfersAttributesMaintainingNULLValue() + public function test_update_rules_uniques_with_uniques_and_additional_where_clause_infers_attributes_maintaining_null_value() { $this->trait->exists = true; @@ -83,7 +85,7 @@ public function testUpdateRulesUniquesWithUniquesAndAdditionalWhereClauseInfersA $this->assertEquals(['user_id' => ['unique:sqlite.users,user_id,1,id,deleted,NULL']], $result); } - public function testUpdateRulesUniquesWithNonPersistedModelInfersAttributes() + public function test_update_rules_uniques_with_non_persisted_model_infers_attributes() { $this->trait->shouldReceive('getTable')->andReturn('users'); @@ -96,13 +98,13 @@ public function testUpdateRulesUniquesWithNonPersistedModelInfersAttributes() $this->assertEquals(['user_id' => ['unique:sqlite.users,user_id']], $result); } - public function testUpdateRulesUniquesWorksWithMultipleUniques() + public function test_update_rules_uniques_works_with_multiple_uniques() { $this->trait->shouldReceive('getTable')->andReturn('users'); $this->trait->setRules([ 'email' => 'unique', - 'slug' => 'unique' + 'slug' => 'unique', ]); $this->trait->updateRulesUniques(); @@ -111,11 +113,11 @@ public function testUpdateRulesUniquesWorksWithMultipleUniques() $this->assertEquals([ 'email' => ['unique:sqlite.users,email'], - 'slug' => ['unique:sqlite.users,slug'] + 'slug' => ['unique:sqlite.users,slug'], ], $result); } - public function testUpdateRulesUniquesDoesNotOverrideProvidedParameters() + public function test_update_rules_uniques_does_not_override_provided_parameters() { $this->trait->setRules(['users' => 'unique:foo,bar,5,bat']); @@ -127,11 +129,12 @@ public function testUpdateRulesUniquesDoesNotOverrideProvidedParameters() } } -class UniqueValidatingStub extends \Illuminate\Database\Eloquent\Model +class UniqueValidatingStub extends Model { - use \Watson\Validating\ValidatingTrait; + use ValidatingTrait; protected $username = 'test'; + protected $deleted = null; public function getKey() diff --git a/tests/Injectors/UniqueWithInjectorTest.php b/tests/Injectors/UniqueWithInjectorTest.php index a7aabc5..0c9e936 100644 --- a/tests/Injectors/UniqueWithInjectorTest.php +++ b/tests/Injectors/UniqueWithInjectorTest.php @@ -2,24 +2,27 @@ namespace Watson\Validating\Tests\Injectors; +use Illuminate\Database\Eloquent\Model; use Mockery; +use Watson\Validating\Injectors\UniqueWithInjector; use Watson\Validating\Tests\TestCase; +use Watson\Validating\ValidatingTrait; class UniqueWithInjectorTest extends TestCase { public $trait; - public function setUp(): void + protected function setUp(): void { $this->trait = Mockery::mock(UniqueWithValidatingStub::class)->makePartial(); } - public function testUpdateRulesUniquesUniqueWithWithUniquesInfersAttributes() + public function test_update_rules_uniques_unique_with_with_uniques_infers_attributes() { $this->trait->exists = true; $this->trait->setRules([ - 'first_name' => 'unique_with:users,last_name' + 'first_name' => 'unique_with:users,last_name', ]); $this->trait->updateRulesUniques(); @@ -29,12 +32,12 @@ public function testUpdateRulesUniquesUniqueWithWithUniquesInfersAttributes() $this->assertEquals(['first_name' => ['unique_with:users,last_name,1']], $result); } - public function testUpdateRulesUniquesUniqueWithDoesNotOverrideProvidedParameters() + public function test_update_rules_uniques_unique_with_does_not_override_provided_parameters() { $this->trait->exists = true; $this->trait->setRules([ - 'first_name' => 'unique_with:users,last_name,5' + 'first_name' => 'unique_with:users,last_name,5', ]); $this->trait->updateRulesUniques(); @@ -45,10 +48,10 @@ public function testUpdateRulesUniquesUniqueWithDoesNotOverrideProvidedParameter } } -class UniqueWithValidatingStub extends \Illuminate\Database\Eloquent\Model +class UniqueWithValidatingStub extends Model { - use \Watson\Validating\ValidatingTrait; - use \Watson\Validating\Injectors\UniqueWithInjector; + use UniqueWithInjector; + use ValidatingTrait; public function getKey() { diff --git a/tests/TestCase.php b/tests/TestCase.php index 8575877..c55719b 100644 --- a/tests/TestCase.php +++ b/tests/TestCase.php @@ -2,10 +2,10 @@ namespace Watson\Validating\Tests; -use PHPUnit\Framework\TestCase as BaseTestCase; use Mockery\Adapter\Phpunit\MockeryPHPUnitIntegration; +use PHPUnit\Framework\TestCase as BaseTestCase; -abstract class TestCase extends BaseTestCase +class TestCase extends BaseTestCase { use MockeryPHPUnitIntegration; } diff --git a/tests/ValidatingModelTest.php b/tests/ValidatingModelTest.php index 62bf68b..a5478c9 100644 --- a/tests/ValidatingModelTest.php +++ b/tests/ValidatingModelTest.php @@ -3,11 +3,10 @@ namespace Watson\Validating\Tests; use Mockery; -use Watson\Validating\ValidatingModel; class ValidatingModelTest extends TestCase { - public function testGetMessageBagCallsGetErrors() + public function test_get_message_bag_calls_get_errors() { $mock = Mockery::mock('Watson\Validating\ValidatingModel[getErrors]'); diff --git a/tests/ValidatingObserverTest.php b/tests/ValidatingObserverTest.php index 143cc00..9f03084 100644 --- a/tests/ValidatingObserverTest.php +++ b/tests/ValidatingObserverTest.php @@ -2,22 +2,23 @@ namespace Watson\Validating\Tests; -use Mockery; use Illuminate\Support\Facades\Event; +use Mockery; use Watson\Validating\ValidatingObserver; class ValidatingObserverTest extends TestCase { protected $model; + protected $observer; - public function setUp(): void + protected function setUp(): void { $this->model = Mockery::mock('Illuminate\Database\Eloquent\Model'); $this->observer = new ValidatingObserver; } - public function testPerformValidation() + public function test_perform_validation() { $this->model->shouldReceive('getValidating')->once()->andReturn(true); @@ -35,7 +36,7 @@ public function testPerformValidation() $this->assertNotFalse($response); } - public function testValidationStopsIfValidatingEventReturnsNonNull() + public function test_validation_stops_if_validating_event_returns_non_null() { $this->model->shouldReceive('getValidating')->once()->andReturn(true); @@ -46,7 +47,7 @@ public function testValidationStopsIfValidatingEventReturnsNonNull() $this->assertNull($result); } - public function testPerformValidationReturnsFalse() + public function test_perform_validation_returns_false() { $this->model->shouldReceive('getValidating')->once()->andReturn(true); @@ -62,7 +63,7 @@ public function testPerformValidationReturnsFalse() $this->assertFalse($response); } - public function testPerformValidationThrowsException() + public function test_perform_validation_throws_exception() { $this->model->shouldReceive('getValidating')->once()->andReturn(true); @@ -81,7 +82,7 @@ public function testPerformValidationThrowsException() $this->assertFalse($response); } - public function testSavingPerformsValidation() + public function test_saving_performs_validation() { $this->model->shouldReceive('getValidating')->once()->andReturn(true); @@ -98,7 +99,7 @@ public function testSavingPerformsValidation() $this->observer->saving($this->model); } - public function testRestoringPerformsValidation() + public function test_restoring_performs_validation() { $this->model->shouldReceive('getValidating')->once()->andReturn(true); @@ -115,7 +116,7 @@ public function testRestoringPerformsValidation() $this->observer->restoring($this->model); } - public function testDisabledValidationFiresSkippedEvent() + public function test_disabled_validation_fires_skipped_event() { $this->model->shouldReceive('getValidating')->once()->andReturn(false); diff --git a/tests/ValidatingTraitTest.php b/tests/ValidatingTraitTest.php index 6509056..8d7d80d 100644 --- a/tests/ValidatingTraitTest.php +++ b/tests/ValidatingTraitTest.php @@ -2,101 +2,97 @@ namespace Watson\Validating\Tests; -use Mockery; -use Illuminate\Validation\Factory; -use Illuminate\Support\MessageBag; -use Illuminate\Support\Facades\Input; use Illuminate\Database\Eloquent\Model; use Illuminate\Support\Facades\Validator; +use Illuminate\Support\MessageBag; +use Illuminate\Validation\Factory; +use Mockery; +use Watson\Validating\ValidatingInterface; +use Watson\Validating\ValidatingTrait; class ValidatingTraitTest extends TestCase { public $trait; - public function setUp(): void + protected function setUp(): void { $this->trait = Mockery::mock(DatabaseValidatingTraitStub::class)->makePartial(); } - public function testGetValidatingDefaultsToTrue() + public function test_get_validating_defaults_to_true() { $this->assertTrue($this->trait->getValidating()); } - public function testSetValidatingSetsValue() + public function test_set_validating_sets_value() { $this->trait->setValidating(false); $this->assertFalse($this->trait->getValidating()); } - - public function testGetThrowValidationExceptionsDefaultsToFalse() + public function test_get_throw_validation_exceptions_defaults_to_false() { $this->assertFalse($this->trait->getThrowValidationExceptions()); } - public function testSetThrowValidationExceptionsSetsValue() + public function test_set_throw_validation_exceptions_sets_value() { $this->trait->setThrowValidationExceptions(false); $this->assertFalse($this->trait->getThrowValidationExceptions()); } - - public function testGetInjectUniqueIdentifierDefaultsToTrue() + public function test_get_inject_unique_identifier_defaults_to_true() { $this->assertTrue($this->trait->getInjectUniqueIdentifier()); } - public function testSetInjectUniqueIdentifierSetsValue() + public function test_set_inject_unique_identifier_sets_value() { $this->trait->setInjectUniqueIdentifier(false); $this->assertFalse($this->trait->getInjectUniqueIdentifier()); } - - public function testGetsModel() + public function test_gets_model() { $this->assertEquals($this->trait, $this->trait->getModel()); } - public function testGetValidationMessages() + public function test_get_validation_messages() { $this->assertEquals(['bar' => 'baz'], $this->trait->getValidationMessages()); } - public function testModelValidationMessages() + public function test_model_validation_messages() { $this->assertEquals(['bar' => 'baz'], DatabaseValidatingTraitStub::modelValidationMessages()); } - - public function testGetValidationAttributeNames() + public function test_get_validation_attribute_names() { $this->assertEmpty($this->trait->getValidationAttributeNames()); } - public function testModelValidationAttributeNames() + public function test_model_validation_attribute_names() { $this->assertEmpty(DatabaseValidatingTraitStub::modelValidationAttributeNames()); } - public function testSetValidationAttributeNames() + public function test_set_validation_attribute_names() { $this->trait->setValidationAttributeNames(['bar' => 'baz']); $this->assertEquals(['bar' => 'baz'], $this->trait->getValidationAttributeNames()); } - - public function testGetRules() + public function test_get_rules() { $this->assertEquals(['foo' => 'bar', 'def' => 'array'], $this->trait->getRules()); } - public function testRules() + public function test_rules() { $this->trait->shouldReceive('getRules')->once()->andReturn('foo'); @@ -105,21 +101,20 @@ public function testRules() $this->assertEquals('foo', $result); } - public function testSetRules() + public function test_set_rules() { $this->trait->setRules(['bar' => 'foo']); $this->assertEquals(['bar' => 'foo'], $this->trait->getRules()); } - - public function testAttributesAreMutated() + public function test_attributes_are_mutated() { $expected = [ - 'abc' => '123', - 'def' => ['456'], - 'bar' => 'rab', - 'created_at' => '2015-01-01 00:00:00', + 'abc' => '123', + 'def' => ['456'], + 'bar' => 'rab', + 'created_at' => '2015-01-01 00:00:00', 'regular_datetime' => '2015-01-01 00:00:00', 'custom_date' => '2015-01-01', ]; @@ -127,13 +122,12 @@ public function testAttributesAreMutated() $this->assertEquals($expected, $this->trait->getModelAttributes()); } - - public function testGetErrors() + public function test_get_errors() { $this->assertEquals(0, $this->trait->getErrors()->count()); } - public function testSetErrors() + public function test_set_errors() { $messageBag = Mockery::mock(MessageBag::class); @@ -142,8 +136,7 @@ public function testSetErrors() $this->assertSame($messageBag, $this->trait->getErrors()); } - - public function testIsValidReturnsTrueWhenValidationPasses() + public function test_is_valid_returns_true_when_validation_passes() { Validator::shouldReceive('make') ->once() @@ -157,15 +150,15 @@ public function testIsValidReturnsTrueWhenValidationPasses() $this->assertTrue($result); } - public function testIsValidReturnFalseWhenValidationFails() + public function test_is_valid_return_false_when_validation_fails() { $messageBag = Mockery::mock(MessageBag::class); Validator::shouldReceive('make') ->once() ->andReturn(Mockery::mock([ - 'passes' => false, - 'messages' => $messageBag + 'passes' => false, + 'messages' => $messageBag, ])); $result = $this->trait->isValid(); @@ -174,7 +167,7 @@ public function testIsValidReturnFalseWhenValidationFails() $this->assertSame($messageBag, $this->trait->getErrors()); } - public function testIsValidClearsErrors() + public function test_is_valid_clears_errors() { $this->trait->setErrors(Mockery::mock(MessageBag::class)); @@ -183,8 +176,8 @@ public function testIsValidClearsErrors() Validator::shouldReceive('make') ->once() ->andReturn(Mockery::mock([ - 'passes' => true, - 'messages' => $validMessageBag + 'passes' => true, + 'messages' => $validMessageBag, ])); $result = $this->trait->isValid(); @@ -193,7 +186,7 @@ public function testIsValidClearsErrors() $this->assertSame($validMessageBag, $this->trait->getErrors()); } - public function testIsValidOrFailThrowsException() + public function test_is_valid_or_fail_throws_exception() { $this->expectException('Watson\Validating\ValidationException'); @@ -211,7 +204,7 @@ public function testIsValidOrFailThrowsException() $this->trait->isValidOrFail(); } - public function testIsValidOrFailReturnsTrue() + public function test_is_valid_or_fail_returns_true() { $this->trait->shouldReceive('isValid')->once()->andReturn(true); @@ -220,7 +213,7 @@ public function testIsValidOrFailReturnsTrue() $this->assertTrue($result); } - public function testIsInvalidReturnsFalseIfIsValidIsTrue() + public function test_is_invalid_returns_false_if_is_valid_is_true() { $this->trait->shouldReceive('isValid')->once()->andReturn(true); @@ -229,7 +222,7 @@ public function testIsInvalidReturnsFalseIfIsValidIsTrue() $this->assertFalse($result); } - public function testIsInvalidReturnsTrueIfIsValidIsFalse() + public function test_is_invalid_returns_true_if_is_valid_is_false() { $this->trait->shouldReceive('isValid')->once()->andReturn(false); @@ -238,7 +231,7 @@ public function testIsInvalidReturnsTrueIfIsValidIsFalse() $this->assertTrue($result); } - public function testForceSaveSavesOnInvalidModel() + public function test_force_save_saves_on_invalid_model() { $this->trait->shouldReceive('save') ->once() @@ -251,8 +244,7 @@ public function testForceSaveSavesOnInvalidModel() $this->assertTrue($result); } - - public function testSaveOrFailThrowsExceptionOnInvalidModel() + public function test_save_or_fail_throws_exception_on_invalid_model() { $this->expectException('Watson\Validating\ValidationException'); @@ -272,7 +264,7 @@ public function testSaveOrFailThrowsExceptionOnInvalidModel() $this->assertNull($result); } - public function testSaveOrFailReturnsTrueOnValidModel() + public function test_save_or_fail_returns_true_on_valid_model() { $this->trait->shouldReceive('isInvalid')->once()->andReturn(false); @@ -283,15 +275,14 @@ public function testSaveOrFailReturnsTrueOnValidModel() $this->assertTrue($result); } - public function testParentSaveOrFailCallsParentSaveOrFail() + public function test_parent_save_or_fail_calls_parent_save_or_fail() { $result = $this->trait->parentSaveOrFail(['foo' => 'bar']); $this->assertEquals(['foo' => 'bar'], $result); } - - public function testSaveOrReturn() + public function test_save_or_return() { $this->trait->shouldReceive('save')->once()->andReturn('foo'); @@ -300,13 +291,13 @@ public function testSaveOrReturn() $this->assertEquals('foo', $result); } - public function testPerformValidationReturnsFalseOnInvalidModel() + public function test_perform_validation_returns_false_on_invalid_model() { Validator::shouldReceive('make') ->once() ->andReturn(Mockery::mock([ - 'passes' => false, - 'messages' => Mockery::mock(MessageBag::class) + 'passes' => false, + 'messages' => Mockery::mock(MessageBag::class), ])); $this->trait->setThrowValidationExceptions(false); @@ -316,13 +307,13 @@ public function testPerformValidationReturnsFalseOnInvalidModel() $this->assertFalse($result); } - public function testPerformValidationReturnsTrueOnValidModel() + public function test_perform_validation_returns_true_on_valid_model() { Validator::shouldReceive('make') ->once() ->andReturn(Mockery::mock([ 'passes' => true, - 'messages' => Mockery::mock(MessageBag::class) + 'messages' => Mockery::mock(MessageBag::class), ])); $result = $this->trait->performValidation(); @@ -330,7 +321,7 @@ public function testPerformValidationReturnsTrueOnValidModel() $this->assertTrue($result); } - public function testGetValidatorReturnsFactory() + public function test_get_validator_returns_factory() { Validator::shouldReceive('getFacadeRoot') ->once() @@ -341,7 +332,7 @@ public function testGetValidatorReturnsFactory() $this->assertNotNull($validator); } - public function testSetValidator() + public function test_set_validator() { $this->trait->setValidator(Mockery::mock(ValidatorStub::class)); @@ -349,7 +340,7 @@ public function testSetValidator() $this->assertInstanceOf(ValidatorStub::class, $validator, get_class($validator)); } - public function testMakeValidatorSetsValidationAttributeNames() + public function test_make_validator_sets_validation_attribute_names() { $validatorMock = Mockery::mock(ValidatorStub::class); @@ -366,7 +357,7 @@ public function testMakeValidatorSetsValidationAttributeNames() $this->trait->makeValidator(); } - public function testThrowValidationException() + public function test_throw_validation_exception() { $this->expectException('Watson\Validating\ValidationException'); @@ -383,7 +374,7 @@ public function testThrowValidationException() } } -class ValidatorStub extends \Illuminate\Validation\Factory +class ValidatorStub extends Factory { // } @@ -396,29 +387,29 @@ public function saveOrFail(array $options = []) } } -class DatabaseValidatingTraitStub extends ModelStub implements \Watson\Validating\ValidatingInterface +class DatabaseValidatingTraitStub extends ModelStub implements ValidatingInterface { - use \Watson\Validating\ValidatingTrait; + use ValidatingTrait; protected $rules = [ 'foo' => 'bar', - 'def' => 'array' + 'def' => 'array', ]; protected $casts = [ - 'def' => 'array', - 'regular_datettime' => 'datetime', - 'custom_date' => 'datetime:Y-m-d', + 'def' => 'array', + 'regular_datetime' => 'datetime', + 'custom_date' => 'datetime:Y-m-d', ]; protected $validationMessages = [ - 'bar' => 'baz' + 'bar' => 'baz', ]; protected $attributes = [ - 'abc' => '123', - 'def' => '["456"]', - 'bar' => 'bar', + 'abc' => '123', + 'def' => '["456"]', + 'bar' => 'bar', 'created_at' => '2015-01-01 00:00:00', 'regular_datetime' => '2015-01-01 00:00:00', 'custom_date' => '2015-01-01', diff --git a/tests/ValidationExceptionTest.php b/tests/ValidationExceptionTest.php index 4f2b21f..549f7ad 100644 --- a/tests/ValidationExceptionTest.php +++ b/tests/ValidationExceptionTest.php @@ -2,8 +2,8 @@ namespace Watson\Validating\Tests; -use Mockery; use Illuminate\Support\MessageBag; +use Mockery; use Watson\Validating\ValidationException; class ValidationExceptionTest extends TestCase @@ -14,7 +14,7 @@ class ValidationExceptionTest extends TestCase public $exception; - public function setUp(): void + protected function setUp(): void { $translator = Mockery::mock('Illuminate\Contracts\Translation\Translator', [ 'get' => 'The given data was invalid.', @@ -30,26 +30,26 @@ public function setUp(): void $this->exception = new ValidationException($this->validator, $this->model); } - public function testModel() + public function test_model() { $this->assertEquals($this->model, $this->exception->model()); } - public function testGetModel() + public function test_get_model() { $this->assertEquals($this->model, $this->exception->getModel()); } - public function testGetErrors() + public function test_get_errors() { - $this->validator->shouldReceive('errors') - ->once() - ->andReturn('errors'); + $this->validator->shouldReceive('errors') + ->once() + ->andReturn('errors'); - $this->assertEquals('errors', $this->exception->getErrors()); + $this->assertEquals('errors', $this->exception->getErrors()); } - public function testGetsMessageBag() + public function test_gets_message_bag() { $this->validator->shouldReceive('errors') ->once()