TokensTableTest.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <?php
  2. namespace Tools\Test\Model\Table;
  3. use Cake\ORM\TableRegistry;
  4. use Tools\TestSuite\TestCase;
  5. class TokensTableTest extends TestCase {
  6. /**
  7. * @var \Tools\Model\Table\TokensTable;
  8. */
  9. public $Tokens;
  10. /**
  11. * @var array
  12. */
  13. public $fixtures = ['plugin.Tools.Tokens'];
  14. public function setUp() {
  15. parent::setUp();
  16. $this->Tokens = TableRegistry::get('Tools.Tokens');
  17. }
  18. public function testTokenInstance() {
  19. $this->assertInstanceOf('Tools\Model\Table\TokensTable', $this->Tokens);
  20. }
  21. public function testGenerateKey() {
  22. $key = $this->Tokens->generateKey(4);
  23. //pr($key);
  24. $this->assertTrue(!empty($key) && strlen($key) === 4);
  25. }
  26. public function testNewKeySpendKey() {
  27. $key = $this->Tokens->newKey('test', null, null, 'xyz');
  28. $this->assertTrue(!empty($key));
  29. $res = $this->Tokens->useKey('test', $key);
  30. //pr($res);
  31. $this->assertTrue(!empty($res));
  32. $res = $this->Tokens->useKey('test', $key);
  33. //pr($res);
  34. $this->assertTrue(!empty($res) && !empty($res['used']));
  35. $res = $this->Tokens->useKey('test', $key . 'x');
  36. $this->assertFalse($res);
  37. $res = $this->Tokens->useKey('testx', $key);
  38. $this->assertFalse($res);
  39. }
  40. public function testGarbageCollector() {
  41. $data = [
  42. 'created' => date(FORMAT_DB_DATETIME, time() - 3 * MONTH),
  43. 'type' => 'y',
  44. 'key' => 'x'
  45. ];
  46. $entity = $this->Tokens->newEntity($data, ['validate' => false]);
  47. $this->Tokens->save($entity);
  48. $count = $this->Tokens->find('count');
  49. $this->Tokens->garbageCollector();
  50. $count2 = $this->Tokens->find('count');
  51. $this->assertTrue($count > $count2);
  52. }
  53. }