| Conditions | 1 |
| Paths | 1 |
| Total Lines | 266 |
| Code Lines | 188 |
| Lines | 0 |
| Ratio | 0 % |
| Changes | 0 | ||
Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.
For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.
Commonly applied refactorings include:
If many parameters/temporary variables are present:
| 1 | <?php |
||
| 545 | public function dataValidationFailed(): array |
||
| 546 | { |
||
| 547 | $incorrectInputMessage = 'The value must have a string type.'; |
||
| 548 | $message = 'Must be a valid IP address.'; |
||
| 549 | $hasSubnetMessage = 'Must not be a subnet.'; |
||
| 550 | $notInRangeMessage = 'Is not in the allowed range.'; |
||
| 551 | $ipv4NotAllowedMessage = 'Must not be an IPv4 address.'; |
||
| 552 | $wrongCidrMessage = 'Contains wrong subnet mask.'; |
||
| 553 | $noSubnetMessage = 'Must be an IP address with specified subnet.'; |
||
| 554 | $ipv6NotAllowedMessage = 'Must not be an IPv6 address.'; |
||
| 555 | |||
| 556 | return [ |
||
| 557 | 'incorrect input, array' => [['what an array', '??'], [new Ip()], ['' => [$incorrectInputMessage]]], |
||
| 558 | 'incorrect input, integer' => [123456, [new Ip()], ['' => [$incorrectInputMessage]]], |
||
| 559 | 'incorrect input, boolean (true)' => [true, [new Ip()], ['' => [$incorrectInputMessage]]], |
||
| 560 | 'incorrect input, boolean (false)' => [false, [new Ip()], ['' => [$incorrectInputMessage]]], |
||
| 561 | 'incorrect input, null' => [null, [new Ip()], ['' => [$incorrectInputMessage]]], |
||
| 562 | 'custom incorrect input message' => [ |
||
| 563 | 1, |
||
| 564 | [new Ip(incorrectInputMessage: 'Custom incorrect input message.')], |
||
| 565 | ['' => ['Custom incorrect input message.']], |
||
| 566 | ], |
||
| 567 | 'custom incorrect input message with parameters' => [ |
||
| 568 | 1, |
||
| 569 | [new Ip(incorrectInputMessage: 'Attribute - {attribute}, type - {type}.')], |
||
| 570 | ['' => ['Attribute - , type - int.']], |
||
| 571 | ], |
||
| 572 | 'custom incorrect input message with parameters, attribute set' => [ |
||
| 573 | ['data' => 1], |
||
| 574 | ['data' => new Ip(incorrectInputMessage: 'Attribute - {attribute}, type - {type}.')], |
||
| 575 | ['data' => ['Attribute - data, type - int.']], |
||
| 576 | ], |
||
| 577 | |||
| 578 | // Small length |
||
| 579 | ['1', [new Ip()], ['' => [$message]]], |
||
| 580 | ['1.1.1.', [new Ip()], ['' => [$message]]], |
||
| 581 | ['1.1.1', [new Ip()], ['' => [$message]]], |
||
| 582 | |||
| 583 | ['not.an.ip', [new Ip()], ['' => [$message]]], |
||
| 584 | ['bad:forSure', [new Ip()], ['' => [$message]]], |
||
| 585 | |||
| 586 | ['2008:fz::0', [new Ip()], ['' => [$message]]], |
||
| 587 | ['2008:fa::0::1', [new Ip()], ['' => [$message]]], |
||
| 588 | ['!2008:fa::0::1', [new Ip()], ['' => [$message]]], |
||
| 589 | ['2008:fa::0:1/64', [new Ip()], ['' => [$hasSubnetMessage]]], |
||
| 590 | 'custom has subnet message' => [ |
||
| 591 | '2008:fa::0:1/64', |
||
| 592 | [new Ip(hasSubnetMessage: 'Custom has subnet message.')], |
||
| 593 | ['' => ['Custom has subnet message.']], |
||
| 594 | ], |
||
| 595 | 'custom has subnet message with parameters' => [ |
||
| 596 | '2008:fa::0:1/64', |
||
| 597 | [new Ip(hasSubnetMessage: 'Attribute - {attribute}, value - {value}.')], |
||
| 598 | ['' => ['Attribute - , value - 2008:fa::0:1/64.']], |
||
| 599 | ], |
||
| 600 | 'custom has subnet message with parameters, attribute set' => [ |
||
| 601 | ['data' => '2008:fa::0:1/64'], |
||
| 602 | ['data' => new Ip(hasSubnetMessage: 'Attribute - {attribute}, value - {value}.')], |
||
| 603 | ['data' => ['Attribute - data, value - 2008:fa::0:1/64.']], |
||
| 604 | ], |
||
| 605 | |||
| 606 | [ |
||
| 607 | 'babe::cafe', |
||
| 608 | [new Ip(ranges: ['10.0.0.1', '!10.0.0.0/8', '!babe::/8', 'any'])], |
||
| 609 | ['' => [$notInRangeMessage]], |
||
| 610 | ], |
||
| 611 | [ |
||
| 612 | '10.0.0.2', |
||
| 613 | [new Ip(ranges: ['10.0.0.1', '!10.0.0.0/8', '!babe::/8', 'any'])], |
||
| 614 | ['' => [$notInRangeMessage]], |
||
| 615 | ], |
||
| 616 | 'custom not in range message' => [ |
||
| 617 | '10.0.0.2', |
||
| 618 | [ |
||
| 619 | new Ip( |
||
| 620 | notInRangeMessage: 'Custom not in range message.', |
||
| 621 | ranges: ['10.0.0.1', '!10.0.0.0/8', '!babe::/8', 'any'], |
||
| 622 | ), |
||
| 623 | ], |
||
| 624 | ['' => ['Custom not in range message.']], |
||
| 625 | ], |
||
| 626 | 'custom not in range message with parameters' => [ |
||
| 627 | '10.0.0.2', |
||
| 628 | [ |
||
| 629 | new Ip( |
||
| 630 | notInRangeMessage: 'Attribute - {attribute}, value - {value}.', |
||
| 631 | ranges: ['10.0.0.1', '!10.0.0.0/8', '!babe::/8', 'any'], |
||
| 632 | ), |
||
| 633 | ], |
||
| 634 | ['' => ['Attribute - , value - 10.0.0.2.']], |
||
| 635 | ], |
||
| 636 | 'custom not in range message with parameters, attribute set' => [ |
||
| 637 | ['data' => '10.0.0.2'], |
||
| 638 | [ |
||
| 639 | 'data' => new Ip( |
||
| 640 | notInRangeMessage: 'Attribute - {attribute}, value - {value}.', |
||
| 641 | ranges: ['10.0.0.1', '!10.0.0.0/8', '!babe::/8', 'any'], |
||
| 642 | ), |
||
| 643 | ], |
||
| 644 | ['data' => ['Attribute - data, value - 10.0.0.2.']], |
||
| 645 | ], |
||
| 646 | |||
| 647 | 'leading zeroes' => ['192.168.005.001', [new Ip()], ['' => [$message]]], |
||
| 648 | ['192.168.5.321', [new Ip()], ['' => [$message]]], |
||
| 649 | ['!192.168.5.32', [new Ip()], ['' => [$message]]], |
||
| 650 | ['192.168.5.32/11', [new Ip()], ['' => [$hasSubnetMessage]]], |
||
| 651 | ['192.168.10.11', [new Ip(allowIpv4: false)], ['' => [$ipv4NotAllowedMessage]]], |
||
| 652 | 'custom IPv4 not allowed message' => [ |
||
| 653 | '192.168.10.11', |
||
| 654 | [new Ip(allowIpv4: false, ipv4NotAllowedMessage: 'Custom IPv4 not allowed message.')], |
||
| 655 | ['' => ['Custom IPv4 not allowed message.']], |
||
| 656 | ], |
||
| 657 | 'custom IPv4 not allowed message with parameters' => [ |
||
| 658 | '192.168.10.11', |
||
| 659 | [new Ip(allowIpv4: false, ipv4NotAllowedMessage: 'Attribute - {attribute}, value - {value}.')], |
||
| 660 | ['' => ['Attribute - , value - 192.168.10.11.']], |
||
| 661 | ], |
||
| 662 | 'custom IPv4 not allowed message with parameters, attribute set' => [ |
||
| 663 | ['data' => '192.168.10.11'], |
||
| 664 | [ |
||
| 665 | 'data' => new Ip( |
||
| 666 | allowIpv4: false, |
||
| 667 | ipv4NotAllowedMessage: 'Attribute - {attribute}, value - {value}.', |
||
| 668 | ), |
||
| 669 | ], |
||
| 670 | ['data' => ['Attribute - data, value - 192.168.10.11.']], |
||
| 671 | ], |
||
| 672 | |||
| 673 | ['192.168.5.32/33', [new Ip(allowSubnet: true)], ['' => [$wrongCidrMessage]]], |
||
| 674 | 'custom wrong CIDR message' => [ |
||
| 675 | '192.168.5.32/33', |
||
| 676 | [new Ip(allowSubnet: true, wrongCidrMessage: 'Custom wrong CIDR message.')], |
||
| 677 | ['' => ['Custom wrong CIDR message.']], |
||
| 678 | ], |
||
| 679 | 'custom wrong CIDR message with parameters' => [ |
||
| 680 | '192.168.5.32/33', |
||
| 681 | [new Ip(allowSubnet: true, wrongCidrMessage: 'Attribute - {attribute}, value - {value}.')], |
||
| 682 | ['' => ['Attribute - , value - 192.168.5.32/33.']], |
||
| 683 | ], |
||
| 684 | 'custom wrong CIDR message with parameters, attribute set' => [ |
||
| 685 | ['data' => '192.168.5.32/33'], |
||
| 686 | ['data' => new Ip(allowSubnet: true, wrongCidrMessage: 'Attribute - {attribute}, value - {value}.')], |
||
| 687 | ['data' => ['Attribute - data, value - 192.168.5.32/33.']], |
||
| 688 | ], |
||
| 689 | |||
| 690 | ['192.168.5.32/af', [new Ip(allowSubnet: true)], ['' => [$message]]], |
||
| 691 | ['192.168.5.32/11/12', [new Ip(allowSubnet: true)], ['' => [$message]]], |
||
| 692 | ['10.0.0.1', [new Ip(requireSubnet: true)], ['' => [$noSubnetMessage]]], |
||
| 693 | 'custom no subnet message' => [ |
||
| 694 | '10.0.0.1', |
||
| 695 | [new Ip(requireSubnet: true, noSubnetMessage: 'Custom no subnet message.')], |
||
| 696 | ['' => ['Custom no subnet message.']], |
||
| 697 | ], |
||
| 698 | 'custom no subnet message with parameters' => [ |
||
| 699 | '10.0.0.1', |
||
| 700 | [new Ip(requireSubnet: true, noSubnetMessage: 'Attribute - {attribute}, value - {value}.')], |
||
| 701 | ['' => ['Attribute - , value - 10.0.0.1.']], |
||
| 702 | ], |
||
| 703 | 'custom no subnet message with parameters, attribute set' => [ |
||
| 704 | ['data' => '10.0.0.1'], |
||
| 705 | ['data' => new Ip(requireSubnet: true, noSubnetMessage: 'Attribute - {attribute}, value - {value}.')], |
||
| 706 | ['data' => ['Attribute - data, value - 10.0.0.1.']], |
||
| 707 | ], |
||
| 708 | |||
| 709 | ['!!192.168.5.32/32', [new Ip(requireSubnet: true, allowNegation: true)], ['' => [$message]]], |
||
| 710 | |||
| 711 | ['!2008:fa::0:1/0', [new Ip(allowIpv4: false, allowSubnet: true)], ['' => [$message]]], |
||
| 712 | ['2008:fz::0/129', [new Ip(allowIpv4: false, allowSubnet: true)], ['' => [$message]]], |
||
| 713 | ['2008:db0::1', [new Ip(allowIpv4: false, requireSubnet: true)], ['' => [$noSubnetMessage]]], |
||
| 714 | [ |
||
| 715 | '!!2008:fa::0:1/64', |
||
| 716 | [new Ip(allowIpv4: false, requireSubnet: true, allowNegation: true)], |
||
| 717 | ['' => [$message]], |
||
| 718 | ], |
||
| 719 | |||
| 720 | ['2008:fa::1', [new Ip(allowIpv6: false)], ['' => [$ipv6NotAllowedMessage]]], |
||
| 721 | 'custom IPv6 not allowed message' => [ |
||
| 722 | '2008:fa::1', |
||
| 723 | [new Ip(allowIpv6: false, ipv6NotAllowedMessage: 'Custom IPv6 not allowed message.')], |
||
| 724 | ['' => ['Custom IPv6 not allowed message.']], |
||
| 725 | ], |
||
| 726 | 'custom IPv6 not allowed message with parameters' => [ |
||
| 727 | '2008:fa::1', |
||
| 728 | [new Ip(allowIpv6: false, ipv6NotAllowedMessage: 'Attribute - {attribute}, value - {value}.')], |
||
| 729 | ['' => ['Attribute - , value - 2008:fa::1.']], |
||
| 730 | ], |
||
| 731 | 'custom IPv6 not allowed message with parameters, attribute set' => [ |
||
| 732 | ['data' => '2008:fa::1'], |
||
| 733 | [ |
||
| 734 | 'data' => new Ip( |
||
| 735 | allowIpv6: false, |
||
| 736 | ipv6NotAllowedMessage: 'Attribute - {attribute}, value - {value}.', |
||
| 737 | ), |
||
| 738 | ], |
||
| 739 | ['data' => ['Attribute - data, value - 2008:fa::1.']], |
||
| 740 | ], |
||
| 741 | |||
| 742 | ['!2008:fa::0:1/0', [new Ip(requireSubnet: true)], ['' => [$message]]], |
||
| 743 | ['2008:fz::0/129', [new Ip(requireSubnet: true)], ['' => [$message]]], |
||
| 744 | ['192.168.5.32/33', [new Ip(requireSubnet: true)], ['' => [$wrongCidrMessage]]], |
||
| 745 | ['192.168.5.32/af', [new Ip(requireSubnet: true)], ['' => [$message]]], |
||
| 746 | ['192.168.5.32/11/12', [new Ip(requireSubnet: true)], ['' => [$message]]], |
||
| 747 | ['2008:db0::1', [new Ip(requireSubnet: true)], ['' => [$noSubnetMessage]]], |
||
| 748 | ['10.0.0.1', [new Ip(requireSubnet: true)], ['' => [$noSubnetMessage]]], |
||
| 749 | ['!!192.168.5.32/32', [new Ip(requireSubnet: true, allowNegation: true)], ['' => [$message]]], |
||
| 750 | ['!!2008:fa::0:1/64', [new Ip(requireSubnet: true, allowNegation: true)], ['' => [$message]]], |
||
| 751 | |||
| 752 | ['192.5.1.1', [new Ip(ranges: ['10.0.1.0/24'])], ['' => [$notInRangeMessage]]], |
||
| 753 | ['10.0.3.2', [new Ip(ranges: ['10.0.1.0/24'])], ['' => [$notInRangeMessage]]], |
||
| 754 | ['10.0.1.2', [new Ip(ranges: ['!10.0.1.0/24', '10.0.0.0/8', 'localhost'])], ['' => [$notInRangeMessage]]], |
||
| 755 | [ |
||
| 756 | '10.2.2.2', |
||
| 757 | [new Ip(allowSubnet: true, ranges: ['10.0.1.0/24', '!10.0.0.0/8', 'localhost'])], |
||
| 758 | ['' => [$notInRangeMessage]], |
||
| 759 | ], |
||
| 760 | [ |
||
| 761 | '10.0.1.1/22', |
||
| 762 | [new Ip(allowSubnet: true, ranges: ['10.0.1.0/24', '!10.0.0.0/8', 'localhost'])], |
||
| 763 | ['' => [$notInRangeMessage]], |
||
| 764 | ], |
||
| 765 | ['2001:db0:1:2::7', [new Ip(ranges: ['2001:db0:1:1::/64'])], ['' => [$notInRangeMessage]]], |
||
| 766 | [ |
||
| 767 | '2001:db0:1:2::7', |
||
| 768 | [new Ip(ranges: ['!2001:db0::/32', '2001:db0:1:2::/64'])], |
||
| 769 | ['' => [$notInRangeMessage]], |
||
| 770 | ], |
||
| 771 | |||
| 772 | ['192.5.1.1', [new Ip(ranges: ['10.0.1.0/24'])], ['' => [$notInRangeMessage]]], |
||
| 773 | ['2001:db0:1:2::7', [new Ip(ranges: ['10.0.1.0/24'])], ['' => [$notInRangeMessage]]], |
||
| 774 | [ |
||
| 775 | '10.0.3.2', |
||
| 776 | [new Ip(ranges: ['10.0.1.0/24', '2001:db0:1:2::/64', '127.0.0.1'])], |
||
| 777 | ['' => [$notInRangeMessage]], |
||
| 778 | ], |
||
| 779 | ['127.0.0.1', [new Ip(ranges: ['!system', 'any'])], ['' => [$notInRangeMessage]]], |
||
| 780 | ['fe80::face', [new Ip(ranges: ['!system', 'any'])], ['' => [$notInRangeMessage]]], |
||
| 781 | |||
| 782 | [ |
||
| 783 | '10.2.2.2', |
||
| 784 | [new Ip(allowSubnet: true, ranges: ['10.0.1.0/24', '2001:db0:1:2::/64', 'localhost', '!any'])], |
||
| 785 | ['' => [$notInRangeMessage]], |
||
| 786 | ], |
||
| 787 | [ |
||
| 788 | '10.0.1.1/22', |
||
| 789 | [new Ip(allowSubnet: true, ranges: ['10.0.1.0/24', '2001:db0:1:2::/64', 'localhost', '!any'])], |
||
| 790 | ['' => [$notInRangeMessage]], |
||
| 791 | ], |
||
| 792 | |||
| 793 | ['01.01.01.01', [new Ip()], ['' => [$message]]], |
||
| 794 | ['010.010.010.010', [new Ip()], ['' => [$message]]], |
||
| 795 | ['001.001.001.001', [new Ip()], ['' => [$message]]], |
||
| 796 | |||
| 797 | 'custom message' => [ |
||
| 798 | '192.168.5.32/af', |
||
| 799 | [new Ip(allowSubnet: true, message: 'Custom message.')], |
||
| 800 | ['' => ['Custom message.']], |
||
| 801 | ], |
||
| 802 | 'custom message with parameters' => [ |
||
| 803 | '192.168.5.32/af', |
||
| 804 | [new Ip(allowSubnet: true, message: 'Attribute - {attribute}, value - {value}.')], |
||
| 805 | ['' => ['Attribute - , value - 192.168.5.32/af.']], |
||
| 806 | ], |
||
| 807 | 'custom message with parameters, attribute set' => [ |
||
| 808 | ['data' => '192.168.5.32/af'], |
||
| 809 | ['data' => new Ip(allowSubnet: true, message: 'Attribute - {attribute}, value - {value}.')], |
||
| 810 | ['data' => ['Attribute - data, value - 192.168.5.32/af.']], |
||
| 811 | ], |
||
| 892 |