|
12 | 12 | use ArrayIterator; |
13 | 13 | use ArrayObject; |
14 | 14 | use FilterIterator; |
15 | | -use PHPUnit_Framework_MockObject_MockObject as MockObject; |
16 | 15 | use PHPUnit\Framework\TestCase; |
| 16 | +use PHPUnit_Framework_MockObject_MockObject as MockObject; |
17 | 17 | use stdClass; |
18 | 18 | use Zend\InputFilter\BaseInputFilter; |
19 | 19 | use Zend\InputFilter\Exception\InvalidArgumentException; |
20 | 20 | use Zend\InputFilter\Exception\RuntimeException; |
21 | 21 | use Zend\InputFilter\Input; |
22 | 22 | use Zend\InputFilter\InputFilterInterface; |
23 | 23 | use Zend\InputFilter\InputInterface; |
| 24 | +use Zend\InputFilter\UnfilteredDataInterface; |
24 | 25 |
|
25 | 26 | /** |
26 | 27 | * @covers Zend\InputFilter\BaseInputFilter |
@@ -603,6 +604,78 @@ public function testNestedInputFilterShouldAllowNonArrayValueForData() |
603 | 604 | self::assertNull($filter1->getValues()['nested']['nestedField1']); |
604 | 605 | } |
605 | 606 |
|
| 607 | + public function testInstanceOfUnfilteredDataInterface() |
| 608 | + { |
| 609 | + $baseInputFilter = new BaseInputFilter(); |
| 610 | + |
| 611 | + self::assertInstanceOf( |
| 612 | + UnfilteredDataInterface::class, |
| 613 | + $baseInputFilter, |
| 614 | + sprintf('%s should implement %s', BaseInputFilter::class, UnfilteredDataInterface::class) |
| 615 | + ); |
| 616 | + } |
| 617 | + |
| 618 | + public function testGetUnfilteredDataReturnsArray() |
| 619 | + { |
| 620 | + $baseInputFilter = new BaseInputFilter(); |
| 621 | + |
| 622 | + self::assertInternalType('array', $baseInputFilter->getUnfilteredData()); |
| 623 | + } |
| 624 | + |
| 625 | + public function testSetUnfilteredDataReturnsBaseInputFilter() |
| 626 | + { |
| 627 | + $baseInputFilter = new BaseInputFilter(); |
| 628 | + |
| 629 | + self::assertInstanceOf(BaseInputFilter::class, $baseInputFilter->setUnfilteredData([])); |
| 630 | + } |
| 631 | + |
| 632 | + public function testSettingAndReturningDataArrayUnfilteredDataInterface() |
| 633 | + { |
| 634 | + $testArray = [ |
| 635 | + 'foo' => 'bar', |
| 636 | + ]; |
| 637 | + |
| 638 | + $baseInputFilter = new BaseInputFilter(); |
| 639 | + $baseInputFilter->setUnfilteredData($testArray); |
| 640 | + |
| 641 | + self::assertSame($testArray, $baseInputFilter->getUnfilteredData()); |
| 642 | + } |
| 643 | + |
| 644 | + public function testSettingAndReturnDataArrayUsingSetDataForUnfilteredDataInterface() |
| 645 | + { |
| 646 | + $testArray = [ |
| 647 | + 'foo' => 'bar', |
| 648 | + ]; |
| 649 | + |
| 650 | + $baseInputFilter = new BaseInputFilter(); |
| 651 | + $baseInputFilter->setData($testArray); |
| 652 | + |
| 653 | + self::assertSame($testArray, $baseInputFilter->getUnfilteredData()); |
| 654 | + } |
| 655 | + |
| 656 | + public function testSetDataUsingSetDataAndApplyFiltersReturningSameAsOriginalForUnfilteredData() |
| 657 | + { |
| 658 | + $filteredArray = [ |
| 659 | + 'bar' => 'foo', |
| 660 | + ]; |
| 661 | + |
| 662 | + $unfilteredArray = array_merge( |
| 663 | + $filteredArray, |
| 664 | + [ |
| 665 | + 'foo' => 'bar', |
| 666 | + ] |
| 667 | + ); |
| 668 | + |
| 669 | + /** @var BaseInputFilter $baseInputFilter */ |
| 670 | + $baseInputFilter = (new BaseInputFilter()) |
| 671 | + ->add(new Input(), 'bar') |
| 672 | + ->setData($unfilteredArray); |
| 673 | + |
| 674 | + self::assertSame($unfilteredArray, $baseInputFilter->getUnfilteredData()); |
| 675 | + self::assertSame($filteredArray, $baseInputFilter->getValues()); |
| 676 | + self::assertSame($filteredArray, $baseInputFilter->getRawValues()); |
| 677 | + } |
| 678 | + |
606 | 679 | public function addMethodArgumentsProvider() |
607 | 680 | { |
608 | 681 | $inputTypes = $this->inputProvider(); |
|
0 commit comments