Code Duplication    Length = 18-22 lines in 4 locations

src/Assert.php 4 locations

@@ 1839-1856 (lines=18) @@
1836
     * @return Assert
1837
     * @throws AssertionFailedException
1838
     */
1839
    public function directory($message = null, $propertyPath = null)
1840
    {
1841
        if ( $this->doAllOrNullOr(__FUNCTION__, func_get_args()) )
1842
        {
1843
            return $this;
1844
        }
1845
        $this->string($message, $propertyPath);
1846
        if ( !is_dir($this->value) )
1847
        {
1848
            $message = $message ?: $this->overrideError;
1849
            $message = sprintf(
1850
                $message ?: 'Path "%s" was expected to be a directory.',
1851
                $this->stringify($this->value)
1852
            );
1853
            throw $this->createException($message, $this->overrideCode ?: self::INVALID_DIRECTORY, $propertyPath);
1854
        }
1855
        return $this;
1856
    }
1857
1858
    /**
1859
     * Assert that the value is something readable
@@ 1866-1883 (lines=18) @@
1863
     * @return Assert
1864
     * @throws AssertionFailedException
1865
     */
1866
    public function readable($message = null, $propertyPath = null)
1867
    {
1868
        if ( $this->doAllOrNullOr(__FUNCTION__, func_get_args()) )
1869
        {
1870
            return $this;
1871
        }
1872
        $this->string($message, $propertyPath);
1873
        if ( !is_readable($this->value) )
1874
        {
1875
            $message = $message ?: $this->overrideError;
1876
            $message = sprintf(
1877
                $message ?: 'Path "%s" was expected to be readable.',
1878
                $this->stringify($this->value)
1879
            );
1880
            throw $this->createException($message, $this->overrideCode ?: self::INVALID_READABLE, $propertyPath);
1881
        }
1882
        return $this;
1883
    }
1884
1885
    /**
1886
     * Assert that the value is something writeable
@@ 1893-1910 (lines=18) @@
1890
     * @return Assert
1891
     * @throws AssertionFailedException
1892
     */
1893
    public function writeable($message = null, $propertyPath = null)
1894
    {
1895
        if ( $this->doAllOrNullOr(__FUNCTION__, func_get_args()) )
1896
        {
1897
            return $this;
1898
        }
1899
        $this->string($message, $propertyPath);
1900
        if ( !is_writeable($this->value) )
1901
        {
1902
            $message = $message ?: $this->overrideError;
1903
            $message = sprintf(
1904
                $message ?: 'Path "%s" was expected to be writeable.',
1905
                $this->stringify($this->value)
1906
            );
1907
            throw $this->createException($message, $this->overrideCode ?: self::INVALID_WRITEABLE, $propertyPath);
1908
        }
1909
        return $this;
1910
    }
1911
1912
    /**
1913
     * Assert that value is an email adress (using
@@ 2054-2075 (lines=22) @@
2051
     * @return Assert
2052
     * @throws AssertionFailedException
2053
     */
2054
    public function alnum($message = null, $propertyPath = null)
2055
    {
2056
        if ( $this->doAllOrNullOr(__FUNCTION__, func_get_args()) )
2057
        {
2058
            return $this;
2059
        }
2060
        try
2061
        {
2062
            $this->regex('(^([a-zA-Z]{1}[a-zA-Z0-9]*)$)', $message, $propertyPath);
2063
        }
2064
        catch (AssertionFailedException $e)
2065
        {
2066
            $message = $message ?: $this->overrideError;
2067
            $message = sprintf(
2068
                $message
2069
                    ?: 'Value "%s" is not alphanumeric, starting with letters and containing only letters and numbers.',
2070
                $this->stringify($this->value)
2071
            );
2072
            throw $this->createException($message, $this->overrideCode ?: self::INVALID_ALNUM, $propertyPath);
2073
        }
2074
        return $this;
2075
    }
2076
2077
    /**
2078
     * Assert that the value is boolean True.