Code Duplication    Length = 20-24 lines in 6 locations

src/Assert.php 6 locations

@@ 2150-2169 (lines=20) @@
2147
     * @return Assert
2148
     * @throws AssertionFailedException
2149
     */
2150
    public function directory(string $message='', string $fieldName='') : Assert
2151
    {
2152
        if ( $this->doAllOrNullOr(__FUNCTION__, func_get_args()) )
2153
        {
2154
            return $this;
2155
        }
2156
        $this->string($message, $fieldName);
2157
        if ( !is_dir($this->value) )
2158
        {
2159
            $message = $message ?: $this->overrideError;
2160
            $message = sprintf(
2161
                $message ?: 'Path "%s" was expected to be a directory.',
2162
                $this->stringify($this->value)
2163
            );
2164
2165
            throw $this->createException($message, $this->overrideCode ?: self::INVALID_DIRECTORY, $fieldName);
2166
        }
2167
2168
        return $this;
2169
    }
2170
2171
    /**
2172
     * Assert that value is something readable.
@@ 2179-2198 (lines=20) @@
2176
     * @return Assert
2177
     * @throws AssertionFailedException
2178
     */
2179
    public function readable(string $message='', string $fieldName='') : Assert
2180
    {
2181
        if ( $this->doAllOrNullOr(__FUNCTION__, func_get_args()) )
2182
        {
2183
            return $this;
2184
        }
2185
        $this->string($message, $fieldName);
2186
        if ( !is_readable($this->value) )
2187
        {
2188
            $message = $message ?: $this->overrideError;
2189
            $message = sprintf(
2190
                $message ?: 'Path "%s" was expected to be readable.',
2191
                $this->stringify($this->value)
2192
            );
2193
2194
            throw $this->createException($message, $this->overrideCode ?: self::INVALID_READABLE, $fieldName);
2195
        }
2196
2197
        return $this;
2198
    }
2199
2200
    /**
2201
     * Assert that value is something writeable.
@@ 2208-2227 (lines=20) @@
2205
     * @return Assert
2206
     * @throws AssertionFailedException
2207
     */
2208
    public function writeable(string $message='', string $fieldName='') : Assert
2209
    {
2210
        if ( $this->doAllOrNullOr(__FUNCTION__, func_get_args()) )
2211
        {
2212
            return $this;
2213
        }
2214
        $this->string($message, $fieldName);
2215
        if ( !is_writeable($this->value) )
2216
        {
2217
            $message = $message ?: $this->overrideError;
2218
            $message = sprintf(
2219
                $message ?: 'Path "%s" was expected to be writeable.',
2220
                $this->stringify($this->value)
2221
            );
2222
2223
            throw $this->createException($message, $this->overrideCode ?: self::INVALID_WRITEABLE, $fieldName);
2224
        }
2225
2226
        return $this;
2227
    }
2228
2229
    /**
2230
     * Assert that value is a valid email address (using input_filter/FILTER_VALIDATE_EMAIL).
@@ 2379-2399 (lines=21) @@
2376
     * @return $this
2377
     * @throws AssertionFailedException
2378
     */
2379
    public function ausMobile(string $message='', string $fieldName='') : Assert
2380
    {
2381
        if ( $this->doAllOrNullOr(__FUNCTION__, func_get_args()) )
2382
        {
2383
            return $this;
2384
        }
2385
        $this->string($message, $fieldName);
2386
        if ( ! static::isAusMobile($this->value) )
2387
        {
2388
            $message = $message ?: $this->overrideError;
2389
            $message = sprintf(
2390
                $message
2391
                    ?: 'Value "%s" is not an australian mobile number.',
2392
                $this->stringify($this->value)
2393
            );
2394
2395
            throw $this->createException($message, $this->overrideCode ?: self::INVALID_AUS_MOBILE, $fieldName);
2396
        }
2397
2398
        return $this;
2399
    }
2400
2401
    /**
2402
     * @param string $value
@@ 2418-2441 (lines=24) @@
2415
     * @return Assert
2416
     * @throws AssertionFailedException
2417
     */
2418
    public function alnum(string $message='', string $fieldName='') : Assert
2419
    {
2420
        if ( $this->doAllOrNullOr(__FUNCTION__, func_get_args()) )
2421
        {
2422
            return $this;
2423
        }
2424
        try
2425
        {
2426
            $this->regex('(^([a-zA-Z]{1}[a-zA-Z0-9]*)$)', $message, $fieldName);
2427
        }
2428
        catch (AssertionFailedException $e)
2429
        {
2430
            $message = $message ?: $this->overrideError;
2431
            $message = sprintf(
2432
                $message
2433
                    ?: 'Value "%s" is not alphanumeric, starting with letters and containing only letters and numbers.',
2434
                $this->stringify($this->value)
2435
            );
2436
2437
            throw $this->createException($message, $this->overrideCode ?: self::INVALID_ALNUM, $fieldName);
2438
        }
2439
2440
        return $this;
2441
    }
2442
2443
    /**
2444
     * Assert that value is boolean True.
@@ 2725-2748 (lines=24) @@
2722
     * @return Assert
2723
     * @throws AssertionFailedException
2724
     */
2725
    public function userPrincipalName(string $message='', string $fieldName='') : Assert
2726
    {
2727
        if ( $this->doAllOrNullOr(__FUNCTION__, func_get_args()) )
2728
        {
2729
            return $this;
2730
        }
2731
        try
2732
        {
2733
            $this->email($message, $fieldName);
2734
        }
2735
        catch (AssertionFailedException $e)
2736
        {
2737
            $message = $message ?: $this->overrideError;
2738
            $message = sprintf(
2739
                $message
2740
                    ?: 'Value "%s" is not a valid userPrincipalName.',
2741
                $this->stringify($this->value)
2742
            );
2743
2744
            throw $this->createException($message, $this->overrideCode ?: self::INVALID_USERPRINCIPALNAME, $fieldName);
2745
        }
2746
2747
        return $this;
2748
    }
2749
2750
    /**
2751
     * Assert that the given string is a valid UUID