summaryrefslogtreecommitdiff
path: root/www/wiki/vendor/param-processor/param-processor/tests/Unit/ProcessingResultTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'www/wiki/vendor/param-processor/param-processor/tests/Unit/ProcessingResultTest.php')
-rw-r--r--www/wiki/vendor/param-processor/param-processor/tests/Unit/ProcessingResultTest.php89
1 files changed, 89 insertions, 0 deletions
diff --git a/www/wiki/vendor/param-processor/param-processor/tests/Unit/ProcessingResultTest.php b/www/wiki/vendor/param-processor/param-processor/tests/Unit/ProcessingResultTest.php
new file mode 100644
index 00000000..e90209a4
--- /dev/null
+++ b/www/wiki/vendor/param-processor/param-processor/tests/Unit/ProcessingResultTest.php
@@ -0,0 +1,89 @@
+<?php
+
+namespace ParamProcessor\Tests\Unit;
+
+use ParamProcessor\ProcessedParam;
+use ParamProcessor\ProcessingError;
+use ParamProcessor\ProcessingResult;
+use PHPUnit\Framework\TestCase;
+
+/**
+ * @covers \ParamProcessor\ProcessingResult
+ *
+ * @licence GNU GPL v2+
+ * @author Jeroen De Dauw < jeroendedauw@gmail.com >
+ */
+class ProcessingResultTest extends TestCase {
+
+ public function testGetParameters() {
+ $processedParams = [
+ $this->createMock( ProcessedParam::class )
+ ];
+
+ $result = new ProcessingResult( $processedParams );
+
+ $this->assertEquals( $processedParams, $result->getParameters() );
+ }
+
+ public function testGetErrors() {
+ $errors = [
+ $this->createMock( ProcessingError::class )
+ ];
+
+ $result = new ProcessingResult( [], $errors );
+
+ $this->assertEquals( $errors, $result->getErrors() );
+ }
+
+ public function testGivenNoErrors_HasNoFatal() {
+ $this->assertNoFatalForErrors( [] );
+ }
+
+ private function assertNoFatalForErrors( array $errors ) {
+ $result = new ProcessingResult( [], $errors );
+
+ $this->assertFalse( $result->hasFatal() );
+ }
+
+ public function testGivenNonfatalErrors_HasNoFatal() {
+ $this->assertNoFatalForErrors( [
+ new ProcessingError( '', ProcessingError::SEVERITY_HIGH ),
+ new ProcessingError( '', ProcessingError::SEVERITY_LOW ),
+ new ProcessingError( '', ProcessingError::SEVERITY_MINOR ),
+ new ProcessingError( '', ProcessingError::SEVERITY_NORMAL ),
+ ] );
+ }
+
+ public function testGivenFatalError_HasFatal() {
+ $result = new ProcessingResult( [], [
+ new ProcessingError( '', ProcessingError::SEVERITY_HIGH ),
+ new ProcessingError( '', ProcessingError::SEVERITY_LOW ),
+ new ProcessingError( '', ProcessingError::SEVERITY_FATAL ),
+ new ProcessingError( '', ProcessingError::SEVERITY_MINOR ),
+ new ProcessingError( '', ProcessingError::SEVERITY_NORMAL ),
+ ] );
+
+ $this->assertTrue( $result->hasFatal() );
+ }
+
+ public function testGetParameterArrayWithNoParameters() {
+ $this->assertSame(
+ [],
+ ( new ProcessingResult( [] ) )->getParameterArray()
+ );
+ }
+
+ public function testGetParameterArray() {
+ $this->assertSame(
+ [
+ 'first' => 42,
+ 'second' => 23,
+ ],
+ ( new ProcessingResult( [
+ new ProcessedParam( 'first', 42, false ),
+ new ProcessedParam( 'second', 23, true )
+ ] ) )->getParameterArray()
+ );
+ }
+
+} \ No newline at end of file