AnnotationTest.php 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <?php
  2. use \Codeception\Util\Annotation;
  3. /**
  4. * Class AnnotationTest
  5. *
  6. * @author davert
  7. * @tag codeception
  8. * @tag tdd
  9. */
  10. class AnnotationTest extends PHPUnit_Framework_TestCase
  11. {
  12. public function testClassAnnotation()
  13. {
  14. $this->assertEquals('davert', Annotation::forClass(__CLASS__)->fetch('author'));
  15. $this->assertEquals('codeception', Annotation::forClass(__CLASS__)->fetch('tag'));
  16. }
  17. /**
  18. * @param $var1
  19. * @param $var2
  20. * @return null
  21. */
  22. public function testMethodAnnotation()
  23. {
  24. $this->assertEquals('null', Annotation::forClass(__CLASS__)
  25. ->method('testMethodAnnotation')
  26. ->fetch('return'));
  27. }
  28. public function testMultipleClassAnnotations()
  29. {
  30. $this->assertEquals(array('codeception', 'tdd'), Annotation::forClass(__CLASS__)->fetchAll('tag'));
  31. }
  32. public function testMultipleMethodAnnotations()
  33. {
  34. $this->assertEquals(
  35. array('$var1', '$var2'),
  36. Annotation::forClass(__CLASS__)->method('testMethodAnnotation')->fetchAll('param')
  37. );
  38. }
  39. public function testValueToSupportJson()
  40. {
  41. $values = Annotation::arrayValue('{ "code": "200", "user": "davert", "email": "davert@gmail.com" }');
  42. $this->assertEquals(['code' => '200', 'user' => 'davert', 'email' => 'davert@gmail.com'], $values);
  43. }
  44. public function testValueToSupportAnnotationStyle()
  45. {
  46. $values = Annotation::arrayValue('( code="200", user="davert", email = "davert@gmail.com")');
  47. $this->assertEquals(['code' => '200', 'user' => 'davert', 'email' => 'davert@gmail.com'], $values);
  48. }
  49. }