diff --git a/README.md b/README.md index 9e1750a..14a89d9 100644 --- a/README.md +++ b/README.md @@ -4,4 +4,7 @@ A collection of design patterns written in PHP [![PHP Composer](https://github.com/fabiothiroki/php-design-patterns/actions/workflows/php.yaml/badge.svg)](https://github.com/fabiothiroki/php-design-patterns/actions/workflows/php.yaml) [![Coverage Status](https://coveralls.io/repos/github/fabiothiroki/php-design-patterns/badge.svg?branch=main)](https://coveralls.io/github/fabiothiroki/php-design-patterns?branch=main) ## Creational -- [Prototype](app/creational/prototype) \ No newline at end of file +- [Prototype](app/creational/prototype) + +## Structural +- [Adapter](app/structural/adapter) \ No newline at end of file diff --git a/app/structural/adapter/README.md b/app/structural/adapter/README.md new file mode 100644 index 0000000..1a9f334 --- /dev/null +++ b/app/structural/adapter/README.md @@ -0,0 +1,5 @@ +# Adapter design pattern in PHP + +Article: https://dev.to/fabiothiroki/php-design-patterns-adapter-b8c + +[![](https://mermaid.ink/img/eyJjb2RlIjoic2VxdWVuY2VEaWFncmFtXG4gICAgU2lnblVwU2VydmljZS0tPj5UaGlyZFBhcnR5RW1haWxTZW5kZXJBZGFwdGVyOiBJIHdhbnQgdG8gc2VuZCBhbiBlbWFpbCFcbiAgICBUaGlyZFBhcnR5RW1haWxTZW5kZXJBZGFwdGVyLS0-PlNpZ25VcFNlcnZpY2U6IEkganVzdCBuZWVkIGEgcmVjaWNwaWVudCBhbmQgdGhlIGNvbnRlbnQhXG4gICAgU2lnblVwU2VydmljZS0tPj5UaGlyZFBhcnR5RW1haWxTZW5kZXJBZGFwdGVyOiBPaCwgdGhhdCdzIGV4YWN0bHkgd2hhdCBJIGhhdmUhXG4gICAgVGhpcmRQYXJ0eUVtYWlsU2VuZGVyQWRhcHRlci0tPj5UaGlyZFBhcnR5RW1haWxDbGllbnQ6IFBsZWFzZSBzZW5kIHRoaXMgZW1haWxcbiAgICAgICAgICAgICIsIm1lcm1haWQiOnsidGhlbWUiOiJkZWZhdWx0In0sInVwZGF0ZUVkaXRvciI6ZmFsc2UsImF1dG9TeW5jIjp0cnVlLCJ1cGRhdGVEaWFncmFtIjpmYWxzZX0)](https://mermaid-js.github.io/mermaid-live-editor/edit/#eyJjb2RlIjoic2VxdWVuY2VEaWFncmFtXG4gICAgU2lnblVwU2VydmljZS0tPj5UaGlyZFBhcnR5RW1haWxTZW5kZXJBZGFwdGVyOiBJIHdhbnQgdG8gc2VuZCBhbiBlbWFpbCFcbiAgICBUaGlyZFBhcnR5RW1haWxTZW5kZXJBZGFwdGVyLS0-PlNpZ25VcFNlcnZpY2U6IEkganVzdCBuZWVkIGEgcmVjaWNwaWVudCBhbmQgdGhlIGNvbnRlbnQhXG4gICAgU2lnblVwU2VydmljZS0tPj5UaGlyZFBhcnR5RW1haWxTZW5kZXJBZGFwdGVyOiBPaCwgdGhhdCdzIGV4YWN0bHkgd2hhdCBJIGhhdmUhXG4gICAgVGhpcmRQYXJ0eUVtYWlsU2VuZGVyQWRhcHRlci0tPj5UaGlyZFBhcnR5RW1haWxDbGllbnQ6IFBsZWFzZSBzZW5kIHRoaXMgZW1haWxcbiAgICAgICAgICAgICIsIm1lcm1haWQiOiJ7XG4gIFwidGhlbWVcIjogXCJkZWZhdWx0XCJcbn0iLCJ1cGRhdGVFZGl0b3IiOmZhbHNlLCJhdXRvU3luYyI6dHJ1ZSwidXBkYXRlRGlhZ3JhbSI6ZmFsc2V9) \ No newline at end of file diff --git a/tests/structural/adapter/AdapterTest.php b/tests/structural/adapter/AdapterTest.php index 15ac706..59e1988 100644 --- a/tests/structural/adapter/AdapterTest.php +++ b/tests/structural/adapter/AdapterTest.php @@ -17,7 +17,8 @@ public function testThirdPartyEmailSenderAdapterAdapterUsesCorrectClient(): void $emailAdapter = new ThirdPartyEmailSenderAdapter($emailClient); $emailClient->expects($this->once()) - ->method('sendEmail'); + ->method('sendEmail') + ->with('email@email.com', 'I love design patterns'); $emailAdapter->sendEmail( 'email@email.com',