PHP Classes

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

Recommend this page to a friend!
  Classes 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 month 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'));