diff --git a/.phpunit.result.cache b/.phpunit.result.cache index 2f14574..edc4bf1 100644 --- a/.phpunit.result.cache +++ b/.phpunit.result.cache @@ -1 +1 @@ -{"version":1,"defects":{"Test\\Schema\\SCHStringTest::testStringObject":4,"Test\\Schema\\SCHStringTest::testStringObjectIsNotKey":3,"Test\\Schema\\SCHStringTest::testStringEmailKey":3,"Test\\Schema\\SCHStringTest::testStringObjectIsKey":4,"Test\\Schema\\StringSchemaTest::testStringURLKey":4,"Test\\Schema\\StringSchemaTest::testStringMatchKey":4,"Test\\Schema\\StringSchemaTest::testStringMinimumKey":4,"Test\\Schema\\NumberSchemaTest::testStringIsObject":4,"Test\\Schema\\NumberSchemaTest::testRequiredKey":4,"Test\\Schema\\DateSchemaTest::testDateTodayKey":4,"Test\\Schema\\BooleanSchemaTest::testBooleanIsRequireddKey":4,"Test\\Script\\StringValidationTest::testStringIsObject":4,"Test\\Script\\StringValidationTest::testStringObjectException":4,"Test\\Script\\StringValidationTest::testException":3,"Test\\Script\\StringValidationTest::testStringMin":3,"Test\\Script\\StringValidationTest::testStringMaxError":4,"Test\\Script\\StringValidationTest::testStringMaxSuccess":3,"Test\\Script\\StringValidationTest::testStringValidationSourceDataException":4,"Test\\Script\\StringValidationTest::testStringValidationSchemaException":4,"Test\\Script\\StringValidationTest::testStringMinError":4,"Test\\Script\\StringValidationTest::testStringMinSuccess":3,"Test\\Script\\StringValidationTest::testStringEmailError":3,"Test\\Script\\StringValidationTest::testStringURLSuccess":4,"Test\\Script\\StringValidationTest::testStringRequiredSuccess":4,"Test\\Script\\StringValidationTest::testStringRequiredErrors":3,"Test\\Script\\StringValidationTest::testStringRequiredErrorsUnknown":4,"Test\\Script\\StringValidationTest::testStringMatchSuccess":3,"Test\\Script\\StringValidationTest::testStringMatchErrors":3,"Test\\Schema\\StringSchemaTest::testStringIsObject":4,"Test\\Schema\\StringSchemaTest::testStringObjectIsKey":4,"Test\\Schema\\StringSchemaTest::testStringEmailKey":4,"Test\\Schema\\StringSchemaTest::testStringMaximumKey":4,"Test\\Schema\\DateSchemaTest::testStringIsObject":4,"Test\\Schema\\DateSchemaTest::testStringObjectIsKey":4,"Test\\Schema\\DateSchemaTest::testDateNowKey":4,"Test\\Schema\\NumberSchemaTest::testStringObjectIsKey":4,"Test\\Schema\\NumberSchemaTest::testNumberPositiveKey":4},"times":{"Test\\Schema\\SCHStringTest::testStringObject":0.021,"Test\\Schema\\SCHStringTest::testStringObjectIsKey":0,"Test\\Schema\\SCHStringTest::testStringObjectIsNotKey":0.01,"Test\\Schema\\SCHStringTest::testStringEmailKey":0.001,"Test\\Schema\\SCHStringTest::testStringIsObject":0.008,"Test\\Schema\\StringSchemaTest::testStringIsObject":0.009,"Test\\Schema\\StringSchemaTest::testStringObjectIsKey":0.001,"Test\\Schema\\StringSchemaTest::testStringEmailKey":0.001,"Test\\Schema\\StringSchemaTest::testStringURLKey":0,"Test\\Schema\\StringSchemaTest::testStringMatchKey":0,"Test\\Schema\\StringSchemaTest::testStringMinimumKey":0,"Test\\Schema\\StringSchemaTest::testStringMaximumKey":0,"Test\\Schema\\NumberSchemaTest::testStringIsObject":0.008,"Test\\Schema\\NumberSchemaTest::testStringObjectIsKey":0,"Test\\Schema\\NumberSchemaTest::testRequiredKey":0,"Test\\Schema\\NumberSchemaTest::testNumberPositiveKey":0,"Test\\Schema\\DateSchemaTest::testStringIsObject":0.022,"Test\\Schema\\DateSchemaTest::testStringObjectIsKey":0.002,"Test\\Schema\\DateSchemaTest::testDateNowKey":0.002,"Test\\Schema\\DateSchemaTest::testDateTodayKey":0,"Test\\Schema\\BooleanSchemaTest::testBooleanIsObject":0.007,"Test\\Schema\\BooleanSchemaTest::testStringObjectIsKey":0.001,"Test\\Schema\\BooleanSchemaTest::testBooleanIsRequireddKey":0.001,"Test\\Schema\\BooleanSchemaTest::testBooleanIsValidKey":0,"Test\\Script\\StringValidationTest::testStringIsObject":0,"Test\\Script\\StringValidationTest::testStringObjectException":0.006,"Test\\Script\\StringValidationTest::testException":0.007,"Test\\Script\\StringValidationTest::testStringMin":0.001,"Test\\Script\\StringValidationTest::testStringValidationException":0.006,"Test\\Script\\StringValidationTest::testStringValidationSchemaException":0,"Test\\Script\\StringValidationTest::testStringValidationSourceDataException":0.007,"Test\\Script\\StringValidationTest::testStringMinError":0,"Test\\Script\\StringValidationTest::testStringMinSuccess":0,"Test\\Script\\StringValidationTest::testStringMaxError":0,"Test\\Script\\StringValidationTest::testStringMaxSuccess":0,"Test\\Script\\StringValidationTest::testStringEmailError":0.001,"Test\\Script\\StringValidationTest::testStringEmailSuccess":0,"Test\\Script\\StringValidationTest::testStringUrlError":0.008,"Test\\Script\\StringValidationTest::testStringURLError":0,"Test\\Script\\StringValidationTest::testStringURLSuccess":0.008,"Test\\Script\\StringValidationTest::testStringRequiredSuccess":0.001,"Test\\Script\\StringValidationTest::testStringRequiredErrors":0,"Test\\Script\\StringValidationTest::testStringRequiredErrorsUnknow":0,"Test\\Script\\StringValidationTest::testStringRequiredErrorsUnknown":0,"Test\\Script\\StringValidationTest::testStringMatchErrors":0,"Test\\Script\\StringValidationTest::testStringMatchSuccess":0,"Test\\Script\\StringValidationTest::testStringValidationFieldNotDefinedException":0,"Test\\ValidationTest::testValidationObject":0.008}} \ No newline at end of file +{"version":1,"defects":{"Test\\Schema\\SCHStringTest::testStringObject":4,"Test\\Schema\\SCHStringTest::testStringObjectIsNotKey":3,"Test\\Schema\\SCHStringTest::testStringEmailKey":3,"Test\\Schema\\SCHStringTest::testStringObjectIsKey":4,"Test\\Schema\\StringSchemaTest::testStringURLKey":4,"Test\\Schema\\StringSchemaTest::testStringMatchKey":4,"Test\\Schema\\StringSchemaTest::testStringMinimumKey":4,"Test\\Schema\\NumberSchemaTest::testStringIsObject":4,"Test\\Schema\\NumberSchemaTest::testRequiredKey":4,"Test\\Schema\\DateSchemaTest::testDateTodayKey":4,"Test\\Schema\\BooleanSchemaTest::testBooleanIsRequireddKey":4,"Test\\Script\\StringValidationTest::testStringIsObject":4,"Test\\Script\\StringValidationTest::testStringObjectException":4,"Test\\Script\\StringValidationTest::testException":3,"Test\\Script\\StringValidationTest::testStringMin":3,"Test\\Script\\StringValidationTest::testStringMaxError":4,"Test\\Script\\StringValidationTest::testStringMaxSuccess":3,"Test\\Script\\StringValidationTest::testStringValidationSourceDataException":4,"Test\\Script\\StringValidationTest::testStringValidationSchemaException":4,"Test\\Script\\StringValidationTest::testStringMinError":4,"Test\\Script\\StringValidationTest::testStringMinSuccess":3,"Test\\Script\\StringValidationTest::testStringEmailError":3,"Test\\Script\\StringValidationTest::testStringURLSuccess":4,"Test\\Script\\StringValidationTest::testStringRequiredSuccess":4,"Test\\Script\\StringValidationTest::testStringRequiredErrors":3,"Test\\Script\\StringValidationTest::testStringRequiredErrorsUnknown":4,"Test\\Script\\StringValidationTest::testStringMatchSuccess":3,"Test\\Script\\StringValidationTest::testStringMatchErrors":3,"Test\\Schema\\StringSchemaTest::testStringIsObject":4,"Test\\Schema\\StringSchemaTest::testStringObjectIsKey":4,"Test\\Schema\\StringSchemaTest::testStringEmailKey":4,"Test\\Schema\\StringSchemaTest::testStringMaximumKey":4,"Test\\Schema\\DateSchemaTest::testStringIsObject":4,"Test\\Schema\\DateSchemaTest::testStringObjectIsKey":4,"Test\\Schema\\DateSchemaTest::testDateNowKey":4,"Test\\Schema\\NumberSchemaTest::testStringObjectIsKey":4,"Test\\Schema\\NumberSchemaTest::testNumberPositiveKey":4,"Test\\Schema\\BooleanSchemaTest::testBooleanIsObject":4,"Test\\Schema\\BooleanSchemaTest::testStringObjectIsKey":4,"Test\\Schema\\BooleanSchemaTest::testBooleanIsValidKey":3,"Test\\ValidationTest::testValidationStringObject":3,"Test\\ValidationTest::testValidationStringErrorObject":3},"times":{"Test\\Schema\\SCHStringTest::testStringObject":0.021,"Test\\Schema\\SCHStringTest::testStringObjectIsKey":0,"Test\\Schema\\SCHStringTest::testStringObjectIsNotKey":0.01,"Test\\Schema\\SCHStringTest::testStringEmailKey":0.001,"Test\\Schema\\SCHStringTest::testStringIsObject":0.008,"Test\\Schema\\StringSchemaTest::testStringIsObject":0.005,"Test\\Schema\\StringSchemaTest::testStringObjectIsKey":0,"Test\\Schema\\StringSchemaTest::testStringEmailKey":0,"Test\\Schema\\StringSchemaTest::testStringURLKey":0,"Test\\Schema\\StringSchemaTest::testStringMatchKey":0,"Test\\Schema\\StringSchemaTest::testStringMinimumKey":0,"Test\\Schema\\StringSchemaTest::testStringMaximumKey":0,"Test\\Schema\\NumberSchemaTest::testStringIsObject":0.005,"Test\\Schema\\NumberSchemaTest::testStringObjectIsKey":0,"Test\\Schema\\NumberSchemaTest::testRequiredKey":0,"Test\\Schema\\NumberSchemaTest::testNumberPositiveKey":0,"Test\\Schema\\DateSchemaTest::testStringIsObject":0.006,"Test\\Schema\\DateSchemaTest::testStringObjectIsKey":0,"Test\\Schema\\DateSchemaTest::testDateNowKey":0,"Test\\Schema\\DateSchemaTest::testDateTodayKey":0,"Test\\Schema\\BooleanSchemaTest::testBooleanIsObject":0.005,"Test\\Schema\\BooleanSchemaTest::testStringObjectIsKey":0,"Test\\Schema\\BooleanSchemaTest::testBooleanIsRequireddKey":0,"Test\\Schema\\BooleanSchemaTest::testBooleanIsValidKey":0,"Test\\Script\\StringValidationTest::testStringIsObject":0,"Test\\Script\\StringValidationTest::testStringObjectException":0.006,"Test\\Script\\StringValidationTest::testException":0.007,"Test\\Script\\StringValidationTest::testStringMin":0.001,"Test\\Script\\StringValidationTest::testStringValidationException":0.006,"Test\\Script\\StringValidationTest::testStringValidationSchemaException":0,"Test\\Script\\StringValidationTest::testStringValidationSourceDataException":0.007,"Test\\Script\\StringValidationTest::testStringMinError":0,"Test\\Script\\StringValidationTest::testStringMinSuccess":0,"Test\\Script\\StringValidationTest::testStringMaxError":0,"Test\\Script\\StringValidationTest::testStringMaxSuccess":0,"Test\\Script\\StringValidationTest::testStringEmailError":0.001,"Test\\Script\\StringValidationTest::testStringEmailSuccess":0,"Test\\Script\\StringValidationTest::testStringUrlError":0.008,"Test\\Script\\StringValidationTest::testStringURLError":0,"Test\\Script\\StringValidationTest::testStringURLSuccess":0.008,"Test\\Script\\StringValidationTest::testStringRequiredSuccess":0.001,"Test\\Script\\StringValidationTest::testStringRequiredErrors":0,"Test\\Script\\StringValidationTest::testStringRequiredErrorsUnknow":0,"Test\\Script\\StringValidationTest::testStringRequiredErrorsUnknown":0,"Test\\Script\\StringValidationTest::testStringMatchErrors":0,"Test\\Script\\StringValidationTest::testStringMatchSuccess":0,"Test\\Script\\StringValidationTest::testStringValidationFieldNotDefinedException":0,"Test\\ValidationTest::testValidationObject":0.016,"Test\\ValidationTest::testValidationStringObject":0.005,"Test\\ValidationTest::testValidationStringErrorObject":0.009}} \ No newline at end of file diff --git a/LICENSE b/LICENSE index 261eeb9..d91c566 100644 --- a/LICENSE +++ b/LICENSE @@ -186,7 +186,7 @@ same "printed page" as the copyright notice for easier identification within third-party archives. - Copyright [yyyy] [name of copyright owner] + Copyright 2022 Ibrahim Mussa Boss Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/src/Providers/SChemaProvider.php b/src/Providers/SChemaProvider.php index 8100577..cef59b8 100644 --- a/src/Providers/SChemaProvider.php +++ b/src/Providers/SChemaProvider.php @@ -9,6 +9,11 @@ abstract class SChemaProvider implements SchemaContracts protected array $schema=[]; protected string $source; + function __construct(string $type) + { + $this->source = $type; + $this->schema[$this->source] = []; + } /** * @param $rule * @return SChemaProvider diff --git a/src/Schema/BooleanSchema.php b/src/Schema/BooleanSchema.php index f7ea8b5..f75c2f6 100644 --- a/src/Schema/BooleanSchema.php +++ b/src/Schema/BooleanSchema.php @@ -19,7 +19,7 @@ class BooleanSchema function __construct() { - $this->source = "VBolean"; + $this->source = "Boolean"; $this->schema[$this->source]=[]; } diff --git a/src/Schema/DateSchema.php b/src/Schema/DateSchema.php index 27ac866..ad296ce 100644 --- a/src/Schema/DateSchema.php +++ b/src/Schema/DateSchema.php @@ -12,8 +12,7 @@ class DateSchema extends SChemaProvider { function __construct() { - $this->source="VDate"; - $this->schema[$this->source]=[]; + parent::__construct('Date'); } /** diff --git a/src/Schema/NumberSchema.php b/src/Schema/NumberSchema.php index b244c2c..9afde33 100644 --- a/src/Schema/NumberSchema.php +++ b/src/Schema/NumberSchema.php @@ -18,8 +18,7 @@ class NumberSchema extends SChemaProvider { function __construct() { - $this->source="VNumber"; - $this->schema[$this->source]=[]; + parent::__construct("Number"); } /** diff --git a/src/Schema/StringSchema.php b/src/Schema/StringSchema.php index aa2b98a..c0a6eed 100644 --- a/src/Schema/StringSchema.php +++ b/src/Schema/StringSchema.php @@ -17,8 +17,7 @@ class StringSchema extends SChemaProvider { function __construct() { - $this->source="String"; - $this->schema[$this->source]=[]; + parent::__construct('String'); } function email(): StringSchema diff --git a/test/Schema/BooleanSchemaTest.php b/test/Schema/BooleanSchemaTest.php index fb3238f..f0b0394 100644 --- a/test/Schema/BooleanSchemaTest.php +++ b/test/Schema/BooleanSchemaTest.php @@ -18,19 +18,19 @@ function testBooleanIsObject() function testStringObjectIsKey() { $booleanSchema = new BooleanSchema(); - $this->assertArrayHasKey('VBolean', $booleanSchema->check()); + $this->assertArrayHasKey('Boolean', $booleanSchema->check()); } function testBooleanIsRequireddKey() { $booleanSchema = new BooleanSchema(); - $subset_array = ['VBolean' => ['required' => true]]; + $subset_array = ['Boolean' => ['required' => true]]; $this->assertEquals($subset_array, $booleanSchema->required()->check()); } function testBooleanIsValidKey() { $booleanSchema = new BooleanSchema(); - $subset_array = ['VBolean' => ['isValid' => true]]; + $subset_array = ['Boolean' => ['isValid' => true]]; $this->assertEquals($subset_array, $booleanSchema->isValid()->check()); } } \ No newline at end of file diff --git a/test/Schema/DateSchemaTest.php b/test/Schema/DateSchemaTest.php index 0c9d2b8..71029fe 100644 --- a/test/Schema/DateSchemaTest.php +++ b/test/Schema/DateSchemaTest.php @@ -18,19 +18,19 @@ function testStringIsObject() function testStringObjectIsKey() { $dateSchema = new DateSchema(); - $this->assertArrayHasKey('VDate', $dateSchema->check()); + $this->assertArrayHasKey('Date', $dateSchema->check()); } function testDateNowKey() { $dateSchema = new DateSchema(); - $subset_array = ['VDate' => ['now' => true]]; + $subset_array = ['Date' => ['now' => true]]; $this->assertEquals($subset_array, $dateSchema->now()->check()); } function testDateTodayKey() { $dateSchema = new DateSchema(); - $subset_array = ['VDate' => ['today' => true]]; + $subset_array = ['Date' => ['today' => true]]; $this->assertEquals($subset_array, $dateSchema->today()->check()); } } \ No newline at end of file diff --git a/test/Schema/NumberSchemaTest.php b/test/Schema/NumberSchemaTest.php index a3399f7..09e173c 100644 --- a/test/Schema/NumberSchemaTest.php +++ b/test/Schema/NumberSchemaTest.php @@ -18,19 +18,19 @@ function testStringIsObject() function testStringObjectIsKey() { $numberSchema = new NumberSchema(); - $this->assertArrayHasKey('VNumber', $numberSchema->check()); + $this->assertArrayHasKey('Number', $numberSchema->check()); } function testRequiredKey() { $numberSchema = new NumberSchema(); - $subset_array = ['VNumber' => ['required' => true]]; + $subset_array = ['Number' => ['required' => true]]; $this->assertEquals($subset_array, $numberSchema->required()->check()); } function testNumberPositiveKey() { $numberSchema = new NumberSchema(); - $subset_array = ['VNumber' => ['positive' => true]]; + $subset_array = ['Number' => ['positive' => true]]; $this->assertEquals($subset_array, $numberSchema->positive()->check()); } } \ No newline at end of file diff --git a/test/Schema/VBolean.php b/test/Schema/VBolean.php deleted file mode 100644 index 444f91e..0000000 --- a/test/Schema/VBolean.php +++ /dev/null @@ -1,16 +0,0 @@ -assertIsObject($validate); } + function testValidationStringObject(){ + $validate = new Validate(); + $schema=["name"=>$validate->string()->min(3)->max(10)->required()->check()]; + $expected=[ + "name"=>[ + "String"=>[ + "min"=>3, + "max"=>10, + "required"=>true + ] + ] + ]; + $this->assertEquals($schema,$expected); + } + function testValidationStringErrorObject(){ + $validate = new Validate(); + $schema=["name"=>$validate->string()->min(3)->max(10)->required()]; + $expected=[ + "name"=>[ + "string"=>[ + "min"=>3, + "max"=>10, + "required"=>true + ] + ] + ]; + $this->assertIsNotArray($schema["name"]); + $this->assertNotEquals($expected,$schema); + } } \ No newline at end of file