Skip to content

Commit

Permalink
test: adding some unit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
ananiascactus committed Dec 31, 2023
1 parent 6c4d7a4 commit b740a51
Show file tree
Hide file tree
Showing 21 changed files with 2,047 additions and 49 deletions.
1 change: 1 addition & 0 deletions .phpunit.cache/test-results
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"version":1,"defects":{"Unit\\Anonymizers\\CreditCardAnonymizerTest::testAnonymizeCreditCardNumber":7,"Unit\\Anonymizers\\CreditCardAnonymizerTest::testAnonymizeWithDifferentSeparators":8,"Unit\\Anonymizers\\CreditCardAnonymizerTest::testAnonymizeWithoutCreditCardNumber":8,"Unit\\Detectors\\PhoneDetectorTest::testDetectsPhone#5":7},"times":{"Unit\\Anonymizers\\BirthDateAnonymizerTest::testAnonymizeWithDashedDateFormat":0.081,"Unit\\Anonymizers\\BirthDateAnonymizerTest::testAnonymizeWithSlashedDateFormat":0,"Unit\\Anonymizers\\BirthDateAnonymizerTest::testAnonymizeWithoutDate":0,"Unit\\Anonymizers\\CreditCardAnonymizerTest::testAnonymizeCreditCardNumber":0,"Unit\\Anonymizers\\CreditCardAnonymizerTest::testAnonymizeWithDifferentSeparators":0,"Unit\\Anonymizers\\CreditCardAnonymizerTest::testAnonymizeWithoutCreditCardNumber":0,"Unit\\Anonymizers\\EmailAnonymizerTest::testAnonymizeEmailAddress":0,"Unit\\Anonymizers\\EmailAnonymizerTest::testAnonymizeMultipleEmailAddresses":0,"Unit\\Anonymizers\\EmailAnonymizerTest::testAnonymizeWithoutEmailAddress":0,"Unit\\Anonymizers\\PhoneAnonymizerTest::testAnonymizePhoneNumber":0,"Unit\\Anonymizers\\PhoneAnonymizerTest::testAnonymizeMultiplePhoneNumbers":0,"Unit\\Anonymizers\\PhoneAnonymizerTest::testAnonymizeWithoutPhoneNumber":0,"Unit\\Detectors\\BirthDateDetectorTest::testDetectsBrazilianFormatDate":0.014,"Unit\\Detectors\\BirthDateDetectorTest::testDetectsISOFormatDate":0,"Unit\\Detectors\\BirthDateDetectorTest::testDetectsDate#with pt-br date":0,"Unit\\Detectors\\BirthDateDetectorTest::testDetectsDate#with iso date":0,"Unit\\Detectors\\BirthDateDetectorTest::testDetectsDate#without date":0,"Unit\\Detectors\\BirthDateDetectorTest::testDetectsDate#without iso date":0,"Unit\\Detectors\\CreditCardDetectorTest::testDetectsCreditCard#0":0,"Unit\\Detectors\\CreditCardDetectorTest::testDetectsCreditCard#1":0,"Unit\\Detectors\\CreditCardDetectorTest::testDetectsCreditCard#2":0,"Unit\\Detectors\\CreditCardDetectorTest::testDetectsCreditCard#3":0,"Unit\\Detectors\\CreditCardDetectorTest::testDetectsCreditCard#4":0,"Unit\\Detectors\\CreditCardDetectorTest::testDetectsCreditCard#5":0,"Unit\\Detectors\\CreditCardDetectorTest::testDetectsCreditCard#6":0,"Unit\\Detectors\\EmailDetectorTest::testDetectsEmail#0":0,"Unit\\Detectors\\EmailDetectorTest::testDetectsEmail#1":0,"Unit\\Detectors\\EmailDetectorTest::testDetectsEmail#2":0,"Unit\\Detectors\\EmailDetectorTest::testDetectsEmail#3":0,"Unit\\Detectors\\PhoneDetectorTest::testDetectsPhone#0":0,"Unit\\Detectors\\PhoneDetectorTest::testDetectsPhone#1":0,"Unit\\Detectors\\PhoneDetectorTest::testDetectsPhone#2":0,"Unit\\Detectors\\PhoneDetectorTest::testDetectsPhone#3":0,"Unit\\Detectors\\PhoneDetectorTest::testDetectsPhone#4":0,"Unit\\Detectors\\PhoneDetectorTest::testDetectsPhone#5":0}}
1 change: 1 addition & 0 deletions .phpunit.result.cache
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"version":1,"defects":[],"times":{"Unit\\Anonymizers\\BirthDateAnonymizerTest::testAnonymizeWithDashedDateFormat":0.092,"Unit\\Anonymizers\\BirthDateAnonymizerTest::testAnonymizeWithSlashedDateFormat":0,"Unit\\Anonymizers\\BirthDateAnonymizerTest::testAnonymizeWithoutDate":0}}
60 changes: 60 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,63 @@ Para instalar a biblioteca em seu projeto, utilize o gerenciador de pacotes Comp
```bash
composer require ananiaslitz/facelesslog
```
## Características
- Flexibilidade: Fácil de integrar com qualquer aplicação PHP.
- Configuração Customizável: Suporta configuração personalizada para ativar/desativar detectores e anonimizadores específicos.
- Singleton/Factory Pattern: Implementação eficiente para garantir a gestão otimizada de recursos.
- Mapeamento Detector-Anonimizador: Eficiência aprimorada com anonimizadores mapeados para detectores específicos.
- Suporte a Testes Unitários: Compatível com PHPUnit para testes confiáveis e robustos.
- Logging de Erros e Exceções: Registra erros e exceções para manutenção e monitoramento fáceis.
- Documentação e Exemplos: Documentação detalhada e exemplos práticos para facilitar o uso.
- Compatibilidade com Frameworks: Integrações disponíveis para frameworks populares como Laravel e Symfony.
## Configuração
Aqui está um exemplo de como você pode configurar e usar o facelesslog:

```php
// Exemplo de uso do FacelessLogger
$logger = FacelessLogger::getInstance();

// Adicionar detectores e anonimizadores conforme necessário
$logger->addDetector(new EmailDetector(), new EmailAnonymizer());
// ...

// Processar uma mensagem
$message = "User email is [email protected]";
$anonymizedMessage = $logger->processMessage($message);

echo $anonymizedMessage; // Saída será uma versão anonimizada da mensagem
```

## Criação de Detectores e Anonimizadores Customizados
A biblioteca facelesslog foi projetada com flexibilidade em mente, permitindo que os usuários ampliem sua funcionalidade de acordo com suas necessidades específicas. Para criar seus próprios Detectores e Anonimizadores, basta implementar as interfaces DetectorInterface e AnonymizerInterface.

#### Implementando a DetectorInterface
A DetectorInterface é uma interface simples que requer a implementação do método detect, que retorna um booleano. Este método é responsável por verificar se uma mensagem contém um certo tipo de informação sensível que você deseja detectar.

```php
class CustomDetector implements DetectorInterface
{
public function detect(string $message): bool
{
// Lógica para detectar uma informação específica na mensagem
}
}
```
#### Implementando a AnonymizerInterface
A AnonymizerInterface também é uma interface direta que exige a implementação do método anonymize. Este método deve retornar a mensagem com as informações sensíveis anonimizadas ou ocultadas.
```php
class CustomAnonymizer implements AnonymizerInterface
{
public function anonymize(string $message): string
{
// Lógica para anonimizar informações sensíveis na mensagem
}
}
```

## Contribuição
Sua contribuição é bem-vinda! Se você deseja melhorar a facelesslog, sinta-se à vontade para fazer um fork do repositório e enviar suas pull requests. Para bugs, questões e discussões, por favor, use a seção de issues do GitHub.

## Licença
Distribuído sob a licença MIT. Veja LICENSE para mais informações.

9 changes: 6 additions & 3 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@
"type": "library",
"require-dev": {
"phpunit/php-timer": "^6.0",
"brain/monkey": "^2.6"
"brain/monkey": "^2.6",
"phpunit/phpunit": "^10.5"
},
"license": "MIT",
"autoload": {
Expand All @@ -19,7 +20,6 @@
}
],
"require": {

"symfony/http-client": "^6.3",
"nyholm/psr7": "^1.8",
"guzzlehttp/promises": "^2.0",
Expand All @@ -35,5 +35,8 @@
"allow-plugins": {
"php-http/discovery": true
}
}
},
"scripts": {
"test": "phpctl phpunit"
}
}
Loading

0 comments on commit b740a51

Please sign in to comment.