AddressPostalUtilsTest.php 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <?php
  2. namespace App\Tests\Unit\Service\Core;
  3. use App\Entity\Core\AddressPostal;
  4. use App\Service\Core\AddressPostalUtils;
  5. use PHPUnit\Framework\TestCase;
  6. class TestableAddressPostalUtils extends AddressPostalUtils
  7. {
  8. // there's a bug when SUT has only one method,
  9. // it can't be mocked, so we add one method here in the meantime
  10. public function foo(): void
  11. {
  12. }
  13. }
  14. class AddressPostalUtilsTest extends TestCase
  15. {
  16. /**
  17. * @see AddressPostalUtils::getFullStreetAddress()
  18. */
  19. public function testGetFullStreetAddress(): void
  20. {
  21. $addressPostalUtils = $this->getMockBuilder(TestableAddressPostalUtils::class)
  22. ->setMethodsExcept(['getFullStreetAddress'])
  23. ->getMock();
  24. $addressPostal = $this->getMockBuilder(AddressPostal::class)->getMock();
  25. $addressPostal->method('getStreetAddress')->willReturn('Abc');
  26. $addressPostal->method('getStreetAddressSecond')->willReturn('Def ');
  27. $addressPostal->method('getStreetAddressThird')->willReturn(' Ghi ');
  28. $this->assertEqualsCanonicalizing(
  29. "Abc\nDef\nGhi",
  30. $addressPostalUtils->getFullStreetAddress($addressPostal)
  31. );
  32. $this->assertEqualsCanonicalizing(
  33. 'Abc Def Ghi',
  34. $addressPostalUtils->getFullStreetAddress($addressPostal, ' ')
  35. );
  36. }
  37. /**
  38. * @see AddressPostalUtils::getFullStreetAddress()
  39. */
  40. public function testGetFullStreetAddressWithMissing(): void
  41. {
  42. $addressPostalUtils = $this->getMockBuilder(TestableAddressPostalUtils::class)
  43. ->setMethodsExcept(['getFullStreetAddress'])
  44. ->getMock();
  45. $addressPostal = $this->getMockBuilder(AddressPostal::class)->getMock();
  46. $addressPostal->method('getStreetAddress')->willReturn('Abc');
  47. $addressPostal->method('getStreetAddressSecond')->willReturn('');
  48. $addressPostal->method('getStreetAddressThird')->willReturn(' Def');
  49. $this->assertEqualsCanonicalizing(
  50. "Abc\nDef",
  51. $addressPostalUtils->getFullStreetAddress($addressPostal)
  52. );
  53. }
  54. }