AbstractRegistryTest.php 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <?php
  2. namespace AlexLcDee\RegistryContainer\Tests;
  3. use AlexLcDee\RegistryContainer\Builder;
  4. use AlexLcDee\RegistryContainer\Exceptions\NotFoundException;
  5. use PHPUnit\Framework\TestCase;
  6. abstract class AbstractRegistryTest extends TestCase
  7. {
  8. /**
  9. * @var Builder
  10. */
  11. protected $builder;
  12. public function setUp()
  13. {
  14. $this->builder = $this->initRegistryBuilder();
  15. }
  16. /**
  17. * @return Builder
  18. */
  19. protected abstract function initRegistryBuilder();
  20. public function tearDown()
  21. {
  22. $this->builder = null;
  23. }
  24. public function test_interface_operations()
  25. {
  26. $registry = $this->builder->build();
  27. $registry->add('numbers', 1);
  28. $registry->add('test.items.item', 1);
  29. $this->assertEquals(1, $registry->get('numbers'));
  30. $this->assertTrue($registry->has('numbers'));
  31. $this->assertTrue($registry->has('test'));
  32. $this->assertTrue($registry->has('test.items'));
  33. $this->assertTrue($registry->has('test.items.item'));
  34. $this->assertEquals(1, $registry->get('test.items.item'));
  35. }
  36. public function test_get_throws_NotFoundException()
  37. {
  38. $registry = $this->builder->build();
  39. $registry->add('numbers', 1);
  40. $registry->add('test.items', 1);
  41. $this->expectException(NotFoundException::class);
  42. $registry->get('strings');
  43. $this->expectException(NotFoundException::class);
  44. $registry->get('test.item');
  45. $this->expectException(NotFoundException::class);
  46. $registry->get('tests.items');
  47. }
  48. public function test_has_returns_false()
  49. {
  50. $registry = $this->builder->build();
  51. $registry->add('test.items.item', 1);
  52. $this->assertFalse($registry->has('tests'));
  53. $this->assertFalse($registry->has('tests.item'));
  54. $this->assertFalse($registry->has('test.item'));
  55. $this->assertFalse($registry->has('test.items.items'));
  56. }
  57. }