Merge branch 'release/3.1.0'
This commit is contained in:
commit
46d7692ded
12 changed files with 93 additions and 33 deletions
7
.woodpecker/code-style.yml
Normal file
7
.woodpecker/code-style.yml
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
pipeline:
|
||||||
|
code-style:
|
||||||
|
image: composer
|
||||||
|
commands:
|
||||||
|
- composer global config repositories.repo-name vcs https://git.digital-competence.de/Packages/php-codesniffer
|
||||||
|
- composer global require digicomp/php-codesniffer:@dev
|
||||||
|
- composer global exec -- phpcs --runtime-set ignore_warnings_on_exit 1 --standard=DigiComp Classes/ Migrations/ Tests/ Resources/Private/
|
25
.woodpecker/test.yml
Normal file
25
.woodpecker/test.yml
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
workspace:
|
||||||
|
base: /woodpecker
|
||||||
|
path: package
|
||||||
|
|
||||||
|
matrix:
|
||||||
|
FLOW_VERSION:
|
||||||
|
- 6.3
|
||||||
|
|
||||||
|
pipeline:
|
||||||
|
functional-tests:
|
||||||
|
image: thecodingmachine/php:7.4-v4-cli
|
||||||
|
environment:
|
||||||
|
# Enable the PDO_SQLITE extension
|
||||||
|
- "PHP_EXTENSION_PDO_SQLITE=1"
|
||||||
|
- "FLOW_VERSION=${FLOW_VERSION}"
|
||||||
|
- "NEOS_BUILD_DIR=/woodpecker/Build-${FLOW_VERSION}"
|
||||||
|
commands:
|
||||||
|
- "sudo mkdir $NEOS_BUILD_DIR"
|
||||||
|
- "sudo chown -R docker:docker $NEOS_BUILD_DIR"
|
||||||
|
- "cd $NEOS_BUILD_DIR"
|
||||||
|
- "composer create-project --no-install neos/flow-base-distribution:^$FLOW_VERSION ."
|
||||||
|
- "composer config repositories.repo-name path /woodpecker/package"
|
||||||
|
- "composer remove --dev neos/behat"
|
||||||
|
- "composer require digicomp/settingvalidator:@dev"
|
||||||
|
- "bin/phpunit --configuration Build/BuildEssentials/PhpUnit/FunctionalTests.xml Packages/Application/DigiComp.SettingValidator/Tests/Functional"
|
|
@ -1,5 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace DigiComp\SettingValidator;
|
namespace DigiComp\SettingValidator;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -22,17 +24,18 @@ use Neos\Flow\Package\Package as NeosFlowPackagePackage;
|
||||||
class Package extends NeosFlowPackagePackage
|
class Package extends NeosFlowPackagePackage
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* @param Bootstrap $bootstrap
|
* @inheritDoc
|
||||||
*/
|
*/
|
||||||
public function boot(Bootstrap $bootstrap): void
|
public function boot(Bootstrap $bootstrap): void
|
||||||
{
|
{
|
||||||
parent::boot($bootstrap);
|
parent::boot($bootstrap);
|
||||||
|
|
||||||
$dispatcher = $bootstrap->getSignalSlotDispatcher();
|
$dispatcher = $bootstrap->getSignalSlotDispatcher();
|
||||||
|
|
||||||
$dispatcher->connect(
|
$dispatcher->connect(
|
||||||
ConfigurationManager::class,
|
ConfigurationManager::class,
|
||||||
'configurationManagerReady',
|
'configurationManagerReady',
|
||||||
function (ConfigurationManager $configurationManager) {
|
function (ConfigurationManager $configurationManager): void {
|
||||||
$configurationManager->registerConfigurationType('Validation');
|
$configurationManager->registerConfigurationType('Validation');
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace DigiComp\SettingValidator\Validation\Validator;
|
namespace DigiComp\SettingValidator\Validation\Validator;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -8,11 +8,6 @@ DigiComp\SettingValidator\Tests\Functional\Fixtures\TestObject:
|
||||||
expectedValue: false
|
expectedValue: false
|
||||||
Grumble: ~
|
Grumble: ~
|
||||||
|
|
||||||
TrueValidator:
|
|
||||||
self:
|
|
||||||
BooleanValue:
|
|
||||||
expectedValue: true
|
|
||||||
|
|
||||||
DigiComp\SettingValidator\Tests\Functional\Fixtures\TestValidationGroupsCustomObject:
|
DigiComp\SettingValidator\Tests\Functional\Fixtures\TestValidationGroupsCustomObject:
|
||||||
self:
|
self:
|
||||||
DigiComp.SettingValidator:Settings:
|
DigiComp.SettingValidator:Settings:
|
||||||
|
@ -36,3 +31,8 @@ GroupValidatorCustom:
|
||||||
expectedValue: false
|
expectedValue: false
|
||||||
validationGroups:
|
validationGroups:
|
||||||
- "Custom"
|
- "Custom"
|
||||||
|
|
||||||
|
TrueValidator:
|
||||||
|
self:
|
||||||
|
BooleanValue:
|
||||||
|
expectedValue: true
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace Neos\Flow\Core\Migrations;
|
namespace Neos\Flow\Core\Migrations;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -15,11 +17,14 @@ class Version20170603120900 extends AbstractMigration
|
||||||
return 'DigiComp.SettingValidator-20170603120900';
|
return 'DigiComp.SettingValidator-20170603120900';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @inheritDoc
|
||||||
|
*/
|
||||||
public function up(): void
|
public function up(): void
|
||||||
{
|
{
|
||||||
$this->processConfiguration(
|
$this->processConfiguration(
|
||||||
'Validation',
|
'Validation',
|
||||||
function (array &$configuration) {
|
function (array &$configuration): void {
|
||||||
foreach ($configuration as $validatorName => &$validators) {
|
foreach ($configuration as $validatorName => &$validators) {
|
||||||
// guard that protects configuration, which has already the new format:
|
// guard that protects configuration, which has already the new format:
|
||||||
if (isset($validators['properties']) || isset($validators['self'])) {
|
if (isset($validators['properties']) || isset($validators['self'])) {
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace DigiComp\SettingValidator\Tests\Functional\Fixtures;
|
namespace DigiComp\SettingValidator\Tests\Functional\Fixtures;
|
||||||
|
|
||||||
use Neos\Flow\Annotations as Flow;
|
use Neos\Flow\Annotations as Flow;
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace DigiComp\SettingValidator\Tests\Functional\Fixtures;
|
namespace DigiComp\SettingValidator\Tests\Functional\Fixtures;
|
||||||
|
|
||||||
class TestValidationGroupsCustomObject
|
class TestValidationGroupsCustomObject
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace DigiComp\SettingValidator\Tests\Functional\Fixtures;
|
namespace DigiComp\SettingValidator\Tests\Functional\Fixtures;
|
||||||
|
|
||||||
class TestValidationGroupsDefaultObject
|
class TestValidationGroupsDefaultObject
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace DigiComp\SettingValidator\Tests\Functional;
|
namespace DigiComp\SettingValidator\Tests\Functional;
|
||||||
|
|
||||||
use DigiComp\SettingValidator\Tests\Functional\Fixtures\TestObject;
|
use DigiComp\SettingValidator\Tests\Functional\Fixtures\TestObject;
|
||||||
|
@ -20,11 +22,11 @@ class SettingsValidatorTest extends FunctionalTestCase
|
||||||
*/
|
*/
|
||||||
public function ifNoNameIsGivenClassNameIsUsed(): void
|
public function ifNoNameIsGivenClassNameIsUsed(): void
|
||||||
{
|
{
|
||||||
$validator = $this->objectManager->get(SettingsValidator::class);
|
$result = $this->objectManager->get(SettingsValidator::class)->validate(new TestObject());
|
||||||
$result = $validator->validate(new TestObject());
|
|
||||||
$this->assertTrue($result->hasErrors());
|
self::assertTrue($result->hasErrors());
|
||||||
$this->assertCount(1, $result->getFlattenedErrors());
|
self::assertCount(1, $result->getFlattenedErrors());
|
||||||
$this->assertCount(1, $result->forProperty('shouldBeFalse')->getErrors());
|
self::assertCount(1, $result->forProperty('shouldBeFalse')->getErrors());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -35,11 +37,13 @@ class SettingsValidatorTest extends FunctionalTestCase
|
||||||
*/
|
*/
|
||||||
public function conjunctionValidationWorksAsExpected(): void
|
public function conjunctionValidationWorksAsExpected(): void
|
||||||
{
|
{
|
||||||
$validatorResolver = $this->objectManager->get(ValidatorResolver::class);
|
$result = $this->objectManager
|
||||||
$validator = $validatorResolver->getBaseValidatorConjunction(TestObject::class);
|
->get(ValidatorResolver::class)
|
||||||
$result = $validator->validate(new TestObject());
|
->getBaseValidatorConjunction(TestObject::class)
|
||||||
$this->assertTrue($result->hasErrors());
|
->validate(new TestObject());
|
||||||
$this->assertCount(1, $result->getFlattenedErrors());
|
|
||||||
|
self::assertTrue($result->hasErrors());
|
||||||
|
self::assertCount(1, $result->getFlattenedErrors());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -48,11 +52,13 @@ class SettingsValidatorTest extends FunctionalTestCase
|
||||||
*/
|
*/
|
||||||
public function defaultValidationGroupWorks(): void
|
public function defaultValidationGroupWorks(): void
|
||||||
{
|
{
|
||||||
$validator = $this->objectManager->get(SettingsValidator::class, ['validationGroups' => ['Default']]);
|
$result = $this->objectManager
|
||||||
$result = $validator->validate(new TestValidationGroupsDefaultObject());
|
->get(SettingsValidator::class, ['validationGroups' => ['Default']])
|
||||||
$this->assertTrue($result->hasErrors(), 'No Errors for validation group "Default"');
|
->validate(new TestValidationGroupsDefaultObject());
|
||||||
$this->assertCount(1, $result->getFlattenedErrors(), 'Got a non expected number of errors for group "Default"');
|
|
||||||
$this->assertCount(1, $result->forProperty('shouldBeTrue')->getErrors(), 'Got no error for property');
|
self::assertTrue($result->hasErrors(), 'No errors for validation group "Default"');
|
||||||
|
self::assertCount(1, $result->getFlattenedErrors(), 'Got a non expected number of errors for group "Default"');
|
||||||
|
self::assertCount(1, $result->forProperty('shouldBeTrue')->getErrors(), 'Got no error for property');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -61,10 +67,12 @@ class SettingsValidatorTest extends FunctionalTestCase
|
||||||
*/
|
*/
|
||||||
public function customValidationGroupWorks(): void
|
public function customValidationGroupWorks(): void
|
||||||
{
|
{
|
||||||
$validator = $this->objectManager->get(SettingsValidator::class, ['validationGroups' => ['Custom']]);
|
$result = $this->objectManager
|
||||||
$result = $validator->validate(new TestValidationGroupsCustomObject());
|
->get(SettingsValidator::class, ['validationGroups' => ['Custom']])
|
||||||
$this->assertTrue($result->hasErrors(), 'No Errors for validation group "Custom"');
|
->validate(new TestValidationGroupsCustomObject());
|
||||||
$this->assertCount(1, $result->getFlattenedErrors(), 'Got a non expected number of errors for group "Custom"');
|
|
||||||
$this->assertCount(1, $result->forProperty('shouldBeFalse')->getErrors(), 'Got no error for property');
|
self::assertTrue($result->hasErrors(), 'No errors for validation group "Custom"');
|
||||||
|
self::assertCount(1, $result->getFlattenedErrors(), 'Got a non expected number of errors for group "Custom"');
|
||||||
|
self::assertCount(1, $result->forProperty('shouldBeFalse')->getErrors(), 'Got no error for property');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,10 @@
|
||||||
"type": "neos-package",
|
"type": "neos-package",
|
||||||
"require": {
|
"require": {
|
||||||
"neos/flow": "^6.3.5",
|
"neos/flow": "^6.3.5",
|
||||||
"php": "~7.4.0"
|
"php": ">=7.4"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"phpunit/phpunit": "~8.5"
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
"psr-4": {
|
"psr-4": {
|
||||||
|
@ -21,7 +24,8 @@
|
||||||
"package-key": "DigiComp.SettingValidator"
|
"package-key": "DigiComp.SettingValidator"
|
||||||
},
|
},
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
"dev-develop": "3.0.x-dev",
|
"dev-develop": "3.1.x-dev",
|
||||||
|
"dev-version/2.x-dev": "2.1.x-dev",
|
||||||
"dev-version/1.x-dev": "1.0.x-dev"
|
"dev-version/1.x-dev": "1.0.x-dev"
|
||||||
},
|
},
|
||||||
"applied-flow-migrations": [
|
"applied-flow-migrations": [
|
||||||
|
@ -65,12 +69,12 @@
|
||||||
{
|
{
|
||||||
"name": "Ferdinand Kuhl",
|
"name": "Ferdinand Kuhl",
|
||||||
"email": "f.kuhl@digital-competence.de",
|
"email": "f.kuhl@digital-competence.de",
|
||||||
"homepage": "http://www.digital-competence.de",
|
"homepage": "https://www.digital-competence.de",
|
||||||
"role": "Developer"
|
"role": "Developer"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"homepage": "https://github.com/fcool/DigiComp.SettingValidator",
|
"homepage": "https://github.com/digital-competence/DigiComp.SettingValidator",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"Neos",
|
"Neos",
|
||||||
"Flow",
|
"Flow",
|
||||||
|
|
Loading…
Add table
Reference in a new issue