PHP Classes

File: tests/Arquitetura/Dominio/Repositorios/RepositoriosTest.php

Recommend this page to a friend!
  Packages of Matheusz Maydana   Bames   tests/Arquitetura/Dominio/Repositorios/RepositoriosTest.php   Download  
File: tests/Arquitetura/Dominio/Repositorios/RepositoriosTest.php
Role: Example script
Content type: text/plain
Description: Example script
Class: Bames
Application collection to study design patterns
Author: By
Last change:
Date: 1 year ago
Size: 1,315 bytes
 

Contents

Class file image Download
<?php

arch('Todas as "classes" de App\Dominio\Repositorios devem ser interfaces exceto as Fronteiras.')
    ->expect('App\Dominio\Repositories')
    ->toBeInterfaces()
    ->ignoring([
        'App\Dominio\Repositorios\Autenticacao\Fronteiras',
        'App\Dominio\Repositorios\Empresa\Fronteiras',
        'App\Dominio\Repositorios\Token\Fronteiras',
    ]);

function listarFronteiras($basePath)
{
    $repositorios = [];

    // Função recursiva para percorrer diretórios
    $iterator = new RecursiveIteratorIterator(
        new RecursiveDirectoryIterator($basePath, FilesystemIterator::SKIP_DOTS),
        RecursiveIteratorIterator::SELF_FIRST
    );

    foreach ($iterator as $item) {
        if ($item->isDir()) {
            // Formata o caminho para a estrutura de namespace do PHP
            $relativePath = str_replace($basePath, '', $item->getPathname());
            $namespacePath = 'App\\Dominio\\Repositorios' . str_replace('/', '\\', $relativePath) . '\\Fronteiras';

            $repositorios[] = $namespacePath;
        }
    }

    return $repositorios;
}

arch('Todas as "classes" de Dominio\Repositorios devem ter prefixo Repositorio.')
    ->expect('App\Dominio\Repositorios')
    ->toHavePrefix('Repositorio')
    ->ignoring(listarFronteiras(__DIR__.'/../../../../src/Dominio/Repositorios'));