ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
ArrayInputDataTest.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
22
24use PHPUnit\Framework\TestCase;
25use LogicException;
26
30class ArrayInputDataTest extends TestCase
31{
32 public function testInvalidKeyWithoutDefault(): void
33 {
34 $test_key = 'test_key_1';
35 $input_data = new ArrayInputData([]);
36 $this->expectException(LogicException::class);
37 $this->expectExceptionMessage("'$test_key' is not contained in provided data.");
38 $input_data->get($test_key);
39 }
40
41 public function testInvalidKeyWithDefault(): void
42 {
43 $test_key = 'test_key_1';
44 $expected_value = 'expected_value_1';
45 $input_data = new ArrayInputData([]);
46
47 $this->assertEquals(
48 $expected_value,
49 $input_data->getOr($test_key, $expected_value)
50 );
51 }
52
53 public function testValidKeyWithoutDefault(): void
54 {
55 $test_key = 'test_key_1';
56 $expected_value = 'expected_value_1';
57 $input_data = new ArrayInputData([
58 $test_key => $expected_value,
59 ]);
60
61 $this->assertEquals(
62 $expected_value,
63 $input_data->get($test_key)
64 );
65 }
66
67 public function testValidKeyWithDefault(): void
68 {
69 $test_key = 'test_key_1';
70 $expected_value = 'expected_value_1';
71 $input_data = new ArrayInputData([
72 $test_key => $expected_value,
73 ]);
74
75 $this->assertNotNull($input_data->getOr($test_key, null));
76 $this->assertEquals(
77 $expected_value,
78 $input_data->getOr($test_key, null)
79 );
80 }
81
82 public function testDefaultValues(): void
83 {
84 $input_data = new ArrayInputData([]);
85
86 $test_array = ['key1' => 'val1'];
87 $test_integer = 999;
88 $test_boolean = false;
89 $test_string = 'test_string_1';
90 $test_double = 1.2;
91
92 $this->assertFalse($input_data->getOr('', $test_boolean));
93 $this->assertEquals($test_integer, $input_data->getOr('', $test_integer));
94 $this->assertEquals($test_array, $input_data->getOr('', $test_array));
95 $this->assertEquals($test_string, $input_data->getOr('', $test_string));
96 $this->assertEquals($test_double, $input_data->getOr('', $test_double));
97 }
98}